added new docs
3
.vscode/settings.json
vendored
@@ -66,5 +66,6 @@
|
||||
"pages.h": "c",
|
||||
"jemalloc_malloc_pseudo_code": "c"
|
||||
},
|
||||
"C_Cpp.errorSquiggles": "disabled"
|
||||
"C_Cpp.errorSquiggles": "disabled",
|
||||
"cmake.sourceDirectory": "/Users/akilan/Documents/Cheri/Test/Reverse/CHERI-Allocator/benchmarks/benchmarks/larison"
|
||||
}
|
||||
BIN
docs/EuroSys/.DS_Store
vendored
@@ -1,5 +1,4 @@
|
||||
\relax
|
||||
\providecommand{\transparent@use}[1]{}
|
||||
\providecommand\hyper@newdestlabel[2]{}
|
||||
\providecommand\HyField@AuxAddToFields[1]{}
|
||||
\providecommand\HyField@AuxAddToCoFields[2]{}
|
||||
@@ -30,3 +29,108 @@
|
||||
\citation{chen_flexpointer_2023}
|
||||
\citation{karakostas_redundant_2015}
|
||||
\citation{woodruff_cheri_2019}
|
||||
\citation{karakostas_redundant_2015}
|
||||
\citation{chen_flexpointer_2023}
|
||||
\citation{woodruff_cheri_2019}
|
||||
\citation{woodruff_cheri_2019}
|
||||
\citation{woodruff_cheri_2019}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {2.6}CHERI CC}{3}{subsection.2.6}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {3}Fat Address Translations}{3}{section.3}\protected@file@percent }
|
||||
\newlabel{sec:FatPointerTranslations}{{3}{3}{Fat Address Translations}{section.3}{}}
|
||||
\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces High overview architecture}}{3}{figure.caption.3}\protected@file@percent }
|
||||
\providecommand*\caption@xref[2]{\@setref\relax\@undefined{#1}}
|
||||
\newlabel{fig:HighOverviewArchitecture}{{1}{3}{High overview architecture}{figure.caption.3}{}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {3.1}Encoding Ranges as Bounds to the Pointer}{3}{subsection.3.1}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {4}128 bit compressed bounds}{3}{section.4}\protected@file@percent }
|
||||
\newlabel{sec:128bitCompressedBounds}{{4}{3}{128 bit compressed bounds}{section.4}{}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {4.1}Instrumenting Block-Based Allocators with Physically Contiguous Memory}{3}{subsection.4.1}\protected@file@percent }
|
||||
\citation{evans_scalable_nodate}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {5}Memory allocator design}{4}{section.5}\protected@file@percent }
|
||||
\newlabel{sec:MemoryAllocator}{{5}{4}{Memory allocator design}{section.5}{}}
|
||||
\@writefile{loa}{\contentsline {algorithm}{\numberline {1}{\ignorespaces Malloc implementation}}{4}{algorithm.1}\protected@file@percent }
|
||||
\newlabel{alg:malloc}{{1}{4}{Malloc implementation}{algorithm.1}{}}
|
||||
\@writefile{loa}{\contentsline {algorithm}{\numberline {2}{\ignorespaces Free implementation}}{4}{algorithm.2}\protected@file@percent }
|
||||
\newlabel{alg:free}{{2}{4}{Free implementation}{algorithm.2}{}}
|
||||
\@writefile{loa}{\contentsline {algorithm}{\numberline {3}{\ignorespaces Init alloc function to create a initial 1 GB huge page}}{4}{algorithm.3}\protected@file@percent }
|
||||
\newlabel{alg:initAlloc}{{3}{4}{Init alloc function to create a initial 1 GB huge page}{algorithm.3}{}}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {6}Embedding FAT allocator inside Jemalloc}{4}{section.6}\protected@file@percent }
|
||||
\newlabel{sec:JemallocFATAllocator}{{6}{4}{Embedding FAT allocator inside Jemalloc}{section.6}{}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {6.1}Mmap replaced with MALLOC}{4}{subsection.6.1}\protected@file@percent }
|
||||
\citation{evans_scalable_nodate}
|
||||
\citation{jemalloc}
|
||||
\citation{cheribsd}
|
||||
\citation{Benchmark}
|
||||
\citation{Morello}
|
||||
\citation{BenchmarkABI}
|
||||
\citation{PerformanceCounter}
|
||||
\@writefile{loa}{\contentsline {algorithm}{\numberline {4}{\ignorespaces Modified Jemalloc Memory Mapping Routines}}{5}{algorithm.4}\protected@file@percent }
|
||||
\newlabel{alg:JemallocMalloc}{{4}{5}{Modified Jemalloc Memory Mapping Routines}{algorithm.4}{}}
|
||||
\@writefile{loa}{\contentsline {algorithm}{\numberline {5}{\ignorespaces os\_pages\_unmap}}{5}{algorithm.5}\protected@file@percent }
|
||||
\newlabel{alg:JemallocFree}{{5}{5}{os\_pages\_unmap}{algorithm.5}{}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {6.2}Mumap replaced with FREE}{5}{subsection.6.2}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {7}Evaluation}{5}{section.7}\protected@file@percent }
|
||||
\newlabel{sec:Evaluation}{{7}{5}{Evaluation}{section.7}{}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {7.1}Experiment setup}{5}{subsection.7.1}\protected@file@percent }
|
||||
\newlabel{sec:Experiment}{{7.1}{5}{Experiment setup}{subsection.7.1}{}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {7.2}Benchmarks}{6}{subsection.7.2}\protected@file@percent }
|
||||
\newlabel{sec:Micro}{{7.2.1}{6}{Micro benchmark}{subsubsection.7.2.1}{}}
|
||||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {7.2.1}Micro benchmark}{6}{subsubsection.7.2.1}\protected@file@percent }
|
||||
\newlabel{sec:Macro}{{7.2.2}{6}{Macro benchmark}{subsubsection.7.2.2}{}}
|
||||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {7.2.2}Macro benchmark}{6}{subsubsection.7.2.2}\protected@file@percent }
|
||||
\@writefile{lot}{\contentsline {table}{\numberline {1}{\ignorespaces ARM performance counters}}{6}{table.caption.4}\protected@file@percent }
|
||||
\newlabel{tab:org246a883}{{1}{6}{ARM performance counters}{table.caption.4}{}}
|
||||
\newlabel{table:ARMPerf}{{1}{6}{ARM performance counters}{table.caption.4}{}}
|
||||
\citation{singh1993}
|
||||
\citation{holt1995}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {7.3}Results}{7}{subsection.7.3}\protected@file@percent }
|
||||
\newlabel{sec:Results}{{7.3}{7}{Results}{subsection.7.3}{}}
|
||||
\newlabel{fig:dtlb-walk}{{2a}{8}{DTLB Walks}{figure.caption.5}{}}
|
||||
\newlabel{sub@fig:dtlb-walk}{{a}{8}{DTLB Walks}{figure.caption.5}{}}
|
||||
\newlabel{fig:l1tlb-reads}{{2b}{8}{L1 TLB Reads}{figure.caption.5}{}}
|
||||
\newlabel{sub@fig:l1tlb-reads}{{b}{8}{L1 TLB Reads}{figure.caption.5}{}}
|
||||
\newlabel{fig:l1tlb-refill}{{2c}{8}{L1 TLB Refill}{figure.caption.5}{}}
|
||||
\newlabel{sub@fig:l1tlb-refill}{{c}{8}{L1 TLB Refill}{figure.caption.5}{}}
|
||||
\newlabel{fig:l2tlb-reads}{{2d}{8}{L2 TLB Reads}{figure.caption.5}{}}
|
||||
\newlabel{sub@fig:l2tlb-reads}{{d}{8}{L2 TLB Reads}{figure.caption.5}{}}
|
||||
\newlabel{fig:ll-cache-rd}{{2e}{8}{LL Cache Reads}{figure.caption.5}{}}
|
||||
\newlabel{sub@fig:ll-cache-rd}{{e}{8}{LL Cache Reads}{figure.caption.5}{}}
|
||||
\newlabel{fig:wallclock}{{2f}{8}{Wall Clock Time}{figure.caption.5}{}}
|
||||
\newlabel{sub@fig:wallclock}{{f}{8}{Wall Clock Time}{figure.caption.5}{}}
|
||||
\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces Benchmarks comparing the percentage difference between FAT.}}{8}{figure.caption.5}\protected@file@percent }
|
||||
\newlabel{fig:benchmarks-group}{{2}{8}{Benchmarks comparing the percentage difference between FAT}{figure.caption.5}{}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {7.4}Analysis}{8}{subsection.7.4}\protected@file@percent }
|
||||
\newlabel{sec:Analysis}{{7.4}{8}{Analysis}{subsection.7.4}{}}
|
||||
\bibstyle{unsrtnat}
|
||||
\bibdata{paperReferences}
|
||||
\bibcite{TLBHierarchy}{{1}{2013}{{Lustig et~al.}}{{Lustig, Bhattacharjee, and Martonosi}}}
|
||||
\bibcite{mittal_survey_2017}{{2}{}{{Mittal}}{{}}}
|
||||
\bibcite{panwar_hawkeye_2019}{{3}{}{{Panwar et~al.}}{{Panwar, Bansal, and Gopinath}}}
|
||||
\bibcite{woodruff_cheri_2014}{{4}{}{{Woodruff et~al.}}{{Woodruff, Watson, Chisnall, Moore, Anderson, Davis, Laurie, Neumann, Norton, and Roe}}}
|
||||
\bibcite{woodruff_cheri_2019}{{5}{}{{Woodruff et~al.}}{{Woodruff, Joannou, Xia, Fox, Norton, Chisnall, Davis, Gudka, Filardo, Markettos, Roe, Neumann, Watson, and Moore}}}
|
||||
\bibcite{TLBReach}{{6}{2014}{{Pham et~al.}}{{Pham, Bhattacharjee, Eckert, and Loh}}}
|
||||
\bibcite{THP}{{7}{2003}{{Navarro et~al.}}{{Navarro, Iyer, Druschel, and Cox}}}
|
||||
\bibcite{IntelItanium}{{8}{2003}{{Cornea et~al.}}{{Cornea, Harrison, and Tang}}}
|
||||
\bibcite{Shadow_superpages}{{9}{2001}{{Park and Park}}{{}}}
|
||||
\bibcite{DirectSegment}{{10}{2013}{{Basu et~al.}}{{Basu, Gandhi, Chang, Hill, and Swift}}}
|
||||
\bibcite{karakostas_redundant_2015}{{11}{}{{Karakostas et~al.}}{{Karakostas, Gandhi, Ayar, Cristal, Hill, {McKinley}, Nemirovsky, Swift, and Ünsal}}}
|
||||
\bibcite{chen_flexpointer_2023}{{12}{2023}{{Chen et~al.}}{{Chen, Tong, Yang, Yi, and Cheng}}}
|
||||
\bibcite{evans_scalable_nodate}{{13}{}{{Evans}}{{}}}
|
||||
\bibcite{jemalloc}{{14}{2006}{{Evans}}{{}}}
|
||||
\bibcite{cheribsd}{{15}{}{{che}}{{}}}
|
||||
\bibcite{Benchmark}{{16}{}{{Ben}}{{}}}
|
||||
\bibcite{Morello}{{17}{}{{Mor}}{{}}}
|
||||
\bibcite{BenchmarkABI}{{18}{2023}{{Watson et~al.}}{{Watson, Clarke, Sewell, Woodruff, Moore, Barnes, Grisenthwaite, Stacer, Baranga, and Richardson}}}
|
||||
\bibcite{PerformanceCounter}{{19}{}{{Per}}{{}}}
|
||||
\bibcite{singh1993}{{20}{1993}{{Singh}}{{}}}
|
||||
\bibcite{holt1995}{{21}{1995}{{Holt and Singh}}{{}}}
|
||||
\newlabel{tocindent-1}{0pt}
|
||||
\newlabel{tocindent0}{0pt}
|
||||
\newlabel{tocindent1}{4.185pt}
|
||||
\newlabel{tocindent2}{10.34999pt}
|
||||
\newlabel{tocindent3}{18.198pt}
|
||||
\newlabel{tocindent4}{0pt}
|
||||
\newlabel{tocindent5}{0pt}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {8}Conclusion}{9}{section.8}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {section}{References}{9}{section*.7}\protected@file@percent }
|
||||
\newlabel{TotPages}{{9}{9}{}{page.9}{}}
|
||||
\gdef \@abspage@last{9}
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
# Fdb version 4
|
||||
["bibtex paper"] 1748842670.01173 "paper.aux" "paper.bbl" "paper" 1748842671.97694 0
|
||||
["bibtex paper"] 1748909508.19157 "paper.aux" "paper.bbl" "paper" 1748915503.84679 0
|
||||
"./paperReferences.bib" 1748637417.99093 52057 3d2940a76dd1a0b9b759a973d6b9bd98 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/bibtex/bst/natbib/unsrtnat.bst" 1233624470 24550 a41a6405f4de768c43e871d9fbce2bc8 ""
|
||||
"paper.aux" 1748842671.6599 9959 d12f00f8edff5ca070a8389be00e146d "pdflatex"
|
||||
"paper.aux" 1748915503.46464 9963 82b0905dd9ab54680dce426b8abf6c10 "pdflatex"
|
||||
(generated)
|
||||
"paper.bbl"
|
||||
"paper.blg"
|
||||
(rewritten before read)
|
||||
["pdflatex"] 1748842670.10231 "paper.tex" "paper.pdf" "paper" 1748842671.97708 0
|
||||
["pdflatex"] 1748915501.92795 "paper.tex" "paper.pdf" "paper" 1748915503.84693 0
|
||||
"/usr/local/texlive/2025/texmf-dist/fonts/enc/dvips/inconsolata/i4-t1-4.enc" 1558214095 7693 0f2dce6d313c82989ec3a67fc24df2a0 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/fonts/enc/dvips/libertine/lbtn_25tcsq.enc" 1490131464 2921 8ca0eb0831f9bc5da080d3697cfe67bf ""
|
||||
"/usr/local/texlive/2025/texmf-dist/fonts/enc/dvips/libertine/lbtn_76gpa5.enc" 1490131464 2933 9ad527ce78d7c5fa0a642dead095f172 ""
|
||||
@@ -90,8 +90,6 @@
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/generic/atbegshi/atbegshi.sty" 1575674566 24708 5584a51a7101caf7e6bbf1fc27d8f7b1 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty" 1576625341 40635 c40361e206be584d448876bba8a64a3b ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/generic/bitset/bitset.sty" 1576016050 33961 6b5c75130e435b2bfdb9f480a09a39f9 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/generic/catchfile/catchfile.sty" 1576016007 8622 63834878edeb14dd71d58d8f22bc3e06 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/generic/etexcmds/etexcmds.sty" 1576625273 7734 b98cbb34c81f667027c1e3ebdbfce34b ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty" 1576625223 8371 9d55b8bd010bc717624922fb3477d92e ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/generic/iftex/ifluatex.sty" 1572645307 492 1994775aa15b0d1289725a0b1bbc2d4c ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/generic/iftex/iftex.sty" 1734129479 7984 7dbb9280f03c0a315425f1b4f35d43ee ""
|
||||
@@ -105,18 +103,6 @@
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/generic/pdfescape/pdfescape.sty" 1576015897 19007 15924f7228aca6c6d184b115f4baa231 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/generic/pdftex/glyphtounicode.tex" 1353199370 216747 92ec6cf8e39216b4894417b5aa6f057a ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty" 1593379760 20089 80423eac55aa175305d35b49e04fe23b ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/generic/pgf/pgf.revision.tex" 1673816307 114 e6d443369d0673933b38834bf99e422d ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/generic/pgf/systemlayer/pgf.cfg" 1601326656 926 2963ea0dcf6cc6c0a770b69ec46a477b ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-pdf.def" 1673816307 5542 32f75a31ea6c3a7e1148cd6d5e93dbb7 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.def" 1673816307 12612 7774ba67bfd72e593c4436c2de6201e3 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex" 1673816307 61351 bc5f86e0355834391e736e97a61abced ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex" 1601326656 1896 b8e0ca0ac371d74c0ca05583f6313c91 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex" 1601326656 7778 53c8b5623d80238f6a20aa1df1868e63 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex" 1673816307 39784 414c54e866ebab4b801e2ad81d9b21d8 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/generic/pgf/utilities/pgfkeyslibraryfiltered.code.tex" 1673816307 37433 940bc6d409f1ffd298adfdcaf125dd86 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex" 1673816307 4385 510565c2f07998c8a0e14f0ec07ff23c ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/generic/pgf/utilities/pgfutil-common.tex" 1673816307 29239 22e8c7516012992a49873eff0d868fed ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/generic/pgf/utilities/pgfutil-latex.def" 1673816307 6950 8524a062d82b7afdc4a88a57cb377784 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/generic/stringenc/se-pdfdoc.def" 1575152242 5108 8920602307ea1294ccbce2300c7c6ccb ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/generic/stringenc/se-utf8.def" 1575152242 11635 4fd2019d04ad095a0b1bde5aaed4a70e ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/generic/stringenc/stringenc.sty" 1575152242 21514 b7557edcee22835ef6b03ede1802dad4 ""
|
||||
@@ -140,7 +126,6 @@
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/amsmath/amsopn.sty" 1717359999 4474 23ca1d3a79a57b405388059456d0a8df ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/amsmath/amstext.sty" 1717359999 2444 71618ea5f2377e33b04fb97afdd0eac2 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/atveryend/atveryend.sty" 1728505250 1695 be6b4d13b33db697fd3fd30b24716c1a ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/auxhook/auxhook.sty" 1576625391 3935 57aa3c3e203a5c2effb4d2bd2efbc323 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/base/atbegshi-ltx.sty" 1738182759 2963 d8ec5a1b4e0a106c5c737900202763e4 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/base/atveryend-ltx.sty" 1738182759 2378 14b657ee5031da98cf91648f19642694 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/base/fontenc.sty" 1738182759 5275 0d62fb62162c7ab056e941ef18c5076d ""
|
||||
@@ -181,13 +166,8 @@
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/hyperref/puenc.def" 1730838014 117112 7533bff456301d32e6d6356fad15f543 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/hyperxmp/hyperxmp.sty" 1710792253 62205 a7f89f92229cfedbace009eb0e06c099 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/ifmtarg/ifmtarg.sty" 1525197427 318 019510c713feab56160631df4423d2aa ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/ifplatform/ifplatform.sty" 1507930826 3910 e04f6a6d983bdbdb024917b7ccc80262 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/inconsolata/t1zi4.fd" 1516054831 1021 03341d1cf7f388bbac1915f944d5d128 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/inconsolata/zi4.sty" 1558214095 4319 14e5db0b68d045ed49e4ed232b58e93f ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/koma-script/scrbase.sty" 1729800159 100966 88ffa900fd38336daf0681d35d342ea9 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/koma-script/scrlfile-hook.sty" 1729800159 11185 08107e8d26d093ccd4c424c2b74809f6 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/koma-script/scrlfile.sty" 1729800159 3328 17a5a2d4f4e9d388803c10ac9fffe9d3 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/koma-script/scrlogo.sty" 1729800159 2162 e219c1ddf641a7cd0ee0103af3ac7f3d ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/kvoptions/kvoptions.sty" 1655478651 22555 6d8e155cfef6d82c3d5c742fea7c992e ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty" 1665067230 13815 760b0c02f691ea230f5359c4e1de23a7 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def" 1716410060 29785 9f93ab201fe5dd053afcc6c1bcf7d266 ""
|
||||
@@ -226,18 +206,12 @@
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/newtx/untxsym.fd" 1692649180 568 9df6be53c1b3ec79740d714ff4ae0937 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/oberdiek/centernot.sty" 1575152444 1640 c9cca60f81c5839b9a3e794d72c0b0a7 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/oberdiek/ifdraft.sty" 1575152444 1922 5bdcc31b0573e5e7f31c36f1b88b6a7d ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty" 1601326656 443 8c872229db56122037e86bcda49e14f3 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty" 1601326656 325 f9f16d12354225b7dd52a3321f085955 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/preprint/balance.sty" 1137110595 3366 d938ad2440edc1ea1c9042843580ec42 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/refcount/refcount.sty" 1576624809 9878 9e94e8fa600d95f9c7731bb21dfb67a4 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty" 1657483315 9714 ba3194bd52c8499b3f1e3eb91d409670 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/sttools/stfloats.sty" 1633983922 24057 ff20efb65b128d27c08eac20ec07f540 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/svg/svg.sty" 1606428179 43468 671ae75b3a15019004495eff4c0911e8 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/tools/multicol.sty" 1730496337 32879 f4cfa2226c995da5b04a89ee47abf182 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/tools/shellesc.sty" 1717359999 4121 6039ae6d0916154d7ba5f20a77b9ab2c ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/totpages/totpages.sty" 1137110984 7670 b07e668265cf485332abe582e7ed306e ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/transparent/transparent-nometadata.sty" 1667073146 4212 8da4873548cbd3f1cdb053c708e8aa7e ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/transparent/transparent.sty" 1667073146 1918 c8d1ecb3722721d6f624992cbc042b70 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/trimspaces/trimspaces.sty" 1253232110 1380 971a51b00a14503ddf754cab24c3f209 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/upquote/upquote.sty" 1334873510 1048 517e01cde97c1c0baf72e69d43aa5a2e ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/url/url.sty" 1388531844 12796 8edb7d69a20b857904dd0ea757c14ec9 ""
|
||||
@@ -253,11 +227,11 @@
|
||||
"diagram/benchmarks-group/bargraph-large-l2tlb-reads.png" 1747839169.50845 54947 eb8cf45e5c18c985341539250aaf1907 ""
|
||||
"diagram/benchmarks-group/bargraph-large-ll-cache-rd.png" 1747839169.49301 52855 22a83d7bc1ca7dfa1c47f31936824ff6 ""
|
||||
"diagram/benchmarks-group/bargraph-large-wallclock.png" 1747839751.63939 55378 1da56901d20a39a645beca6272b36eaf ""
|
||||
"diagram/drawing_png.png" 1748297803.36134 22858 0c9dbeaa2b2a2c8d4588aeb499d141da ""
|
||||
"paper.aux" 1748842671.6599 9959 d12f00f8edff5ca070a8389be00e146d "pdflatex"
|
||||
"paper.bbl" 1748842670.09843 8553 1083156a0ae40396808b10750dbef288 "bibtex paper"
|
||||
"paper.out" 1748842671.6608 4043 e0a4be03bd5f2bf273294833454e3065 "pdflatex"
|
||||
"paper.tex" 1748842619.98325 104798 e8075114700ae6dcab70ce3b2e43c20d ""
|
||||
"diagram/drawing.pdf" 1748909319.05561 28646 0eb4d6c5fd7bfd13117f881769bcc40b ""
|
||||
"paper.aux" 1748915503.46464 9963 82b0905dd9ab54680dce426b8abf6c10 "pdflatex"
|
||||
"paper.bbl" 1748909508.27529 8553 1083156a0ae40396808b10750dbef288 "bibtex paper"
|
||||
"paper.out" 1748915503.46551 4043 e0a4be03bd5f2bf273294833454e3065 "pdflatex"
|
||||
"paper.tex" 1748915020.18884 105736 8bdc0702db90478ee04e1eec63cfe7dd ""
|
||||
(generated)
|
||||
"paper.aux"
|
||||
"paper.log"
|
||||
|
||||
@@ -246,59 +246,6 @@ INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/tools/multicol.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/tools/multicol.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/caption/subcaption.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/caption/subcaption.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/svg/svg.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/svg/svg.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/koma-script/scrbase.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/koma-script/scrbase.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/koma-script/scrlfile.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/koma-script/scrlfile.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/koma-script/scrlfile-hook.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/koma-script/scrlfile-hook.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/koma-script/scrlogo.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/koma-script/scrlogo.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/tools/shellesc.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/tools/shellesc.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/ifplatform/ifplatform.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/ifplatform/ifplatform.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/catchfile/catchfile.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/catchfile/catchfile.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/etexcmds/etexcmds.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/etexcmds/etexcmds.sty
|
||||
INPUT ./paper.w18
|
||||
INPUT ./paper.w18
|
||||
INPUT paper.w18
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/transparent/transparent.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/transparent/transparent.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/transparent/transparent-nometadata.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/transparent/transparent-nometadata.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/auxhook/auxhook.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/auxhook/auxhook.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/pgf/utilities/pgfutil-common.tex
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/pgf/utilities/pgfutil-latex.def
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/pgf/pgf.revision.tex
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/pgf/pgf.revision.tex
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/pgf/utilities/pgfkeyslibraryfiltered.code.tex
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/pgf/systemlayer/pgf.cfg
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.def
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.def
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-pdf.def
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/preprint/balance.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/preprint/balance.sty
|
||||
INPUT ./paper.aux
|
||||
@@ -379,7 +326,6 @@ INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/upquote/upquote.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/upquote/upquote.sty
|
||||
INPUT 'inkscape' -V
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-t1.tfm
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/libertine/T1LinuxBiolinumT-TLF.fd
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/libertine/T1LinuxBiolinumT-TLF.fd
|
||||
@@ -556,11 +502,11 @@ INPUT /usr/local/texlive/2025/texmf-dist/fonts/vf/public/libertine/LinBiolinumT-
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/public/libertine/LinBiolinumT-tlf-t1--base.tfm
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/fonts/vf/public/libertine/LinLibertineT-tlf-ts1.vf
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-ts1--base.tfm
|
||||
INPUT ./diagram/drawing_png.png
|
||||
INPUT ./diagram/drawing_png.png
|
||||
INPUT ./diagram/drawing_png.png
|
||||
INPUT ./diagram/drawing_png.png
|
||||
INPUT ./diagram/drawing_png.png
|
||||
INPUT ./diagram/drawing.pdf
|
||||
INPUT ./diagram/drawing.pdf
|
||||
INPUT ./diagram/drawing.pdf
|
||||
INPUT ./diagram/drawing.pdf
|
||||
INPUT ./diagram/drawing.pdf
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/public/libertine/LinLibertineTI-tlf-t1.tfm
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/fonts/vf/public/libertine/LinLibertineTI-tlf-t1.vf
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/public/libertine/LinLibertineTI-tlf-t1--base.tfm
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
This is pdfTeX, Version 3.141592653-2.6-1.40.27 (TeX Live 2025) (preloaded format=pdflatex 2025.4.2) 3 JUN 2025 01:04
|
||||
This is pdfTeX, Version 3.141592653-2.6-1.40.27 (TeX Live 2025) (preloaded format=pdflatex 2025.4.2) 3 JUN 2025 02:51
|
||||
entering extended mode
|
||||
\write18 enabled.
|
||||
%&-line parsing enabled.
|
||||
@@ -879,135 +879,13 @@ Package caption Info: New subtype `subfigure' on input line 238.
|
||||
Package caption Info: New subtype `subtable' on input line 238.
|
||||
\c@subtable=\count357
|
||||
)
|
||||
(/usr/local/texlive/2025/texmf-dist/tex/latex/svg/svg.sty
|
||||
Package: svg 2020/11/26 v2.02k (include SVG pictures)
|
||||
|
||||
(/usr/local/texlive/2025/texmf-dist/tex/latex/koma-script/scrbase.sty
|
||||
Package: scrbase 2024/10/24 v3.43 KOMA-Script package (KOMA-Script-independent
|
||||
basics and keyval usage)
|
||||
|
||||
(/usr/local/texlive/2025/texmf-dist/tex/latex/koma-script/scrlfile.sty
|
||||
Package: scrlfile 2024/10/24 v3.43 KOMA-Script package (file load hooks)
|
||||
|
||||
(/usr/local/texlive/2025/texmf-dist/tex/latex/koma-script/scrlfile-hook.sty
|
||||
Package: scrlfile-hook 2024/10/24 v3.43 KOMA-Script package (using LaTeX hooks)
|
||||
|
||||
|
||||
(/usr/local/texlive/2025/texmf-dist/tex/latex/koma-script/scrlogo.sty
|
||||
Package: scrlogo 2024/10/24 v3.43 KOMA-Script package (logo)
|
||||
)))
|
||||
Applying: [2021/05/01] Usage of raw or classic option list on input line 254.
|
||||
Already applied: [0000/00/00] Usage of raw or classic option list on input line
|
||||
370.
|
||||
)
|
||||
(/usr/local/texlive/2025/texmf-dist/tex/latex/tools/shellesc.sty
|
||||
Package: shellesc 2023/07/08 v1.0d unified shell escape interface for LaTeX
|
||||
Package shellesc Info: Unrestricted shell escape enabled on input line 75.
|
||||
)
|
||||
(/usr/local/texlive/2025/texmf-dist/tex/latex/ifplatform/ifplatform.sty
|
||||
Package: ifplatform 2017/10/13 v0.4a Testing for the operating system
|
||||
|
||||
(/usr/local/texlive/2025/texmf-dist/tex/generic/catchfile/catchfile.sty
|
||||
Package: catchfile 2019/12/09 v1.8 Catch the contents of a file (HO)
|
||||
|
||||
(/usr/local/texlive/2025/texmf-dist/tex/generic/etexcmds/etexcmds.sty
|
||||
Package: etexcmds 2019/12/15 v1.7 Avoid name clashes with e-TeX commands (HO)
|
||||
))
|
||||
runsystem(uname -s > "paper.w18")...executed.
|
||||
|
||||
|
||||
(./paper.w18)
|
||||
runsystem(rm -- "paper.w18")...executed.
|
||||
|
||||
)
|
||||
\c@svg@param@lastpage=\count358
|
||||
\svg@box=\box112
|
||||
\c@svg@param@currpage=\count359
|
||||
)
|
||||
(/usr/local/texlive/2025/texmf-dist/tex/latex/transparent/transparent.sty
|
||||
Package: transparent 2022-10-27 v1.5 Transparency with color stacks
|
||||
|
||||
(/usr/local/texlive/2025/texmf-dist/tex/latex/transparent/transparent-nometadat
|
||||
a.sty
|
||||
Package: transparent-nometadata 2022-10-27 v1.5 Transparency via pdfTeX's color
|
||||
stack (HO)
|
||||
(/usr/local/texlive/2025/texmf-dist/tex/latex/auxhook/auxhook.sty
|
||||
Package: auxhook 2019-12-17 v1.6 Hooks for auxiliary files (HO)
|
||||
)))
|
||||
(/usr/local/texlive/2025/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty
|
||||
(/usr/local/texlive/2025/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty
|
||||
(/usr/local/texlive/2025/texmf-dist/tex/generic/pgf/utilities/pgfutil-common.te
|
||||
x
|
||||
\pgfutil@everybye=\toks43
|
||||
\pgfutil@tempdima=\dimen263
|
||||
\pgfutil@tempdimb=\dimen264
|
||||
)
|
||||
(/usr/local/texlive/2025/texmf-dist/tex/generic/pgf/utilities/pgfutil-latex.def
|
||||
\pgfutil@abb=\box113
|
||||
) (/usr/local/texlive/2025/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex
|
||||
(/usr/local/texlive/2025/texmf-dist/tex/generic/pgf/pgf.revision.tex)
|
||||
Package: pgfrcs 2023-01-15 v3.1.10 (3.1.10)
|
||||
))
|
||||
(/usr/local/texlive/2025/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex
|
||||
Package: pgfsys 2023-01-15 v3.1.10 (3.1.10)
|
||||
(/usr/local/texlive/2025/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex
|
||||
\pgfkeys@pathtoks=\toks44
|
||||
\pgfkeys@temptoks=\toks45
|
||||
|
||||
(/usr/local/texlive/2025/texmf-dist/tex/generic/pgf/utilities/pgfkeyslibraryfil
|
||||
tered.code.tex
|
||||
\pgfkeys@tmptoks=\toks46
|
||||
))
|
||||
\pgf@x=\dimen265
|
||||
\pgf@y=\dimen266
|
||||
\pgf@xa=\dimen267
|
||||
\pgf@ya=\dimen268
|
||||
\pgf@xb=\dimen269
|
||||
\pgf@yb=\dimen270
|
||||
\pgf@xc=\dimen271
|
||||
\pgf@yc=\dimen272
|
||||
\pgf@xd=\dimen273
|
||||
\pgf@yd=\dimen274
|
||||
\w@pgf@writea=\write4
|
||||
\r@pgf@reada=\read3
|
||||
\c@pgf@counta=\count360
|
||||
\c@pgf@countb=\count361
|
||||
\c@pgf@countc=\count362
|
||||
\c@pgf@countd=\count363
|
||||
\t@pgf@toka=\toks47
|
||||
\t@pgf@tokb=\toks48
|
||||
\t@pgf@tokc=\toks49
|
||||
\pgf@sys@id@count=\count364
|
||||
|
||||
(/usr/local/texlive/2025/texmf-dist/tex/generic/pgf/systemlayer/pgf.cfg
|
||||
File: pgf.cfg 2023-01-15 v3.1.10 (3.1.10)
|
||||
)
|
||||
Driver file for pgf: pgfsys-pdftex.def
|
||||
|
||||
(/usr/local/texlive/2025/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.d
|
||||
ef
|
||||
File: pgfsys-pdftex.def 2023-01-15 v3.1.10 (3.1.10)
|
||||
|
||||
(/usr/local/texlive/2025/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-p
|
||||
df.def
|
||||
File: pgfsys-common-pdf.def 2023-01-15 v3.1.10 (3.1.10)
|
||||
)))
|
||||
(/usr/local/texlive/2025/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.
|
||||
code.tex
|
||||
File: pgfsyssoftpath.code.tex 2023-01-15 v3.1.10 (3.1.10)
|
||||
\pgfsyssoftpath@smallbuffer@items=\count365
|
||||
\pgfsyssoftpath@bigbuffer@items=\count366
|
||||
)
|
||||
(/usr/local/texlive/2025/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.
|
||||
code.tex
|
||||
File: pgfsysprotocol.code.tex 2023-01-15 v3.1.10 (3.1.10)
|
||||
))
|
||||
Package hyperref Info: Option `pdfdisplaydoctitle' set `true' on input line 131
|
||||
.
|
||||
\c@theorem=\count367
|
||||
(/usr/local/texlive/2025/texmf-dist/tex/latex/preprint/balance.sty
|
||||
\c@theorem=\count358
|
||||
|
||||
(/usr/local/texlive/2025/texmf-dist/tex/latex/preprint/balance.sty
|
||||
Package: balance 1999/02/23 4.3 (PWD)
|
||||
\oldvsize=\dimen275
|
||||
\oldvsize=\dimen263
|
||||
)
|
||||
Excluding comment 'screenonly' Include comment 'printonly'
|
||||
Include comment 'anonsuppress' (./paper.aux)
|
||||
@@ -1159,23 +1037,23 @@ Package microtype Info: Loading generic protrusion settings for font family
|
||||
Package hyperref Info: Link coloring OFF on input line 131.
|
||||
(./paper.out)
|
||||
(./paper.out)
|
||||
\@outlinefile=\write5
|
||||
\openout5 = `paper.out'.
|
||||
\@outlinefile=\write4
|
||||
\openout4 = `paper.out'.
|
||||
|
||||
|
||||
(/usr/local/texlive/2025/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
|
||||
[Loading MPS to PDF converter (version 2006.09.02).]
|
||||
\scratchcounter=\count368
|
||||
\scratchdimen=\dimen276
|
||||
\scratchbox=\box114
|
||||
\nofMPsegments=\count369
|
||||
\nofMParguments=\count370
|
||||
\everyMPshowfont=\toks50
|
||||
\MPscratchCnt=\count371
|
||||
\MPscratchDim=\dimen277
|
||||
\MPnumerator=\count372
|
||||
\makeMPintoPDFobject=\count373
|
||||
\everyMPtoPDFconversion=\toks51
|
||||
\scratchcounter=\count359
|
||||
\scratchdimen=\dimen264
|
||||
\scratchbox=\box112
|
||||
\nofMPsegments=\count360
|
||||
\nofMParguments=\count361
|
||||
\everyMPshowfont=\toks43
|
||||
\MPscratchCnt=\count362
|
||||
\MPscratchDim=\dimen265
|
||||
\MPnumerator=\count363
|
||||
\makeMPintoPDFobject=\count364
|
||||
\everyMPtoPDFconversion=\toks44
|
||||
) (/usr/local/texlive/2025/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty
|
||||
Package: epstopdf-base 2020-01-24 v2.11 Base part for package epstopdf
|
||||
Package epstopdf-base Info: Redefining graphics rule for `.eps' on input line 4
|
||||
@@ -1219,8 +1097,8 @@ e
|
||||
* \@reversemarginfalse
|
||||
* (1in=72.27pt=25.4mm, 1cm=28.453pt)
|
||||
|
||||
\c@mv@tabular=\count374
|
||||
\c@mv@boldtabular=\count375
|
||||
\c@mv@tabular=\count365
|
||||
\c@mv@boldtabular=\count366
|
||||
(/usr/local/texlive/2025/texmf-dist/tex/latex/upquote/upquote.sty
|
||||
Package: upquote 2012/04/19 v1.3 upright-quote and grave-accent glyphs in verba
|
||||
tim
|
||||
@@ -1229,17 +1107,7 @@ Package caption Info: Begin \AtBeginDocument code.
|
||||
Package caption Info: float package is loaded.
|
||||
Package caption Info: listings package is loaded.
|
||||
Package caption Info: End \AtBeginDocument code.
|
||||
\c@lstlisting=\count376
|
||||
|
||||
(|'inkscape' -V )
|
||||
|
||||
Package svg Warning: No version of Inkscape was detected by invoking
|
||||
(svg) `inkscape -V'
|
||||
(svg) so the Inkscape export will fail quite sure as the
|
||||
(svg) command is probably unknown to your OS. You could set
|
||||
(svg) `inkscapeversion=<version>' manually but this is very
|
||||
(svg) unlikely to work on input line 131.
|
||||
|
||||
\c@lstlisting=\count367
|
||||
LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/m/n' will be
|
||||
(Font) scaled to size 17.28pt on input line 316.
|
||||
LaTeX Font Info: Trying to load font information for T1+LinuxBiolinumT-TLF o
|
||||
@@ -1422,10 +1290,6 @@ LaTeX Font Info: Font shape `U/ntxsyc/m/n' will be
|
||||
LaTeX Font Info: Font shape `U/ntxexa/m/n' will be
|
||||
(Font) scaled to size 9.0pt on input line 376.
|
||||
|
||||
LaTeX Warning: Reference `sec:JemallocFATAllocator' on page 1 undefined on inpu
|
||||
t line 388.
|
||||
|
||||
|
||||
Underfull \vbox (badness 10000) has occurred while \output is active []
|
||||
|
||||
|
||||
@@ -1504,173 +1368,201 @@ LaTeX Font Info: Font shape `T1/LinuxBiolinumT-TLF/m/n' will be
|
||||
LaTeX Font Info: Font shape `T1/LinuxBiolinumT-TLF/m/n' will be
|
||||
(Font) scaled to size 7.0pt on input line 498.
|
||||
[2.2]
|
||||
Package svg Info: Last page of `./svg-inkscape/drawing_svg-tex.pdf' is 8 on inp
|
||||
ut line 541.
|
||||
(./svg-inkscape/drawing_svg-tex.pdf_tex
|
||||
<./svg-inkscape/drawing_svg-tex.pdf, id=161, page=1, 597.50786pt x 845.04686pt>
|
||||
<diagram/drawing.pdf, id=158, 459.57687pt x 430.33751pt>
|
||||
File: diagram/drawing.pdf Graphic file (type pdf)
|
||||
<use diagram/drawing.pdf>
|
||||
Package pdftex.def Info: diagram/drawing.pdf used on input line 548.
|
||||
(pdftex.def) Requested size: 192.91872pt x 180.64859pt.
|
||||
|
||||
File: ./svg-inkscape/drawing_svg-tex.pdf Graphic file (type pdf)
|
||||
<use ./svg-inkscape/drawing_svg-tex.pdf, page 1>
|
||||
Package pdftex.def Info: ./svg-inkscape/drawing_svg-tex.pdf , page1 used on inp
|
||||
ut line 56.
|
||||
(pdftex.def) Requested size: 192.91872pt x 272.84465pt.
|
||||
<./svg-inkscape/drawing_svg-tex.pdf, id=162, page=2, 597.50786pt x 845.04686pt>
|
||||
|
||||
File: ./svg-inkscape/drawing_svg-tex.pdf Graphic file (type pdf)
|
||||
<use ./svg-inkscape/drawing_svg-tex.pdf, page 2>
|
||||
Package pdftex.def Info: ./svg-inkscape/drawing_svg-tex.pdf , page2 used on inp
|
||||
ut line 64.
|
||||
(pdftex.def) Requested size: 192.91872pt x 272.84465pt.
|
||||
<./svg-inkscape/drawing_svg-tex.pdf, id=163, page=3, 597.50786pt x 845.04686pt>
|
||||
Class acmart Warning: A possible image without description on input line 551.
|
||||
|
||||
File: ./svg-inkscape/drawing_svg-tex.pdf Graphic file (type pdf)
|
||||
<use ./svg-inkscape/drawing_svg-tex.pdf, page 3>
|
||||
Package pdftex.def Info: ./svg-inkscape/drawing_svg-tex.pdf , page3 used on inp
|
||||
ut line 74.
|
||||
(pdftex.def) Requested size: 192.91872pt x 272.84465pt.
|
||||
|
||||
! Missing } inserted.
|
||||
<inserted text>
|
||||
}
|
||||
l.75 ...age(1GB);\\ }\\ ...\\} \end{tabular}}}}
|
||||
%
|
||||
? x
|
||||
|
||||
|
||||
LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/m/it' will be
|
||||
(Font) scaled to size 9.0pt on input line 611.
|
||||
|
||||
Underfull \vbox (badness 1270) has occurred while \output is active []
|
||||
|
||||
|
||||
|
||||
[3.3 <./diagram/drawing.pdf>]
|
||||
Package hyperref Info: bookmark level for unknown algorithm defaults to 0 on in
|
||||
put line 745.
|
||||
LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/m/sc' will be
|
||||
(Font) scaled to size 9.0pt on input line 748.
|
||||
LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/m/n' will be
|
||||
(Font) scaled to size 6.6pt on input line 749.
|
||||
LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/m/n' will be
|
||||
(Font) scaled to size 5.5pt on input line 749.
|
||||
|
||||
|
||||
LaTeX Font Info: Trying to load font information for T1+zi4 on input line 83
|
||||
4.
|
||||
(/usr/local/texlive/2025/texmf-dist/tex/latex/inconsolata/t1zi4.fd
|
||||
File: t1zi4.fd 2018/01/14 T1/zi4 (Inconsolata)
|
||||
)
|
||||
LaTeX Font Info: Font shape `T1/zi4/m/n' will be
|
||||
(Font) scaled to size 9.0pt on input line 834.
|
||||
Package microtype Info: Loading generic protrusion settings for font family
|
||||
(microtype) `zi4' (encoding: T1).
|
||||
(microtype) For optimal results, create family-specific settings.
|
||||
(microtype) See the microtype manual for details.
|
||||
|
||||
|
||||
[4.4{/usr/local/texlive/2025/texmf-dist/fonts/enc/dvips/libertine/lbtn_ncsllp.e
|
||||
nc}{/usr/local/texlive/2025/texmf-dist/fonts/enc/dvips/libertine/lbtn_oexx6f.en
|
||||
c}]
|
||||
|
||||
|
||||
|
||||
[5.5{/usr/local/texlive/2025/texmf-dist/fonts/enc/dvips/inconsolata/i4-t1-4.enc
|
||||
}]
|
||||
LaTeX Font Info: Font shape `T1/LinuxBiolinumT-TLF/m/it' will be
|
||||
(Font) scaled to size 9.0pt on input line 1061.
|
||||
|
||||
|
||||
|
||||
Underfull \vbox (badness 10000) has occurred while \output is active []
|
||||
|
||||
|
||||
|
||||
[6.6]
|
||||
<diagram/benchmarks-group/bargraph-large-dtlb-walk.png, id=258, 1011.78pt x 578
|
||||
.16pt>
|
||||
File: diagram/benchmarks-group/bargraph-large-dtlb-walk.png Graphic file (type
|
||||
png)
|
||||
<use diagram/benchmarks-group/bargraph-large-dtlb-walk.png>
|
||||
Package pdftex.def Info: diagram/benchmarks-group/bargraph-large-dtlb-walk.png
|
||||
used on input line 1148.
|
||||
(pdftex.def) Requested size: 241.14749pt x 137.79964pt.
|
||||
<diagram/benchmarks-group/bargraph-large-l1tlb-reads.png, id=260, 1011.78pt x 5
|
||||
78.16pt>
|
||||
File: diagram/benchmarks-group/bargraph-large-l1tlb-reads.png Graphic file (typ
|
||||
e png)
|
||||
<use diagram/benchmarks-group/bargraph-large-l1tlb-reads.png>
|
||||
Package pdftex.def Info: diagram/benchmarks-group/bargraph-large-l1tlb-reads.pn
|
||||
g used on input line 1153.
|
||||
(pdftex.def) Requested size: 241.14749pt x 137.79964pt.
|
||||
<diagram/benchmarks-group/bargraph-large-l1tlb-refill.png, id=261, 1011.78pt x
|
||||
578.16pt>
|
||||
File: diagram/benchmarks-group/bargraph-large-l1tlb-refill.png Graphic file (ty
|
||||
pe png)
|
||||
<use diagram/benchmarks-group/bargraph-large-l1tlb-refill.png>
|
||||
Package pdftex.def Info: diagram/benchmarks-group/bargraph-large-l1tlb-refill.p
|
||||
ng used on input line 1161.
|
||||
(pdftex.def) Requested size: 241.14749pt x 137.79964pt.
|
||||
<diagram/benchmarks-group/bargraph-large-l2tlb-reads.png, id=262, 1011.78pt x 5
|
||||
78.16pt>
|
||||
File: diagram/benchmarks-group/bargraph-large-l2tlb-reads.png Graphic file (typ
|
||||
e png)
|
||||
<use diagram/benchmarks-group/bargraph-large-l2tlb-reads.png>
|
||||
Package pdftex.def Info: diagram/benchmarks-group/bargraph-large-l2tlb-reads.pn
|
||||
g used on input line 1166.
|
||||
(pdftex.def) Requested size: 241.14749pt x 137.79964pt.
|
||||
<diagram/benchmarks-group/bargraph-large-ll-cache-rd.png, id=263, 1011.78pt x 5
|
||||
78.16pt>
|
||||
File: diagram/benchmarks-group/bargraph-large-ll-cache-rd.png Graphic file (typ
|
||||
e png)
|
||||
<use diagram/benchmarks-group/bargraph-large-ll-cache-rd.png>
|
||||
Package pdftex.def Info: diagram/benchmarks-group/bargraph-large-ll-cache-rd.pn
|
||||
g used on input line 1174.
|
||||
(pdftex.def) Requested size: 241.14749pt x 137.79964pt.
|
||||
<diagram/benchmarks-group/bargraph-large-wallclock.png, id=264, 1011.78pt x 578
|
||||
.16pt>
|
||||
File: diagram/benchmarks-group/bargraph-large-wallclock.png Graphic file (type
|
||||
png)
|
||||
<use diagram/benchmarks-group/bargraph-large-wallclock.png>
|
||||
Package pdftex.def Info: diagram/benchmarks-group/bargraph-large-wallclock.png
|
||||
used on input line 1179.
|
||||
(pdftex.def) Requested size: 241.14749pt x 137.79964pt.
|
||||
|
||||
|
||||
Class acmart Warning: A possible image without description on input line 1187.
|
||||
|
||||
|
||||
|
||||
|
||||
Underfull \vbox (badness 10000) has occurred while \output is active []
|
||||
|
||||
|
||||
|
||||
[7.7]
|
||||
Underfull \vbox (badness 10000) has occurred while \output is active []
|
||||
|
||||
|
||||
|
||||
|
||||
Underfull \vbox (badness 10000) has occurred while \output is active []
|
||||
|
||||
|
||||
|
||||
[8.8 <./diagram/benchmarks-group/bargraph-large-dtlb-walk.png> <./diagram/bench
|
||||
marks-group/bargraph-large-l1tlb-reads.png> <./diagram/benchmarks-group/bargrap
|
||||
h-large-l1tlb-refill.png> <./diagram/benchmarks-group/bargraph-large-l2tlb-read
|
||||
s.png> <./diagram/benchmarks-group/bargraph-large-ll-cache-rd.png> <./diagram/b
|
||||
enchmarks-group/bargraph-large-wallclock.png>] (./paper.bbl
|
||||
|
||||
|
||||
Underfull \hbox (badness 2443) in paragraph at lines 145--149
|
||||
[]\T1/LinuxLibertineT-TLF/m/n/7 (+20) CHERI-allocator/benchmarks/benchmarks/Str
|
||||
essTestMalloc/glibc-bench.c at
|
||||
[]
|
||||
|
||||
)
|
||||
|
||||
Class acmart Warning: Some images may lack descriptions.
|
||||
|
||||
|
||||
Class acmart Warning: ACM keywords are mandatory for papers over two pages.
|
||||
|
||||
|
||||
Class acmart Warning: CCS concepts are mandatory for papers over two pages.
|
||||
|
||||
|
||||
|
||||
|
||||
Package balance Warning: You have called \balance in second column
|
||||
(balance) Columns might not be balanced.
|
||||
|
||||
(/usr/local/texlive/2025/texmf-dist/tex/generic/stringenc/se-pdfdoc.def
|
||||
File: se-pdfdoc.def 2019/11/29 v1.12 stringenc: PDFDocEncoding
|
||||
)
|
||||
(/usr/local/texlive/2025/texmf-dist/tex/generic/stringenc/se-utf8.def
|
||||
File: se-utf8.def 2019/11/29 v1.12 stringenc: UTF-8
|
||||
) [9.9]
|
||||
(./paper.aux)
|
||||
***********
|
||||
LaTeX2e <2024-11-01> patch level 2
|
||||
L3 programming layer <2025-01-18>
|
||||
***********
|
||||
Package rerunfilecheck Info: File `paper.out' has not changed.
|
||||
(rerunfilecheck) Checksum: E0A4BE03BD5F2BF273294833454E3065;4043.
|
||||
)
|
||||
Here is how much of TeX's memory you used:
|
||||
26080 strings out of 473190
|
||||
441394 string characters out of 5715801
|
||||
1014480 words of memory out of 5000000
|
||||
48269 multiletter control sequences out of 15000+600000
|
||||
741086 words of font info for 389 fonts, out of 8000000 for 9000
|
||||
24380 strings out of 473190
|
||||
401897 string characters out of 5715801
|
||||
979084 words of memory out of 5000000
|
||||
46492 multiletter control sequences out of 15000+600000
|
||||
779416 words of font info for 478 fonts, out of 8000000 for 9000
|
||||
1302 hyphenation exceptions out of 8191
|
||||
94i,16n,131p,1002b,746s stack positions out of 10000i,1000n,20000p,200000b,200000s
|
||||
|
||||
pdfTeX warning (dest): name{cite.chen_flexpointer_2023} has been referenced but
|
||||
does not exist, replaced by a fixed one
|
||||
|
||||
|
||||
pdfTeX warning (dest): name{cite.karakostas_redundant_2015} has been referenced
|
||||
but does not exist, replaced by a fixed one
|
||||
|
||||
|
||||
pdfTeX warning (dest): name{cite.DirectSegment} has been referenced but does no
|
||||
t exist, replaced by a fixed one
|
||||
|
||||
|
||||
pdfTeX warning (dest): name{cite.Shadow_superpages} has been referenced but doe
|
||||
s not exist, replaced by a fixed one
|
||||
|
||||
|
||||
pdfTeX warning (dest): name{cite.IntelItanium} has been referenced but does not
|
||||
exist, replaced by a fixed one
|
||||
|
||||
|
||||
pdfTeX warning (dest): name{cite.THP} has been referenced but does not exist, r
|
||||
eplaced by a fixed one
|
||||
|
||||
|
||||
pdfTeX warning (dest): name{cite.TLBReach} has been referenced but does not exi
|
||||
st, replaced by a fixed one
|
||||
|
||||
|
||||
pdfTeX warning (dest): name{cite.woodruff_cheri_2019} has been referenced but d
|
||||
oes not exist, replaced by a fixed one
|
||||
|
||||
|
||||
pdfTeX warning (dest): name{cite.woodruff_cheri_2014} has been referenced but d
|
||||
oes not exist, replaced by a fixed one
|
||||
|
||||
|
||||
pdfTeX warning (dest): name{cite.panwar_hawkeye_2019} has been referenced but d
|
||||
oes not exist, replaced by a fixed one
|
||||
|
||||
|
||||
pdfTeX warning (dest): name{cite.mittal_survey_2017} has been referenced but do
|
||||
es not exist, replaced by a fixed one
|
||||
|
||||
|
||||
pdfTeX warning (dest): name{cite.TLBHierarchy} has been referenced but does not
|
||||
exist, replaced by a fixed one
|
||||
|
||||
|
||||
pdfTeX warning (dest): name{page.9} has been referenced but does not exist, rep
|
||||
laced by a fixed one
|
||||
|
||||
|
||||
pdfTeX warning (dest): name{section*.7} has been referenced but does not exist,
|
||||
replaced by a fixed one
|
||||
|
||||
|
||||
pdfTeX warning (dest): name{section.8} has been referenced but does not exist,
|
||||
replaced by a fixed one
|
||||
|
||||
|
||||
pdfTeX warning (dest): name{subsection.7.4} has been referenced but does not ex
|
||||
ist, replaced by a fixed one
|
||||
|
||||
|
||||
pdfTeX warning (dest): name{subsection.7.3} has been referenced but does not ex
|
||||
ist, replaced by a fixed one
|
||||
|
||||
|
||||
pdfTeX warning (dest): name{subsection.7.2} has been referenced but does not ex
|
||||
ist, replaced by a fixed one
|
||||
|
||||
|
||||
pdfTeX warning (dest): name{subsection.7.1} has been referenced but does not ex
|
||||
ist, replaced by a fixed one
|
||||
|
||||
|
||||
pdfTeX warning (dest): name{section.7} has been referenced but does not exist,
|
||||
replaced by a fixed one
|
||||
|
||||
|
||||
pdfTeX warning (dest): name{subsection.6.2} has been referenced but does not ex
|
||||
ist, replaced by a fixed one
|
||||
|
||||
|
||||
pdfTeX warning (dest): name{subsection.6.1} has been referenced but does not ex
|
||||
ist, replaced by a fixed one
|
||||
|
||||
|
||||
pdfTeX warning (dest): name{section.6} has been referenced but does not exist,
|
||||
replaced by a fixed one
|
||||
|
||||
|
||||
pdfTeX warning (dest): name{section.5} has been referenced but does not exist,
|
||||
replaced by a fixed one
|
||||
|
||||
|
||||
pdfTeX warning (dest): name{subsection.4.1} has been referenced but does not ex
|
||||
ist, replaced by a fixed one
|
||||
|
||||
|
||||
pdfTeX warning (dest): name{section.4} has been referenced but does not exist,
|
||||
replaced by a fixed one
|
||||
|
||||
|
||||
pdfTeX warning (dest): name{subsection.3.1} has been referenced but does not ex
|
||||
ist, replaced by a fixed one
|
||||
|
||||
|
||||
pdfTeX warning (dest): name{section.3} has been referenced but does not exist,
|
||||
replaced by a fixed one
|
||||
|
||||
|
||||
pdfTeX warning (dest): name{subsection.2.6} has been referenced but does not ex
|
||||
ist, replaced by a fixed one
|
||||
|
||||
</usr/local/texlive/2025/texmf-dist/fonts/type1/public/libertine/LinBiolinumT.p
|
||||
fb></usr/local/texlive/2025/texmf-dist/fonts/type1/public/libertine/LinBiolinum
|
||||
TB.pfb></usr/local/texlive/2025/texmf-dist/fonts/type1/public/libertine/LinLibe
|
||||
rtineT.pfb></usr/local/texlive/2025/texmf-dist/fonts/type1/public/libertine/Lin
|
||||
LibertineTB.pfb></usr/local/texlive/2025/texmf-dist/fonts/type1/public/libertin
|
||||
e/LinLibertineTI.pfb></usr/local/texlive/2025/texmf-dist/fonts/type1/public/new
|
||||
tx/txsys.pfb>
|
||||
Output written on paper.pdf (2 pages, 354851 bytes).
|
||||
90i,17n,131p,1002b,778s stack positions out of 10000i,1000n,20000p,200000b,200000s
|
||||
</usr/local/texlive/2025/texmf-dist/fonts/type1/public/inconsolata/Inconsolat
|
||||
a-zi4r.pfb></usr/local/texlive/2025/texmf-dist/fonts/type1/public/newtx/Liberti
|
||||
neMathMI.pfb></usr/local/texlive/2025/texmf-dist/fonts/type1/public/libertine/L
|
||||
inBiolinumT.pfb></usr/local/texlive/2025/texmf-dist/fonts/type1/public/libertin
|
||||
e/LinBiolinumTB.pfb></usr/local/texlive/2025/texmf-dist/fonts/type1/public/libe
|
||||
rtine/LinBiolinumTI.pfb></usr/local/texlive/2025/texmf-dist/fonts/type1/public/
|
||||
libertine/LinLibertineT.pfb></usr/local/texlive/2025/texmf-dist/fonts/type1/pub
|
||||
lic/libertine/LinLibertineTB.pfb></usr/local/texlive/2025/texmf-dist/fonts/type
|
||||
1/public/libertine/LinLibertineTI.pfb></usr/local/texlive/2025/texmf-dist/fonts
|
||||
/type1/public/newtx/NewTXMI.pfb></usr/local/texlive/2025/texmf-dist/fonts/type1
|
||||
/public/newtx/txmiaX.pfb></usr/local/texlive/2025/texmf-dist/fonts/type1/public
|
||||
/newtx/txsys.pfb>
|
||||
Output written on paper.pdf (9 pages, 829590 bytes).
|
||||
PDF statistics:
|
||||
210 PDF objects out of 1000 (max. 8388607)
|
||||
177 compressed objects within 2 object streams
|
||||
41 named destinations out of 1000 (max. 500000)
|
||||
104673 words of extra memory for PDF output out of 106986 (max. 10000000)
|
||||
388 PDF objects out of 1000 (max. 8388607)
|
||||
323 compressed objects within 4 object streams
|
||||
67 named destinations out of 1000 (max. 500000)
|
||||
123636 words of extra memory for PDF output out of 128383 (max. 10000000)
|
||||
|
||||
|
||||
@@ -536,9 +536,16 @@ in this implementation is the use of range addresses with CHERI CC~\cite{woodruf
|
||||
% mitigating issues related to memory fragmentation.
|
||||
% \end{itemize}
|
||||
|
||||
% \begin{figure}[ht]ß
|
||||
% \centering
|
||||
% \includesvg[width=0.8\linewidth]{diagram/drawing.svg}
|
||||
% \caption{High overview architecture}
|
||||
% \label{fig:HighOverviewArchitecture}√
|
||||
% \end{figure}
|
||||
|
||||
\begin{figure}[ht]
|
||||
\centering
|
||||
\includesvg[width=0.8\linewidth]{diagram/drawing.svg}
|
||||
\includegraphics[width=0.8\linewidth]{diagram/drawing.pdf}
|
||||
\caption{High overview architecture}
|
||||
\label{fig:HighOverviewArchitecture}
|
||||
\end{figure}
|
||||
@@ -598,8 +605,8 @@ which is called when there is a L1 TLB miss. FlexPointer builds up on the work o
|
||||
and 64th bit which is the value to check the range table on parallel to the L1 TLB lookup.
|
||||
|
||||
The FAT allocator builds up on the concept of range from RMM and FlexPointer. Instead of using a
|
||||
hardware range table using CHERI range information can be encoded within a capability pointer.
|
||||
A memory range in FAT has two points to track memory in physical contiguous space which
|
||||
hardware range table using CHERI, range information can be encoded within a capability pointer.
|
||||
A memory range in FAT has two points to track memory in physically contiguous space which
|
||||
is the top and bottom. These two points are two virtual addresses and the range consists of
|
||||
addresses that lie within this and refers to addresses allocated by invoking \textit{malloc}.
|
||||
FAT memory ranges are established using
|
||||
@@ -656,7 +663,7 @@ This approach offers a more flexible alternative to the traditional fixed-size T
|
||||
|
||||
This means that the default behavior of most allocators, such
|
||||
as Jemalloc, would allow precise representation of bounds within
|
||||
a FAT . These pointers can then be repurposed as memory ranges in custom memory allocators, offering a more flexible
|
||||
a FAT. These pointers can then be repurposed as memory ranges in custom memory allocators, offering a more flexible
|
||||
alternative to fixed-size TLB entries.
|
||||
|
||||
% We use the CHERI CC
|
||||
|
||||
@@ -59,9 +59,11 @@ Recheck require read of the paper
|
||||
- [x] "This approach has helped reduce" -> "This approach reduces"
|
||||
- [x] "Remove comprehensive"
|
||||
|
||||
** Changes
|
||||
- [ ] Fix image
|
||||
** Changes
|
||||
- [x] Fix image
|
||||
- [x] Integrate Jemalloc to Abstract and Intro
|
||||
- [x] Integrate to conclusion
|
||||
- [x] Fix Analysis
|
||||
- [ ] Read through the entire paper
|
||||
|
||||
|
||||
|
||||
BIN
docs/RISCV-FAT/.DS_Store
vendored
Normal file
3081
docs/RISCV-FAT/ACM-Reference-Format.bst
Normal file
169
docs/RISCV-FAT/Makefile
Normal file
@@ -0,0 +1,169 @@
|
||||
#
|
||||
# Makefile for acmart package
|
||||
#
|
||||
# This file is in public domain
|
||||
#
|
||||
# $Id: Makefile,v 1.10 2016/04/14 21:55:57 boris Exp $
|
||||
#
|
||||
|
||||
PACKAGE=acmart
|
||||
|
||||
DEV=-dev # To switch dev on
|
||||
#DEV=
|
||||
|
||||
PDF = $(PACKAGE).pdf acmguide.pdf
|
||||
|
||||
BIBLATEXFILES= $(wildcard *.bbx) $(wildcard *.cbx) $(wildcard *.dbx) $(wildcard *.lbx)
|
||||
SAMPLEBIBLATEXFILES=$(patsubst %,samples/%,$(BIBLATEXFILES))
|
||||
|
||||
ACMCPSAMPLES= \
|
||||
samples/sample-acmcp-Discussion.pdf \
|
||||
samples/sample-acmcp-Invited.pdf \
|
||||
samples/sample-acmcp-Position.pdf \
|
||||
samples/sample-acmcp-Research.pdf \
|
||||
samples/sample-acmcp-Review.pdf \
|
||||
|
||||
all: ${PDF} ALLSAMPLES
|
||||
|
||||
%.pdf: %.dtx $(PACKAGE).cls
|
||||
pdflatex $<
|
||||
- bibtex $*
|
||||
pdflatex $<
|
||||
- makeindex -s gind.ist -o $*.ind $*.idx
|
||||
- makeindex -s gglo.ist -o $*.gls $*.glo
|
||||
pdflatex $<
|
||||
while ( grep -q '^LaTeX Warning: Label(s) may have changed' $*.log) \
|
||||
do pdflatex $<; done
|
||||
|
||||
|
||||
acmguide.pdf: $(PACKAGE).dtx $(PACKAGE).cls
|
||||
pdflatex -jobname acmguide $(PACKAGE).dtx
|
||||
- bibtex acmguide
|
||||
pdflatex -jobname acmguide $(PACKAGE).dtx
|
||||
while ( grep -q '^LaTeX Warning: Label(s) may have changed' acmguide.log) \
|
||||
do pdflatex -jobname acmguide $(PACKAGE).dtx; done
|
||||
|
||||
%.cls: %.ins %.dtx
|
||||
pdflatex $<
|
||||
|
||||
|
||||
ALLSAMPLES: $(SAMPLEBIBLATEXFILES)
|
||||
cd samples; pdflatex samples.ins; cd ..
|
||||
for texfile in samples/*.tex; do \
|
||||
pdffile=$${texfile%.tex}.pdf; \
|
||||
${MAKE} $$pdffile; \
|
||||
done
|
||||
|
||||
samples/%: %
|
||||
cp $^ samples
|
||||
|
||||
|
||||
samples/$(PACKAGE).cls: $(PACKAGE).cls
|
||||
samples/ACM-Reference-Format.bst: ACM-Reference-Format.bst
|
||||
|
||||
samples/abbrev.bib: ACM-Reference-Format.bst
|
||||
perl -pe 's/MACRO ({[^}]*}) *\n/MACRO \1/' ACM-Reference-Format.bst \
|
||||
| grep MACRO | sed 's/MACRO {/@STRING{/' \
|
||||
| sed 's/} *{/ = /' > samples/abbrev.bib
|
||||
|
||||
|
||||
samples/%.bbx: %.bbx
|
||||
samples/%.cbx: %.cbx
|
||||
samples/%.dbx: %.dbx
|
||||
samples/%.lbx: %.lbx
|
||||
|
||||
|
||||
|
||||
samples/%.pdf: samples/%.tex samples/$(PACKAGE).cls samples/ACM-Reference-Format.bst
|
||||
cd $(dir $@) && pdflatex${DEV} $(notdir $<)
|
||||
- cd $(dir $@) && bibtex $(notdir $(basename $<))
|
||||
cd $(dir $@) && pdflatex${DEV} $(notdir $<)
|
||||
cd $(dir $@) && pdflatex${DEV} $(notdir $<)
|
||||
while ( grep -q '^LaTeX Warning: Label(s) may have changed' $(basename $<).log) \
|
||||
do cd $(dir $@) && pdflatex${DEV} $(notdir $<); done
|
||||
|
||||
samples/sample-sigconf-biblatex.pdf: samples/sample-sigconf-biblatex.tex $(SAMPLEBIBLATEXFILES)
|
||||
cd $(dir $@) && pdflatex${DEV} $(notdir $<)
|
||||
- cd $(dir $@) && biber $(notdir $(basename $<))
|
||||
cd $(dir $@) && pdflatex${DEV} $(notdir $<)
|
||||
cd $(dir $@) && pdflatex${DEV} $(notdir $<)
|
||||
while ( grep -q '^LaTeX Warning: Label(s) may have changed' $(basename $<).log) \
|
||||
do cd $(dir $@) && pdflatex${DEV} $(notdir $<); done
|
||||
|
||||
samples/sample-acmsmall-biblatex.pdf: samples/sample-acmsmall-biblatex.tex $(SAMPLEBIBLATEXFILES)
|
||||
cd $(dir $@) && pdflatex${DEV} $(notdir $<)
|
||||
- cd $(dir $@) && biber $(notdir $(basename $<))
|
||||
cd $(dir $@) && pdflatex${DEV} $(notdir $<)
|
||||
cd $(dir $@) && pdflatex${DEV} $(notdir $<)
|
||||
while ( grep -q '^LaTeX Warning: Label(s) may have changed' $(basename $<).log) \
|
||||
do cd $(dir $@) && pdflatex${DEV} $(notdir $<); done
|
||||
|
||||
samples/sample-sigconf-xelatex.pdf: samples/sample-xelatex.tex samples/$(PACKAGE).cls samples/ACM-Reference-Format.bst
|
||||
cd $(dir $@) && xelatex${DEV} $(notdir $<)
|
||||
- cd $(dir $@) && bibtex $(notdir $(basename $<))
|
||||
cd $(dir $@) && xelatex${DEV} $(notdir $<)
|
||||
cd $(dir $@) && xelatex${DEV} $(notdir $<)
|
||||
while ( grep -q '^LaTeX Warning: Label(s) may have changed' $(basename $<).log) \
|
||||
do cd $(dir $@) && xelatex${DEV} $(notdir $<); done
|
||||
|
||||
samples/sample-sigconf-lualatex.pdf: samples/sample-lualatex.tex samples/$(PACKAGE).cls samples/ACM-Reference-Format.bst
|
||||
cd $(dir $@) && lualatex${DEV} $(notdir $<)
|
||||
- cd $(dir $@) && bibtex $(notdir $(basename $<))
|
||||
cd $(dir $@) && lualatex${DEV} $(notdir $<)
|
||||
cd $(dir $@) && lualatex${DEV} $(notdir $<)
|
||||
while ( grep -q '^LaTeX Warning: Label(s) may have changed' $(basename $<).log) \
|
||||
do cd $(dir $@) && lualatex${DEV} $(notdir $<); done
|
||||
|
||||
samples/sample-acmcp.pdf: samples/acm-jdslogo.png
|
||||
|
||||
.PRECIOUS: $(PACKAGE).cfg $(PACKAGE).cls
|
||||
|
||||
docclean:
|
||||
$(RM) *.log *.aux \
|
||||
*.cfg *.glo *.idx *.toc \
|
||||
*.ilg *.ind *.out *.lof \
|
||||
*.lot *.bbl *.blg *.gls *.cut *.hd \
|
||||
*.dvi *.ps *.thm *.tgz *.zip *.rpi \
|
||||
samples/$(PACKAGE).cls samples/ACM-Reference-Format.bst \
|
||||
samples/*.log samples/*.aux samples/*.out \
|
||||
samples/*.bbl samples/*.blg samples/*.cut \
|
||||
samples/acm-jdslogo.png \
|
||||
samples/*.run.xml samples/*.bcf $(SAMPLEBIBLATEXFILES)
|
||||
|
||||
|
||||
clean: docclean
|
||||
$(RM) $(PACKAGE).cls \
|
||||
samples/*.tex
|
||||
|
||||
distclean: clean
|
||||
$(RM) *.pdf samples/sample-*.pdf
|
||||
|
||||
#
|
||||
# Archive for the distribution. Includes typeset documentation
|
||||
#
|
||||
archive: all clean
|
||||
COPYFILE_DISABLE=1 tar -C .. -czvf ../$(PACKAGE).tgz --exclude '*~' --exclude '*.tgz' --exclude '*.zip' --exclude CVS --exclude '.git*' $(PACKAGE); mv ../$(PACKAGE).tgz .
|
||||
|
||||
zip: all clean
|
||||
zip -r $(PACKAGE).zip * -x '*~' -x '*.tgz' -x '*.zip' -x CVS -x 'CVS/*'
|
||||
|
||||
# distros
|
||||
distros: all docclean
|
||||
zip -r acm-distro.zip \
|
||||
acmart.pdf acmguide.pdf samples *.cls ACM-Reference-Format.* \
|
||||
--exclude samples/sample-acmengage*
|
||||
zip -r acmengage-distro.zip samples/sample-acmengage* \
|
||||
samples/*.bib \
|
||||
acmart.pdf acmguide.pdf *.cls ACM-Reference-Format.*
|
||||
|
||||
acmcp.zip: ${ACMCPSAMPLES} acmart.cls
|
||||
zip $@ $+
|
||||
|
||||
samples/sample-acmcp.tex: samples/samples.ins samples/samples.dtx
|
||||
cd samples; pdflatex samples.ins; cd ..
|
||||
|
||||
|
||||
samples/sample-acmcp-%.tex: samples/sample-acmcp.tex samples/acm-jdslogo.png
|
||||
sed 's/acmArticleType{Review}/acmArticleType{$*}/' $< > $@
|
||||
|
||||
.PHONY: all ALLSAMPLES docclean clean distclean archive zip
|
||||
13
docs/RISCV-FAT/Meetings/29-04-2025.org
Normal file
@@ -0,0 +1,13 @@
|
||||
* Meeting agenda
|
||||
- [ ] To discuss the Jemalloc expirment.
|
||||
- [ ] To dicuss strategy to plot high variance in the graphs.
|
||||
- [ ] Paper writing progress.
|
||||
- [ ] Waiting on Ryad for his group of points to change.
|
||||
- [ ] Next up would be Hans-Wolfgang's set of reviews.
|
||||
|
||||
|
||||
** This weeks plan
|
||||
- [ ] Full time paper writing mode from the 30th April (Tomorrow onwards)
|
||||
- [ ] Waiting on Ryad's feedback (To start his corrections from Wednesday onwards)
|
||||
- [ ] To plot other set of C programs as listed on the paper for the Jemalloc modification.
|
||||
- [ ] Write up Expirement section for Jemalloc expirment.
|
||||
BIN
docs/RISCV-FAT/Paper/.DS_Store
vendored
Normal file
1
docs/RISCV-FAT/Paper/build.sh
Normal file
@@ -0,0 +1 @@
|
||||
latexmk --shell-escape -pdf paper.tex
|
||||
71
docs/RISCV-FAT/Paper/changelog.org
Normal file
@@ -0,0 +1,71 @@
|
||||
** Changelog
|
||||
|
||||
*** General
|
||||
- [x] Change name (Thinking of using (Fat Address Translation) -> similar to GNU))
|
||||
- [x] Avoid words which create options
|
||||
- [x] Use citation with ```~/cite{foo}```
|
||||
- [x] Clear distinction on Literature review and contribution done
|
||||
- [x] Generalise capitalisation
|
||||
- [x] Instead of "Leverage" -> "use"
|
||||
- [ ] Remove whitespace from figures to be compressed
|
||||
- [ ] Uniform font sizes in figures
|
||||
- [ ] Symmetrical lines on the figure
|
||||
- [x] TLB with acronym only once for the first instance in the paper
|
||||
|
||||
*** Abstract (Re-read required later on)
|
||||
- [x] Reduce Abstract to a single paragraph'
|
||||
- [x] "Mitigate gap, capacity" -> Expand on for instance on how is it measured.
|
||||
- [x] Huge pages moved to the introduction.
|
||||
- [ ] Robs proposed structure (This paper presents <NAME> user-space memory allocator. It uses capability-based addressing to <list properties>.
|
||||
|
||||
*** Introduction
|
||||
- [x] "It becomes possible" expand more with baseline compressed bounds (Relook into this later on).
|
||||
- [x] "This paper makes the following contribution" -. bullet points with marked sections.
|
||||
- [x] Research questions removed.
|
||||
- [x] "This implementation" Specify implementation
|
||||
- [ ] Robs recommended Introduction structure (Expansion of the abstract, Name of the existing system, clearly describe limitation, Introduce memory allocator).
|
||||
|
||||
*** 2.1 Encoding ranges as bounds
|
||||
- [x] Repetition "Tracking of memory ranges using information in pointers" -> remove this
|
||||
- [x] Paraphrase last sentence (To be looked into later on again).
|
||||
|
||||
*** 2.2 128 bit compressed bounds
|
||||
- [x] Cites Jemalloc paragraph.
|
||||
- [x] Last sentence needs rewriting. (Needs re-check)
|
||||
|
||||
*** 2.3 Instrumenting block based allocator
|
||||
- [x] Needs citation "Which increases overhead and adds complexity"
|
||||
- [x] Elaborate on "this method"
|
||||
- [x] "precise" memory management (Elaborate on this and prove which aspects of the other allocator are not precise). (Todo be looked later on).
|
||||
|
||||
*** Memory allocator design
|
||||
- [x] Remove from heading "sample" and ":"
|
||||
- [x] Remove future work paragraph
|
||||
- [x] "unmapped" -> unmap
|
||||
- [x] "Risks of memory leaks with metadata lookups or complex data structures" -> Elaborate on this (Commented until further notice).
|
||||
|
||||
*** Evaluation
|
||||
- [x] Name of the project keeps the sentence shorter.
|
||||
- [x] "Such as" -> Definitive and exhaustive.
|
||||
- [x] Section reference on evaluation expanded.
|
||||
- [x] Remove "Providing a solid foundation for meaningful comparisons"
|
||||
- [x] Decide to use Macro or instead "real world C programs"
|
||||
|
||||
- [x] Experiment section typo heading
|
||||
- [x] Fix Latex benchmarks structure
|
||||
- [x] Change from "Diagram" to "Figure"
|
||||
|
||||
- [x] Result para 2 -> too wordy
|
||||
- [x] "aimed" first use of past tense (Recommendation: avoid)
|
||||
- [x] Rewrite usability (Changed to Analysis)
|
||||
|
||||
*** Related work
|
||||
- [x] Related work lifted up after introduction based on the reflection of the feedback.
|
||||
|
||||
*** Conclusion
|
||||
- [x] Rewrite
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
76
docs/RISCV-FAT/Paper/changelog.org~
Normal file
@@ -0,0 +1,76 @@
|
||||
** Changelog
|
||||
|
||||
*** General
|
||||
- [x] Change name (Thinking of using (Fat Address Translation) -> similar to GNU))
|
||||
- [x] Avoid words which create options
|
||||
- [x] Use citation with ```~/cite{foo}```
|
||||
- [x] Clear distinction on Literature review and contribution done
|
||||
- [x] Generalise capitalisation
|
||||
- [x] Instead of "Leverage" -> "use"
|
||||
- [ ] Remove whitespace from figures to be compressed
|
||||
- [ ] Uniform font sizes in figures
|
||||
- [ ] Symmetrical lines on the figure
|
||||
- [x] TLB with acronym only once for the first instance in the paper
|
||||
|
||||
*** Abstract (Re-read required later on)
|
||||
- [x] Reduce Abstract to a single paragraph'
|
||||
- [x] "Mitigate gap, capacity" -> Expand on for instance on how is it measured.
|
||||
- [x] Huge pages moved to the introduction.
|
||||
- [ ] Robs proposed structure (This paper presents <NAME> user-space memory allocator. It uses capability-based addressing to <list properties>.
|
||||
|
||||
*** Introduction
|
||||
- [x] "It becomes possible" expand more with baseline compressed bounds (Relook into this later on).
|
||||
- [x] "This paper makes the following contribution" -. bullet points with marked sections.
|
||||
- [x] Research questions removed.
|
||||
- [x] "This implementation" Specify implementation
|
||||
- [ ] Robs recommended Introduction structure (Expansion of the abstract, Name of the existing system, clearly describe limitation, Introduce memory allocator).
|
||||
|
||||
*** 2.1 Encoding ranges as bounds
|
||||
- [x] Repetition "Tracking of memory ranges using information in pointers" -> remove this
|
||||
- [x] Paraphrase last sentence (To be looked into later on again).
|
||||
|
||||
*** 2.2 128 bit compressed bounds
|
||||
- [x] Cites Jemalloc paragraph.
|
||||
- [x] Last sentence needs rewriting. (Needs re-check)
|
||||
|
||||
*** 2.3 Instrumenting block based allocator
|
||||
- [x] Needs citation "Which increases overhead and adds complexity"
|
||||
- [x] Elaborate on "this method"
|
||||
- [x] "precise" memory management (Elaborate on this and prove which aspects of the other allocator are not precise). (Todo be looked later on).
|
||||
|
||||
*** Memory allocator design
|
||||
- [x] Remove from heading "sample" and ":"
|
||||
- [x] Remove future work paragraph
|
||||
- [x] "unmapped" -> unmap
|
||||
- [x] "Risks of memory leaks with metadata lookups or complex data structures" -> Elaborate on this (Commented until further notice).
|
||||
|
||||
*** Evaluation
|
||||
- [x] Name of the project keeps the sentence shorter.
|
||||
- [x] "Such as" -> Definitive and exhaustive.
|
||||
- [x] Section reference on evaluation expanded.
|
||||
- [x] Remove "Providing a solid foundation for meaningful comparisons"
|
||||
- [x] Decide to use Macro or instead "real world C programs"
|
||||
|
||||
- [x] Experiment section typo heading
|
||||
- [x] Fix Latex benchmarks structure
|
||||
- [x] Change from "Diagram" to "Figure"
|
||||
|
||||
- [x] Result para 2 -> too wordy
|
||||
- [x] "aimed" first use of past tense (Recommendation: avoid)
|
||||
- [x] Rewrite usability (Changed to Analysis)
|
||||
|
||||
*** Related work
|
||||
- [x] Related work lifted up after introduction based on the reflection of the feedback.
|
||||
|
||||
*** Conclusion
|
||||
- [x] Rewrite
|
||||
|
||||
*** Experiment work
|
||||
- [x] 3 line switch in as mmap in Jemalloc for with sample C program.
|
||||
- [x] Ported Libc ```shm_large_page``` to a kernel module to ensure multiple large scale allocators can use our implementation.
|
||||
- [ ] Testing the Ported Libc kernel module (Micro benchmark for TLB stress test)
|
||||
- [ ] Port this over to Jemalloc
|
||||
|
||||
|
||||
|
||||
|
||||
BIN
docs/RISCV-FAT/Paper/changelog.pdf
Normal file
117
docs/RISCV-FAT/Paper/changelog.tex
Normal file
@@ -0,0 +1,117 @@
|
||||
% Created 2025-04-12 Sat 12:37
|
||||
% Intended LaTeX compiler: pdflatex
|
||||
\documentclass[11pt]{article}
|
||||
\usepackage[utf8]{inputenc}
|
||||
\usepackage[T1]{fontenc}
|
||||
\usepackage{graphicx}
|
||||
\usepackage{longtable}
|
||||
\usepackage{wrapfig}
|
||||
\usepackage{rotating}
|
||||
\usepackage[normalem]{ulem}
|
||||
\usepackage{amsmath}
|
||||
\usepackage{amssymb}
|
||||
\usepackage{capt-of}
|
||||
\usepackage{hyperref}
|
||||
\author{Akilan}
|
||||
\date{\today}
|
||||
\title{}
|
||||
\hypersetup{
|
||||
pdfauthor={Akilan},
|
||||
pdftitle={},
|
||||
pdfkeywords={},
|
||||
pdfsubject={},
|
||||
pdfcreator={Emacs 30.1 (Org mode 9.7.11)},
|
||||
pdflang={English}}
|
||||
\begin{document}
|
||||
|
||||
\tableofcontents
|
||||
|
||||
\section{Changelog}
|
||||
\label{sec:orgccfe838}
|
||||
|
||||
\subsection{General}
|
||||
\label{sec:org1309166}
|
||||
\begin{itemize}
|
||||
\item Change name (Thinking of using (Fat Address Translation) -> similar to GNU))
|
||||
\item Avoid words which create options
|
||||
\item Use citation with ```\textasciitilde{}/cite\{foo\}```
|
||||
\item Clear distinction on Literature review and contribution done
|
||||
\item Generalise capitalisation
|
||||
\item Instead of "Leverage" -> "use"
|
||||
\item[{$\square$}] Remove whitespace from figures to be compressed
|
||||
\item[{$\square$}] Uniform font sizes in figures
|
||||
\item[{$\square$}] Symmetrical lines on the figure
|
||||
\item TLB with acronym only once for the first instance in the paper
|
||||
\end{itemize}
|
||||
\subsection{Abstract (Re-read required later on)}
|
||||
\label{sec:org8685c9f}
|
||||
\begin{itemize}
|
||||
\item Reduce Abstract to a single paragraph'
|
||||
\item "Mitigate gap, capacity" -> Expand on for instance on how is it measured.
|
||||
\item Huge pages moved to the introduction.
|
||||
\item[{$\square$}] Robs proposed structure (This paper presents <NAME> user-space memory allocator. It uses capability-based addressing to <list properties>.
|
||||
\end{itemize}
|
||||
\subsection{Introduction}
|
||||
\label{sec:org53e6522}
|
||||
\begin{itemize}
|
||||
\item "It becomes possible" expand more with baseline compressed bounds (Relook into this later on).
|
||||
\item "This paper makes the following contribution" -. bullet points with marked sections.
|
||||
\item Research questions removed.
|
||||
\item "This implementation" Specify implementation
|
||||
\item[{$\square$}] Robs recommended Introduction structure (Expansion of the abstract, Name of the existing system, clearly describe limitation, Introduce memory allocator).
|
||||
\end{itemize}
|
||||
\subsection{2.1 Encoding ranges as bounds}
|
||||
\label{sec:org87f02f1}
|
||||
\begin{itemize}
|
||||
\item Repetition "Tracking of memory ranges using information in pointers" -> remove this
|
||||
\item Paraphrase last sentence (To be looked into later on again).
|
||||
\end{itemize}
|
||||
\subsection{2.2 128 bit compressed bounds}
|
||||
\label{sec:org767dd8c}
|
||||
\begin{itemize}
|
||||
\item Cites Jemalloc paragraph.
|
||||
\item Last sentence needs rewriting. (Needs re-check)
|
||||
\end{itemize}
|
||||
\subsection{2.3 Instrumenting block based allocator}
|
||||
\label{sec:org727e319}
|
||||
\begin{itemize}
|
||||
\item Needs citation "Which increases overhead and adds complexity"
|
||||
\item Elaborate on "this method"
|
||||
\item "precise" memory management (Elaborate on this and prove which aspects of the other allocator are not precise). (Todo be looked later on).
|
||||
\end{itemize}
|
||||
\subsection{Memory allocator design}
|
||||
\label{sec:org0a7d2f0}
|
||||
\begin{itemize}
|
||||
\item Remove from heading "sample" and ":"
|
||||
\item Remove future work paragraph
|
||||
\item "unmapped" -> unmap
|
||||
\item "Risks of memory leaks with metadata lookups or complex data structures" -> Elaborate on this (Commented until further notice).
|
||||
\end{itemize}
|
||||
\subsection{Evaluation}
|
||||
\label{sec:orgfee80dd}
|
||||
\begin{itemize}
|
||||
\item Name of the project keeps the sentence shorter.
|
||||
\item "Such as" -> Definitive and exhaustive.
|
||||
\item Section reference on evaluation expanded.
|
||||
\item Remove "Providing a solid foundation for meaningful comparisons"
|
||||
\item Decide to use Macro or instead "real world C programs"
|
||||
|
||||
\item Experiment section typo heading
|
||||
\item Fix Latex benchmarks structure
|
||||
\item Change from "Diagram" to "Figure"
|
||||
|
||||
\item Result para 2 -> too wordy
|
||||
\item "aimed" first use of past tense (Recommendation: avoid)
|
||||
\item Rewrite usability (Changed to Analysis)
|
||||
\end{itemize}
|
||||
\subsection{Related work}
|
||||
\label{sec:orgeb8e639}
|
||||
\begin{itemize}
|
||||
\item Related work lifted up after introduction based on the reflection of the feedback.
|
||||
\end{itemize}
|
||||
\subsection{Conclusion}
|
||||
\label{sec:org1fae2ee}
|
||||
\begin{itemize}
|
||||
\item Rewrite
|
||||
\end{itemize}
|
||||
\end{document}
|
||||
BIN
docs/RISCV-FAT/Paper/changes.pdf
Normal file
1
docs/RISCV-FAT/Paper/comment.cut
Normal file
@@ -0,0 +1 @@
|
||||
To Robert, for the bagels and explaining CMYK and color spaces.
|
||||
BIN
docs/RISCV-FAT/Paper/diagram/.DS_Store
vendored
Normal file
BIN
docs/RISCV-FAT/Paper/diagram/AllocationOverview24.png
Normal file
|
After Width: | Height: | Size: 45 KiB |
BIN
docs/RISCV-FAT/Paper/diagram/HighOverviewArchitecture.drawio.png
Normal file
|
After Width: | Height: | Size: 149 KiB |
BIN
docs/RISCV-FAT/Paper/diagram/HighOverviewArchitecture24.png
Normal file
|
After Width: | Height: | Size: 128 KiB |
BIN
docs/RISCV-FAT/Paper/diagram/SoftwareStack24.png
Normal file
|
After Width: | Height: | Size: 65 KiB |
BIN
docs/RISCV-FAT/Paper/diagram/TLBAccess.drawio.png
Normal file
|
After Width: | Height: | Size: 76 KiB |
BIN
docs/RISCV-FAT/Paper/diagram/allbenchmarks.png
Normal file
|
After Width: | Height: | Size: 51 KiB |
BIN
docs/RISCV-FAT/Paper/diagram/bargraph.png
Normal file
|
After Width: | Height: | Size: 72 KiB |
|
After Width: | Height: | Size: 54 KiB |
|
After Width: | Height: | Size: 55 KiB |
|
After Width: | Height: | Size: 54 KiB |
|
After Width: | Height: | Size: 54 KiB |
|
After Width: | Height: | Size: 52 KiB |
|
After Width: | Height: | Size: 54 KiB |
BIN
docs/RISCV-FAT/Paper/diagram/drawing.pdf
Normal file
1140
docs/RISCV-FAT/Paper/diagram/drawing.svg
Normal file
|
After Width: | Height: | Size: 52 KiB |
BIN
docs/RISCV-FAT/Paper/diagram/drawing_png.png
Normal file
|
After Width: | Height: | Size: 22 KiB |
BIN
docs/RISCV-FAT/Paper/diagram/drawio/.DS_Store
vendored
Normal file
184
docs/RISCV-FAT/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/RISCV-FAT/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/RISCV-FAT/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/RISCV-FAT/Paper/diagram/expirement-runs.png
Normal file
|
After Width: | Height: | Size: 200 KiB |
BIN
docs/RISCV-FAT/Paper/diagram/glibc.png
Normal file
|
After Width: | Height: | Size: 60 KiB |
BIN
docs/RISCV-FAT/Paper/diagram/hugepages.drawio.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
4
docs/RISCV-FAT/Paper/diagram/hugepages.drawio.svg
Normal file
|
After Width: | Height: | Size: 35 KiB |
BIN
docs/RISCV-FAT/Paper/diagram/kmeans.png
Normal file
|
After Width: | Height: | Size: 92 KiB |
BIN
docs/RISCV-FAT/Paper/diagram/loadmem.png
Normal file
|
After Width: | Height: | Size: 42 KiB |
100
docs/RISCV-FAT/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/RISCV-FAT/Paper/drawio/Expirement.drawio
Normal file
188
docs/RISCV-FAT/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/RISCV-FAT/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/RISCV-FAT/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/RISCV-FAT/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/RISCV-FAT/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/RISCV-FAT/Paper/drawio/hugepages.drawio.svg
Normal file
|
After Width: | Height: | Size: 35 KiB |
72
docs/RISCV-FAT/Paper/drawio/jemalloc_malloc_pseudo_code
Normal file
@@ -0,0 +1,72 @@
|
||||
static void *
|
||||
os_pages_map(void *addr, size_t size, size_t alignment, bool *commit) {
|
||||
assert(ALIGNMENT_ADDR2BASE(addr, os_page) == (vaddr_t)addr);
|
||||
assert(ALIGNMENT_CEILING(size, os_page) == size);
|
||||
assert(size != 0);
|
||||
/* Non-NULL addresses don't work in CheriABI */
|
||||
if (addr != NULL)
|
||||
return (NULL);
|
||||
|
||||
if (os_overcommits) {
|
||||
*commit = true;
|
||||
}
|
||||
|
||||
void *ret;
|
||||
|
||||
ret = MALLOCCHERI(size);
|
||||
|
||||
assert(ret != NULL);
|
||||
|
||||
if (addr != NULL && ret != addr) {
|
||||
/*
|
||||
* We succeeded in mapping memory, but not in the right place.
|
||||
*/
|
||||
os_pages_unmap(ret, size);
|
||||
ret = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void *
|
||||
pages_map(void *addr, size_t size, size_t alignment, bool *commit) {
|
||||
assert(alignment >= PAGE);
|
||||
assert(ALIGNMENT_ADDR2BASE(addr, alignment) == (vaddr_t)addr);
|
||||
|
||||
if (size & ~CHERI_REPRESENTABLE_ALIGNMENT_MASK(size))
|
||||
abort();
|
||||
|
||||
...
|
||||
|
||||
void *ret = MALLOCCHERI(size); // replaced instead of mmap
|
||||
|
||||
return ret;
|
||||
|
||||
}
|
||||
|
||||
static bool
|
||||
pages_commit_impl(void *addr, size_t size, bool commit) {
|
||||
assert(PAGE_ADDR2BASE(addr) == addr);
|
||||
assert(PAGE_CEILING(size) == size);
|
||||
|
||||
...
|
||||
|
||||
void *result = MALLOCCHERI(size); // replaced instead of mmap
|
||||
if (result != addr) {
|
||||
/*
|
||||
* We succeeded in mapping memory, but not in the right
|
||||
* place.
|
||||
*/
|
||||
os_pages_unmap(result, size);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
static void
|
||||
os_pages_unmap(void *addr, size_t size) {
|
||||
assert(ALIGNMENT_ADDR2BASE(addr, os_page) == (vaddr_t)addr);
|
||||
assert(ALIGNMENT_CEILING(size, os_page) == size);
|
||||
|
||||
FREECHERI(addr);
|
||||
}
|
||||
101
docs/RISCV-FAT/Paper/jemalloc.org
Normal file
@@ -0,0 +1,101 @@
|
||||
* Malloc
|
||||
|
||||
Not needed:
|
||||
The provided pseudocode outlines a modified implementation
|
||||
of jemalloc’s memory mapping routines, adapted to work with
|
||||
a custom malloc(sz) allocator. Instead of relying on traditional
|
||||
operating system mechanisms like mmap, the memory allocation is
|
||||
handled using MALLOC(size)
|
||||
-> refer pseudo code implementation.
|
||||
|
||||
which refers to a simplified allocator
|
||||
defined earlier. This custom allocator manages a preallocated
|
||||
memory region, aligns the requested size, decrements a memory
|
||||
counter, and returns a pointer with enforced bounds for memory
|
||||
safety. This approach is especially suited for constrained or
|
||||
security-focused environments such as CHERI, where strict
|
||||
control over memory access and deterministic allocation
|
||||
behavior is essential.
|
||||
|
||||
The os_pages_map function simulates jemalloc’s low-level page
|
||||
mapping routine. It first checks if a specific address is
|
||||
requested in case relevant to CheriABI where such behavior
|
||||
is disallowed and returns NULL.
|
||||
|
||||
If memory overcommitment
|
||||
is allowed it forces the commit flag to true.
|
||||
It then allocates memory using the custom MALLOC(size) function and validates
|
||||
whether the returned pointer matches the requested address
|
||||
(if one was provided). If there’s a mismatch, it unmaps (i.e calling FREE() -> ref algorithm) the
|
||||
memory and returns NULL; otherwise, it returns the allocated
|
||||
pointer.
|
||||
|
||||
The pages_map function is a simplified variant that ignores
|
||||
alignment and address constraints. It directly allocates the
|
||||
requested memory size using the internal allocator and returns
|
||||
the result. This is appropriate in scenarios where alignment is
|
||||
either managed elsewhere or not critical.
|
||||
|
||||
This approach mentioned above is embeded inside jemallocs strategy of managing memory through arenas and size classes.
|
||||
In jemalloc, memory is divided into chunks, which are further subdivided into runs and regions to
|
||||
handle allocations of various sizes efficiently. By aligning sizes and managing allocations within
|
||||
predefined structures, jemalloc minimizes fragmentation (source: http://hydra.azilian.net/Papers/jemalloc.pdf)
|
||||
|
||||
Not needed:
|
||||
The pages_commit_impl function emulates memory commitment, a
|
||||
feature in systems that support lazy memory allocation. It
|
||||
reallocates memory using MALLOC(size) and checks whether
|
||||
the returned pointer matches the expected address. If not,
|
||||
it unmaps the memory and signals failure by returning true;
|
||||
otherwise, it indicates success by returning false.
|
||||
|
||||
Not needed:
|
||||
Collectively, these routines demonstrate how jemalloc can be
|
||||
adapted to operate atop a custom memory allocator instead of
|
||||
relying on the OS. This enables jemalloc to function in
|
||||
specialized environments that require stricter memory controls,
|
||||
such as embedded systems or capability-based architectures,
|
||||
while still maintaining its structure and allocation policies.
|
||||
|
||||
* Free
|
||||
The os_pages_unmap algorithm represents a customized abstraction of jemallocs
|
||||
memory unmapping routine, designed to integrate with the previously defined simplified
|
||||
free(ptr) implementation. In conventional jemalloc configurations, os_pages_unmap would
|
||||
invoke low-level system calls such as munmap to release virtual memory pages back to the
|
||||
operating system. However, in this adapted version, the function instead delegates the
|
||||
deallocation to a higher-level FREE(addr) -> Point to algorithm implementation
|
||||
|
||||
Not needed:
|
||||
routine, which encapsulates memory management
|
||||
within a user-defined allocator, rather than relying on direct interaction with the
|
||||
operating system.
|
||||
|
||||
The function begins by enforcing two invariants through assertions: first, that the input
|
||||
address addr is aligned to the operating system's page size (os_page), and second, that
|
||||
the size of the memory region is also a multiple of os_page. These alignment checks are
|
||||
critical for maintaining consistency with jemalloc’s internal page-based memory
|
||||
management semantics and ensuring compatibility with the allocator's expectations.
|
||||
|
||||
Following these checks, the memory at the specified address is deallocated via the
|
||||
FREE(addr) operation. As previously defined in the free(ptr) pseudocode, this involves
|
||||
retrieving the size of the allocated region through bounds metadata
|
||||
(reference section) and invoking an internal unmap routine to mark the region
|
||||
as available.
|
||||
|
||||
The following changes done to free is embedded inside jemallocs deallocation mechanism, where metadata associated with each allocation
|
||||
(such as size and location) is used to efficiently return memory to the appropriate arena or pool. jemalloc maintains
|
||||
separate metadata structures to track allocations, allowing for quick deallocation and reuse of memory blocks
|
||||
without significant overhead.
|
||||
|
||||
Not needed:
|
||||
This design enables jemalloc to operate seamlessly in environments where
|
||||
standard system-level memory operations are either restricted or abstracted away, such
|
||||
as in sandboxed, embedded, or capability-based systems like CHERI.
|
||||
|
||||
|
||||
Not needed:
|
||||
Overall, this approach demonstrates how jemalloc’s modular architecture can be extended
|
||||
to support alternative memory management strategies. By redirecting low-level memory
|
||||
operations to custom allocators, developers can adapt jemalloc to function effectively
|
||||
in constrained or security-critical execution contexts, without compromising on its
|
||||
underlying allocation model or safety guarantees.
|
||||
43
docs/RISCV-FAT/Paper/jemalloc.org~
Normal file
@@ -0,0 +1,43 @@
|
||||
The provided pseudocode outlines a modified implementation
|
||||
of jemalloc’s memory mapping routines, adapted to work with
|
||||
a custom malloc(sz) allocator. Instead of relying on traditional
|
||||
operating system mechanisms like mmap, the memory allocation is
|
||||
handled using MALLOC(size), which refers to a simplified allocator
|
||||
defined earlier. This custom allocator manages a preallocated
|
||||
memory region, aligns the requested size, decrements a memory
|
||||
counter, and returns a pointer with enforced bounds for memory
|
||||
safety. This approach is especially suited for constrained or
|
||||
security-focused environments such as CHERI, where strict
|
||||
control over memory access and deterministic allocation
|
||||
behavior is essential.
|
||||
|
||||
The os_pages_map function simulates jemalloc’s low-level page
|
||||
mapping routine. It first checks if a specific address is
|
||||
requested—a case relevant to CheriABI where such behavior
|
||||
is disallowed—and returns NULL if so. If memory overcommitment
|
||||
is allowed, it forces the commit flag to true. It then allocates
|
||||
memory using the custom MALLOC(size) function and validates
|
||||
whether the returned pointer matches the requested address
|
||||
(if one was provided). If there’s a mismatch, it unmaps the
|
||||
memory and returns NULL; otherwise, it returns the allocated
|
||||
pointer.
|
||||
|
||||
The pages_map function is a simplified variant that ignores
|
||||
alignment and address constraints. It directly allocates the
|
||||
requested memory size using the internal allocator and returns
|
||||
the result. This is appropriate in scenarios where alignment is
|
||||
either managed elsewhere or not critical.
|
||||
|
||||
The pages_commit_impl function emulates memory commitment, a
|
||||
feature in systems that support lazy memory allocation. It
|
||||
reallocates memory using MALLOC(size) and checks whether
|
||||
the returned pointer matches the expected address. If not,
|
||||
it unmaps the memory and signals failure by returning true;
|
||||
otherwise, it indicates success by returning false.
|
||||
|
||||
Collectively, these routines demonstrate how jemalloc can be
|
||||
adapted to operate atop a custom memory allocator instead of
|
||||
relying on the OS. This enables jemalloc to function in
|
||||
specialized environments that require stricter memory controls,
|
||||
such as embedded systems or capability-based architectures,
|
||||
while still maintaining its structure and allocation policies.
|
||||
15
docs/RISCV-FAT/Paper/paper.aux
Normal file
@@ -0,0 +1,15 @@
|
||||
\relax
|
||||
\providecommand\hyper@newdestlabel[2]{}
|
||||
\providecommand\HyField@AuxAddToFields[1]{}
|
||||
\providecommand\HyField@AuxAddToCoFields[2]{}
|
||||
\bibstyle{ACM-Reference-Format}
|
||||
\newlabel{tocindent-1}{0pt}
|
||||
\newlabel{tocindent0}{0pt}
|
||||
\newlabel{tocindent1}{4.185pt}
|
||||
\newlabel{tocindent2}{10.34999pt}
|
||||
\newlabel{tocindent3}{18.198pt}
|
||||
\newlabel{tocindent4}{0pt}
|
||||
\newlabel{tocindent5}{0pt}
|
||||
\@writefile{toc}{\contentsline {section}{Abstract}{1}{section*.1}\protected@file@percent }
|
||||
\newlabel{TotPages}{{1}{1}{}{page.1}{}}
|
||||
\gdef \@abspage@last{1}
|
||||
184
docs/RISCV-FAT/Paper/paper.bbl
Normal file
@@ -0,0 +1,184 @@
|
||||
\begin{thebibliography}{21}
|
||||
\providecommand{\natexlab}[1]{#1}
|
||||
\providecommand{\url}[1]{\texttt{#1}}
|
||||
\expandafter\ifx\csname urlstyle\endcsname\relax
|
||||
\providecommand{\doi}[1]{doi: #1}\else
|
||||
\providecommand{\doi}{doi: \begingroup \urlstyle{rm}\Url}\fi
|
||||
|
||||
\bibitem[Lustig et~al.(2013)Lustig, Bhattacharjee, and Martonosi]{TLBHierarchy}
|
||||
Daniel Lustig, Abhishek Bhattacharjee, and Margaret Martonosi.
|
||||
\newblock Tlb improvements for chip multiprocessors: Inter-core cooperative
|
||||
prefetchers and shared last-level tlbs.
|
||||
\newblock \emph{ACM Trans. Archit. Code Optim.}, 10\penalty0 (1), April 2013.
|
||||
\newblock ISSN 1544-3566.
|
||||
\newblock \doi{10.1145/2445572.2445574}.
|
||||
\newblock URL \url{https://doi.org/10.1145/2445572.2445574}.
|
||||
|
||||
\bibitem[Mittal()]{mittal_survey_2017}
|
||||
Sparsh Mittal.
|
||||
\newblock A survey of techniques for architecting {TLBs}.
|
||||
\newblock 29\penalty0 (10):\penalty0 e4061.
|
||||
\newblock ISSN 1532-0634.
|
||||
\newblock \doi{10.1002/cpe.4061}.
|
||||
\newblock URL \url{https://onlinelibrary.wiley.com/doi/abs/10.1002/cpe.4061}.
|
||||
\newblock \_eprint: https://onlinelibrary.wiley.com/doi/pdf/10.1002/cpe.4061.
|
||||
|
||||
\bibitem[Panwar et~al.()Panwar, Bansal, and Gopinath]{panwar_hawkeye_2019}
|
||||
Ashish Panwar, Sorav Bansal, and K.~Gopinath.
|
||||
\newblock {HawkEye}: Efficient fine-grained {OS} support for huge pages.
|
||||
\newblock In \emph{Proceedings of the Twenty-Fourth International Conference on
|
||||
Architectural Support for Programming Languages and Operating Systems}, pages
|
||||
347--360. {ACM}.
|
||||
\newblock ISBN 978-1-4503-6240-5.
|
||||
\newblock \doi{10.1145/3297858.3304064}.
|
||||
\newblock URL \url{https://dl.acm.org/doi/10.1145/3297858.3304064}.
|
||||
|
||||
\bibitem[Woodruff et~al.({\natexlab{a}})Woodruff, Watson, Chisnall, Moore,
|
||||
Anderson, Davis, Laurie, Neumann, Norton, and Roe]{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\penalty0 (3):\penalty0 457--468, {\natexlab{a}}.
|
||||
\newblock ISSN 0163-5964.
|
||||
\newblock \doi{10.1145/2678373.2665740}.
|
||||
\newblock URL \url{https://doi.org/10.1145/2678373.2665740}.
|
||||
|
||||
\bibitem[Woodruff et~al.({\natexlab{b}})Woodruff, Joannou, Xia, Fox, Norton,
|
||||
Chisnall, Davis, Gudka, Filardo, Markettos, Roe, Neumann, Watson, and
|
||||
Moore]{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\penalty0 (10):\penalty0 1455--1469, {\natexlab{b}}.
|
||||
\newblock ISSN 0018-9340, 1557-9956, 2326-3814.
|
||||
\newblock \doi{10.1109/TC.2019.2914037}.
|
||||
\newblock URL \url{https://ieeexplore.ieee.org/document/8703061/}.
|
||||
|
||||
\bibitem[Pham et~al.(2014)Pham, Bhattacharjee, Eckert, and Loh]{TLBReach}
|
||||
Binh Pham, Abhishek Bhattacharjee, Yasuko Eckert, and Gabriel~H. Loh.
|
||||
\newblock Increasing tlb reach by exploiting clustering in page translations.
|
||||
\newblock In \emph{2014 IEEE 20th International Symposium on High Performance
|
||||
Computer Architecture (HPCA)}, pages 558--567, 2014.
|
||||
\newblock \doi{10.1109/HPCA.2014.6835964}.
|
||||
|
||||
\bibitem[Navarro et~al.(2003)Navarro, Iyer, Druschel, and Cox]{THP}
|
||||
Juan Navarro, Sitararn Iyer, Peter Druschel, and Alan Cox.
|
||||
\newblock Practical, transparent operating system support for superpages.
|
||||
\newblock \emph{SIGOPS Oper. Syst. Rev.}, 36\penalty0 (SI):\penalty0 89–104,
|
||||
December 2003.
|
||||
\newblock ISSN 0163-5980.
|
||||
\newblock \doi{10.1145/844128.844138}.
|
||||
\newblock URL \url{https://doi.org/10.1145/844128.844138}.
|
||||
|
||||
\bibitem[Cornea et~al.(2003)Cornea, Harrison, and Tang]{IntelItanium}
|
||||
Marius Cornea, John Harrison, and Ping Tak~Peter Tang.
|
||||
\newblock Intel® itanium® floating-point architecture.
|
||||
\newblock In \emph{Proceedings of the 2003 Workshop on Computer Architecture
|
||||
Education: Held in Conjunction with the 30th International Symposium on
|
||||
Computer Architecture}, WCAE '03, page 3–es, New York, NY, USA, 2003.
|
||||
Association for Computing Machinery.
|
||||
\newblock ISBN 9781450347327.
|
||||
\newblock \doi{10.1145/1275521.1275526}.
|
||||
\newblock URL \url{https://doi.org/10.1145/1275521.1275526}.
|
||||
|
||||
\bibitem[Park and Park(2001)]{Shadow_superpages}
|
||||
Cheol~Ho Park and Daeyeon Park.
|
||||
\newblock Aggressive superpage support with the shadow memory and the
|
||||
partial-subblock tlb.
|
||||
\newblock \emph{Microprocessors and Microsystems}, 25\penalty0 (7):\penalty0
|
||||
329--342, 2001.
|
||||
\newblock ISSN 0141-9331.
|
||||
\newblock \doi{https://doi.org/10.1016/S0141-9331(01)00125-9}.
|
||||
\newblock URL
|
||||
\url{https://www.sciencedirect.com/science/article/pii/S0141933101001259}.
|
||||
|
||||
\bibitem[Basu et~al.(2013)Basu, Gandhi, Chang, Hill, and Swift]{DirectSegment}
|
||||
Arkaprava Basu, Jayneel Gandhi, Jichuan Chang, Mark~D. Hill, and Michael~M.
|
||||
Swift.
|
||||
\newblock Efficient virtual memory for big memory servers.
|
||||
\newblock \emph{SIGARCH Comput. Archit. News}, 41\penalty0 (3):\penalty0
|
||||
237–248, June 2013.
|
||||
\newblock ISSN 0163-5964.
|
||||
\newblock \doi{10.1145/2508148.2485943}.
|
||||
\newblock URL \url{https://doi.org/10.1145/2508148.2485943}.
|
||||
|
||||
\bibitem[Karakostas et~al.()Karakostas, Gandhi, Ayar, Cristal, Hill,
|
||||
{McKinley}, Nemirovsky, Swift, and Ünsal]{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 \emph{Proceedings of the 42nd Annual International Symposium on
|
||||
Computer Architecture}, pages 66--78. {ACM}.
|
||||
\newblock ISBN 978-1-4503-3402-0.
|
||||
\newblock \doi{10.1145/2749469.2749471}.
|
||||
\newblock URL \url{https://dl.acm.org/doi/10.1145/2749469.2749471}.
|
||||
|
||||
\bibitem[Chen et~al.(2023)Chen, Tong, Yang, Yi, and
|
||||
Cheng]{chen_flexpointer_2023}
|
||||
Dongwei Chen, Dong Tong, Chun Yang, Jiangfang Yi, and Xu~Cheng.
|
||||
\newblock Flexpointer: Fast address translation based on range tlb and tagged
|
||||
pointers.
|
||||
\newblock \emph{ACM Trans. Archit. Code Optim.}, 20\penalty0 (2), March 2023.
|
||||
\newblock ISSN 1544-3566.
|
||||
\newblock \doi{10.1145/3579854}.
|
||||
\newblock URL \url{https://doi.org/10.1145/3579854}.
|
||||
|
||||
\bibitem[Evans()]{evans_scalable_nodate}
|
||||
Jason Evans.
|
||||
\newblock A {Scalable} {Concurrent} malloc(3) {Implementation} for {FreeBSD}.
|
||||
|
||||
\bibitem[Evans(2006)]{jemalloc}
|
||||
Jason Evans.
|
||||
\newblock A scalable concurrent malloc (3) implementation for freebsd.
|
||||
\newblock In \emph{Proc. of the bsdcan conference, ottawa, canada}, 2006.
|
||||
|
||||
\bibitem[che()]{cheribsd}
|
||||
Benchmark {ABI} - {CheriBSD} 23.11 new features tutorial.
|
||||
\newblock URL
|
||||
\url{https://www.cheribsd.org/tutorial/23.11/benchmark/index.html}.
|
||||
|
||||
\bibitem[Ben()]{Benchmark}
|
||||
{CHERI}-allocator/benchmarks/benchmarks/{StressTestMalloc}/glibc-bench.c at
|
||||
main · akilan1999/{CHERI}-allocator.
|
||||
\newblock URL
|
||||
\url{https://github.com/Akilan1999/CHERI-Allocator/blob/main/benchmarks/benchmarks/StressTestMalloc/glibc-bench.c}.
|
||||
|
||||
\bibitem[Mor()]{Morello}
|
||||
Department of computer science and technology – {CHERI}: The arm morello
|
||||
board.
|
||||
\newblock URL
|
||||
\url{https://www.cl.cam.ac.uk/research/security/ctsrd/cheri/cheri-morello.html}.
|
||||
|
||||
\bibitem[Watson et~al.(2023)Watson, Clarke, Sewell, Woodruff, Moore, Barnes,
|
||||
Grisenthwaite, Stacer, Baranga, and Richardson]{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[Per()]{PerformanceCounter}
|
||||
Arm architecture reference manual for a-profile architecture.
|
||||
\newblock URL \url{https://developer.arm.com/documentation/ddi0487/latest}.
|
||||
|
||||
\bibitem[Singh(1993)]{singh1993}
|
||||
Jaswinder~Pal Singh.
|
||||
\newblock \emph{Parallel Hierarchical N-body Methods and Their Implications for
|
||||
Multiprocessors}.
|
||||
\newblock PhD thesis, Stanford University, February 1993.
|
||||
|
||||
\bibitem[Holt and Singh(1995)]{holt1995}
|
||||
C.~Holt and Jaswinder~Pal Singh.
|
||||
\newblock Hierarchical n-body methods on shared address space multiprocessors.
|
||||
\newblock In \emph{SIAM Conference on Parallel Processing for Scientific
|
||||
Computing}, February 1995.
|
||||
\newblock To appear.
|
||||
|
||||
\end{thebibliography}
|
||||
73
docs/RISCV-FAT/Paper/paper.blg
Normal file
@@ -0,0 +1,73 @@
|
||||
This is BibTeX, Version 0.99d (TeX Live 2025)
|
||||
Capacity: max_strings=200000, hash_size=200000, hash_prime=170003
|
||||
The top-level auxiliary file: paper.aux
|
||||
The style file: unsrtnat.bst
|
||||
Database file #1: paperReferences.bib
|
||||
Warning--entry type for "cheribsd" isn't style-file defined
|
||||
--line 516 of file paperReferences.bib
|
||||
Warning--entry type for "Benchmark" isn't style-file defined
|
||||
--line 545 of file paperReferences.bib
|
||||
Warning--entry type for "Morello" isn't style-file defined
|
||||
--line 552 of file paperReferences.bib
|
||||
Warning--entry type for "PerformanceCounter" isn't style-file defined
|
||||
--line 559 of file paperReferences.bib
|
||||
Warning--empty journal in mittal_survey_2017
|
||||
Warning--empty year in mittal_survey_2017
|
||||
Warning--empty year in mittal_survey_2017
|
||||
Warning--empty year in panwar_hawkeye_2019
|
||||
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 year in karakostas_redundant_2015
|
||||
Warning--empty year in karakostas_redundant_2015
|
||||
Warning--empty journal in evans_scalable_nodate
|
||||
Warning--empty year in evans_scalable_nodate
|
||||
Warning--empty year in evans_scalable_nodate
|
||||
Warning--empty year in cheribsd
|
||||
Warning--empty year in Benchmark
|
||||
Warning--empty year in Morello
|
||||
Warning--empty year in PerformanceCounter
|
||||
You've used 21 entries,
|
||||
2481 wiz_defined-function locations,
|
||||
702 strings with 9994 characters,
|
||||
and the built_in function-call counts, 8880 in all, are:
|
||||
= -- 740
|
||||
> -- 511
|
||||
< -- 11
|
||||
+ -- 199
|
||||
- -- 156
|
||||
* -- 757
|
||||
:= -- 1413
|
||||
add.period$ -- 97
|
||||
call.type$ -- 21
|
||||
change.case$ -- 41
|
||||
chr.to.int$ -- 20
|
||||
cite$ -- 43
|
||||
duplicate$ -- 424
|
||||
empty$ -- 756
|
||||
format.name$ -- 177
|
||||
if$ -- 1887
|
||||
int.to.chr$ -- 2
|
||||
int.to.str$ -- 22
|
||||
missing$ -- 15
|
||||
newline$ -- 144
|
||||
num.names$ -- 51
|
||||
pop$ -- 186
|
||||
preamble$ -- 1
|
||||
purify$ -- 21
|
||||
quote$ -- 0
|
||||
skip$ -- 259
|
||||
stack$ -- 0
|
||||
substring$ -- 285
|
||||
swap$ -- 90
|
||||
text.length$ -- 5
|
||||
text.prefix$ -- 0
|
||||
top$ -- 0
|
||||
type$ -- 147
|
||||
warning$ -- 18
|
||||
while$ -- 51
|
||||
width$ -- 0
|
||||
write$ -- 330
|
||||
(There were 22 warnings)
|
||||
153
docs/RISCV-FAT/Paper/paper.fdb_latexmk
Normal file
@@ -0,0 +1,153 @@
|
||||
# Fdb version 4
|
||||
["pdflatex"] 1749744735.41877 "paper.tex" "paper.pdf" "paper" 1749744736.47867 0
|
||||
"/usr/local/texlive/2025/texmf-dist/fonts/enc/dvips/libertine/lbtn_76gpa5.enc" 1490131464 2933 9ad527ce78d7c5fa0a642dead095f172 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/fonts/enc/dvips/libertine/lbtn_nh77jq.enc" 1490131464 2933 8d808fcabf70c6c809bb14c283ece4da ""
|
||||
"/usr/local/texlive/2025/texmf-dist/fonts/map/fontname/texfonts.map" 1577235249 3524 cb3e574dea2d1052e39280babc910dc8 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/jknappen/ec/ecrm1000.tfm" 1136768653 3584 adb004a0c8e7c46ee66cad73671f37b4 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam10.tfm" 1246382020 916 f87d7c45f9c908e672703b83b72241a3 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam5.tfm" 1246382020 924 9904cf1d39e9767e7a3622f2a125a565 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam7.tfm" 1246382020 928 2dc8d444221b7a635bb58038579b861a ""
|
||||
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm10.tfm" 1246382020 908 2921f8a10601f252058503cc6570e581 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm5.tfm" 1246382020 940 75ac932a52f80982a9f8ea75d03a34cf ""
|
||||
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm7.tfm" 1246382020 940 228d6584342e91276bf566bcf9716b83 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-ot1.tfm" 1490131464 5612 e018d44ec5e7a3b3574b3a9598e8e279 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-t1--base.tfm" 1490131464 1740 2943dd2ba1dcd3849599663c1d2693ef ""
|
||||
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-t1.tfm" 1490131464 19504 bdf9fb416f5a91bf56b1ccda887f5b91 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/libertine/LinLibertineTB-tlf-t1--base.tfm" 1490131464 1724 248b3a23a2f748bd3089e9d3118d991e ""
|
||||
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/libertine/LinLibertineTB-tlf-t1.tfm" 1490131464 19488 f569478ca339d9b5ad93b46bf7a470e2 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/newtx/ntxexa.tfm" 1589834365 760 e8ec875a87aa119f1af7ea4be48da9e8 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/newtx/ntxexx.tfm" 1699567298 1788 252bc928adbd02cba8c68f0fccd62f6c ""
|
||||
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/newtx/ntxsy5.tfm" 1724614892 2032 f45c629943b6f098ea13e1db6040dab0 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/newtx/ntxsy7.tfm" 1724614892 2000 c8518036fe884fa294a1eeb2da3075ed ""
|
||||
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/newtx/ntxsyc.tfm" 1589834365 1028 2f6cbe812325cff65b38e4c0a517f4cb ""
|
||||
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/newtx/ntxsym.tfm" 1693080977 1560 755acbe6da75f914298c79fa8bb324fd ""
|
||||
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/newtx/nxlmi5.tfm" 1569879884 3308 547f06fb56819535c1e0ce385c4f647b ""
|
||||
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/newtx/nxlmi7.tfm" 1575323900 3320 6cf9c990505795806c1f3ac537f356c3 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/newtx/nxlmia.tfm" 1617586172 2616 0bf54bdee01e38e3ed8342d25e5584f6 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/fonts/type1/public/libertine/LinLibertineT.pfb" 1354061736 614791 ea39341e4db76f25cb20c361802d3cd5 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/fonts/type1/public/libertine/LinLibertineTB.pfb" 1354061736 538965 19c5c8b7f952ac97afb8565e9c21a82d ""
|
||||
"/usr/local/texlive/2025/texmf-dist/fonts/vf/public/libertine/LinLibertineT-tlf-t1.vf" 1354061736 1728 b078a050f24d7649619baa987d7216d8 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/fonts/vf/public/libertine/LinLibertineTB-tlf-t1.vf" 1490131464 1768 5d66dfd9709f1f38b8fb3cb38db46402 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/context/base/mkii/supp-pdf.mkii" 1461363279 71627 94eb9990bed73c364d7f53f960cc8c5b ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/generic/atbegshi/atbegshi.sty" 1575674566 24708 5584a51a7101caf7e6bbf1fc27d8f7b1 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty" 1576625341 40635 c40361e206be584d448876bba8a64a3b ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/generic/bitset/bitset.sty" 1576016050 33961 6b5c75130e435b2bfdb9f480a09a39f9 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty" 1576625223 8371 9d55b8bd010bc717624922fb3477d92e ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/generic/iftex/ifluatex.sty" 1572645307 492 1994775aa15b0d1289725a0b1bbc2d4c ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/generic/iftex/iftex.sty" 1734129479 7984 7dbb9280f03c0a315425f1b4f35d43ee ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/generic/iftex/ifvtex.sty" 1572645307 1057 525c2192b5febbd8c1f662c9468335bb ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/generic/iftex/ifxetex.sty" 1572645307 488 4565444a3e75e59cb2702dc42e18f482 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/generic/infwarerr/infwarerr.sty" 1575499628 8356 7bbb2c2373aa810be568c29e333da8ed ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/generic/intcalc/intcalc.sty" 1576625065 31769 002a487f55041f8e805cfbf6385ffd97 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/generic/kastrup/binhex.tex" 1215376579 2553 4b99aa9667b708dd355926023d705446 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty" 1576878844 5412 d5a2436094cd7be85769db90f29250a6 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty" 1701727651 17865 1a9bd36b4f98178fa551aca822290953 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/generic/pdfescape/pdfescape.sty" 1576015897 19007 15924f7228aca6c6d184b115f4baa231 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/generic/pdftex/glyphtounicode.tex" 1353199370 216747 92ec6cf8e39216b4894417b5aa6f057a ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty" 1593379760 20089 80423eac55aa175305d35b49e04fe23b ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/generic/stringenc/se-pdfdoc.def" 1575152242 5108 8920602307ea1294ccbce2300c7c6ccb ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/generic/stringenc/se-utf8.def" 1575152242 11635 4fd2019d04ad095a0b1bde5aaed4a70e ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/generic/stringenc/stringenc.sty" 1575152242 21514 b7557edcee22835ef6b03ede1802dad4 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty" 1576624663 7008 f92eaa0a3872ed622bbf538217cd2ab7 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/generic/xkeyval/keyval.tex" 1655411236 2725 1a42bd9e7e57e25fc7763c445f4b785b ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/generic/xkeyval/xkeyval.tex" 1655411236 19231 27205ee17aaa2902aea3e0c07a3cfc65 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/generic/xkeyval/xkvutils.tex" 1655411236 7677 9cb1a74d945bc9331f2181c0a59ff34a ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/generic/xstring/xstring.sty" 1544223003 123 a302f2c651a95033260db60e51527ae8 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/generic/xstring/xstring.tex" 1692744296 49397 a8071cbd06dd0bb15ae8acf876c73f20 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/acmart/acmart.cls" 1735764768 119755 fb6b15d8a2b05651c52a19a84ffb7b05 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/amscls/amsart.cls" 1591045760 61881 a7369c346c2922a758ae6283cc1ed014 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/amsfonts/amsfonts.sty" 1359763108 5949 3f3fd50a8cc94c3d4cbf4fc66cd3df1c ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/amsfonts/umsa.fd" 1359763108 961 6518c6525a34feb5e8250ffa91731cff ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/amsfonts/umsb.fd" 1359763108 961 d02606146ba5601b5645f987c92e6193 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/amsmath/amsbsy.sty" 1717359999 2222 2166a1f7827be30ddc30434e5efcee1b ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/amsmath/amsgen.sty" 1717359999 4173 d22509bc0c91281d991b2de7c88720dd ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/amsmath/amsmath.sty" 1730928152 88370 c780f23aea0ece6add91e09b44dca2cd ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/amsmath/amsopn.sty" 1717359999 4474 23ca1d3a79a57b405388059456d0a8df ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/amsmath/amstext.sty" 1717359999 2444 71618ea5f2377e33b04fb97afdd0eac2 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/atveryend/atveryend.sty" 1728505250 1695 be6b4d13b33db697fd3fd30b24716c1a ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/base/atbegshi-ltx.sty" 1738182759 2963 d8ec5a1b4e0a106c5c737900202763e4 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/base/atveryend-ltx.sty" 1738182759 2378 14b657ee5031da98cf91648f19642694 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/base/fontenc.sty" 1738182759 5275 0d62fb62162c7ab056e941ef18c5076d ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/base/ifthen.sty" 1738182759 5525 9dced5929f36b19fa837947f5175b331 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/base/textcomp.sty" 1738182759 2846 e26604d3d895e65d874c07f30c291f3f ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/booktabs/booktabs.sty" 1579038678 6078 f1cb470c9199e7110a27851508ed7a5c ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/caption/caption-ams-smf.sto" 1645391520 2176 c0bb71a9780b6b41388cfa629b1a32f7 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/caption/caption.sty" 1696191071 56128 c2ccf1a29d78c33bc553880402e4fb9a ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/caption/caption3.sty" 1696191071 72619 ee90b6612147680fd73c3b1406a74245 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/cmap/cmap.sty" 1612650595 3574 ddc11a0ae1c579d351ed20d2319ad422 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/cmap/ot1.cmap" 1177721415 1207 4e0d96772f0d338847cbfb4eca683c81 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/cmap/t1.cmap" 1215522782 1938 beaa4a8467aa0074076e0e19f2992e29 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/comment/comment.sty" 1472166125 10197 204f75d5d8d88aa345a8c402e879e63b ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/environ/environ.sty" 1399239813 4378 f429f0da968c278653359293040a8f52 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty" 1579991033 13886 d1306dcf79a944f6988e688c1785f9ce ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/etoolbox/etoolbox.sty" 1739306980 46850 d87daedc2abdc653769a6f1067849fe0 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/everyshi/everyshi.sty" 1606256234 2368 ef01f98551a0f54407358b67f8a6c5e1 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty" 1739048179 31715 19e60610b63819fe670dfa1cd84a4e94 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/float/float.sty" 1137110151 6749 16d2656a1984957e674b149555f1ea1d ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/fontaxes/fontaxes.sty" 1595539507 14310 41fdb35c51be792ddf00696848d0cfef ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/geometry/geometry.sty" 1578002852 41601 9cf6c5257b1bc7af01a58859749dd37a ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/graphics-cfg/color.cfg" 1459978653 1213 620bba36b25224fa9b7e1ccb4ecb76fd ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/graphics-cfg/graphics.cfg" 1465944070 1224 978390e9c2234eab29404bc21b268d1e ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/graphics-def/pdftex.def" 1713382759 19440 9da9dcbb27470349a580fca7372d454b ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/graphics/graphics.sty" 1730496337 18363 dee506cb8d56825d8a4d020f5d5f8704 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/graphics/graphicx.sty" 1717359999 8010 6f2ad8c2b2ffbd607af6475441c7b5e4 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/graphics/keyval.sty" 1717359999 2671 70891d50dac933918b827d326687c6e8 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/graphics/mathcolor.ltx" 1667332637 2885 9c645d672ae17285bba324998918efd8 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/graphics/trig.sty" 1717359999 4023 2c9f39712cf7b43d3eb93a8bbd5c8f67 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/hycolor/hycolor.sty" 1580250785 17914 4c28a13fc3d975e6e81c9bea1d697276 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/hyperref/hpdftex.def" 1730838014 48154 82da9991b9f0390b3a9d3af6c8618af4 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/hyperref/hyperref.sty" 1730838014 222112 c22dbd2288f89f7ba942ac22f7d00f11 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/hyperref/nameref.sty" 1705871765 11026 182c63f139a71afd30a28e5f1ed2cd1c ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/hyperref/pd1enc.def" 1730838014 14249 ff700eb13ce975a424b2dd99b1a83044 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/hyperref/puenc.def" 1730838014 117112 7533bff456301d32e6d6356fad15f543 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/hyperxmp/hyperxmp.sty" 1710792253 62205 a7f89f92229cfedbace009eb0e06c099 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/ifmtarg/ifmtarg.sty" 1525197427 318 019510c713feab56160631df4423d2aa ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/inconsolata/zi4.sty" 1558214095 4319 14e5db0b68d045ed49e4ed232b58e93f ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/kvoptions/kvoptions.sty" 1655478651 22555 6d8e155cfef6d82c3d5c742fea7c992e ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty" 1665067230 13815 760b0c02f691ea230f5359c4e1de23a7 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def" 1716410060 29785 9f93ab201fe5dd053afcc6c1bcf7d266 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg" 1279039959 678 4792914a8f45be57bb98413425e4c7af ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/libertine/LinLibertine_I.tex" 1355443847 24957 22a8dc56372173d7ffa65753dfc6757e ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/libertine/OT1LinuxLibertineT-TLF.fd" 1490131464 3019 024cbcf380053dddffd4ac0b44aac808 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/libertine/T1LinuxLibertineT-TLF.fd" 1490131464 2980 15412b63bb0119ade194e089fff355d4 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/libertine/libertine.sty" 1713989903 19358 ca0f9b5016a74813fc4f6c85c48d3d5b ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/microtype/microtype-pdftex.def" 1739394495 49650 26a5e891c8da4553198575ba0517c0e5 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/microtype/microtype.cfg" 1739394495 27015 bd167d0154f271c424b157d8894ae4a4 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/microtype/microtype.sty" 1739394495 102775 6624742dafeb6f262a13657f9f77f048 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/mmap/oml.cmap" 1215649417 1866 c1c12138091b4a8edd4a24a940e6f792 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/mweights/mweights.sty" 1490909540 4953 67f29a12ea26221103fce6bae3433e60 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/natbib/natbib.sty" 1291685959 45456 1c8843383c0bd05870c45fa0ebea6cc2 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/ncctools/manyfoot.sty" 1564869456 12626 1a53db73f820034b2ec9e401e205b159 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/ncctools/nccfoots.sty" 1137110429 1189 756b2502150ce6dc2179faebbd40e701 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/newtx/lmsntxsy.fd" 1634244313 1140 ee5963b0c88b5c4f92fed61a27034b79 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/newtx/lmxntxexx.fd" 1471383769 549 70a2497c311fc8b19acb02f7607eb4e9 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/newtx/newtxmath.sty" 1727126309 141084 0a94ecd3ff47caf25c908eb85183555f ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/newtx/omlnxlmi.fd" 1387148426 3537 d34ce3dbfa1b807fe48744508a5473e9 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/newtx/untxexa.fd" 1376004569 558 91031960917530f42e0f8fc4d1db1550 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/newtx/untxmia.fd" 1718914330 4181 343926c9f03f7dd5c88e425dd9f47b91 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/newtx/untxsyc.fd" 1376004569 558 e8967b9c8273bc0c05b993fe92a9b757 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/newtx/untxsym.fd" 1692649180 568 9df6be53c1b3ec79740d714ff4ae0937 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/oberdiek/centernot.sty" 1575152444 1640 c9cca60f81c5839b9a3e794d72c0b0a7 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/oberdiek/ifdraft.sty" 1575152444 1922 5bdcc31b0573e5e7f31c36f1b88b6a7d ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/preprint/balance.sty" 1137110595 3366 d938ad2440edc1ea1c9042843580ec42 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/refcount/refcount.sty" 1576624809 9878 9e94e8fa600d95f9c7731bb21dfb67a4 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty" 1657483315 9714 ba3194bd52c8499b3f1e3eb91d409670 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/totpages/totpages.sty" 1137110984 7670 b07e668265cf485332abe582e7ed306e ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/trimspaces/trimspaces.sty" 1253232110 1380 971a51b00a14503ddf754cab24c3f209 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/upquote/upquote.sty" 1334873510 1048 517e01cde97c1c0baf72e69d43aa5a2e ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/url/url.sty" 1388531844 12796 8edb7d69a20b857904dd0ea757c14ec9 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/xcolor/xcolor.sty" 1727642399 55384 b454dec21c2d9f45ec0b793f0995b992 ""
|
||||
"/usr/local/texlive/2025/texmf-dist/tex/latex/xkeyval/xkeyval.sty" 1655411236 4937 4ce600ce9bd4ec84d0250eb6892fcf4f ""
|
||||
"/usr/local/texlive/2025/texmf-dist/web2c/texmf.cnf" 1739380943 42148 61becc7c670cd061bb319c643c27fdd4 ""
|
||||
"/usr/local/texlive/2025/texmf-var/fonts/map/pdftex/updmap/pdftex.map" 1743605858 5467155 19efa205003f9ecad95fbbaa6ff24da1 ""
|
||||
"/usr/local/texlive/2025/texmf-var/web2c/pdftex/pdflatex.fmt" 1743605772 3345731 9f70a6727154d056b4116903856deae2 ""
|
||||
"/usr/local/texlive/2025/texmf.cnf" 1741450484 577 418a7058ec8e006d8704f60ecd22c938 ""
|
||||
"paper.aux" 1749744736.37169 531 ccca7d2a1dc3eb97f8dd80a8c4cc5bba "pdflatex"
|
||||
"paper.out" 1749744736.37206 84 6adfe73bf24296253212a8009ab0b473 "pdflatex"
|
||||
"paper.tex" 1749744730.73781 519 54363fd0602d7864b4182098eb4eaf34 ""
|
||||
(generated)
|
||||
"paper.aux"
|
||||
"paper.log"
|
||||
"paper.out"
|
||||
"paper.pdf"
|
||||
(rewritten before read)
|
||||
329
docs/RISCV-FAT/Paper/paper.fls
Normal file
@@ -0,0 +1,329 @@
|
||||
PWD /Users/akilan/Documents/Cheri/Test/Reverse/CHERI-Allocator/docs/RISCV-FAT/Paper
|
||||
INPUT /usr/local/texlive/2025/texmf.cnf
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/web2c/texmf.cnf
|
||||
INPUT /usr/local/texlive/2025/texmf-var/web2c/pdftex/pdflatex.fmt
|
||||
INPUT paper.tex
|
||||
OUTPUT paper.log
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/acmart/acmart.cls
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/acmart/acmart.cls
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/xkeyval/xkeyval.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/xkeyval/xkeyval.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/xkeyval/xkeyval.tex
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/xkeyval/xkvutils.tex
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/xkeyval/keyval.tex
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/xstring/xstring.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/xstring/xstring.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/xstring/xstring.tex
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/iftex/iftex.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/iftex/iftex.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/amscls/amsart.cls
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/amscls/amsart.cls
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/amsmath/amsmath.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/amsmath/amsmath.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/amsmath/amsopn.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/amsmath/amstext.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/amsmath/amstext.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/amsmath/amsgen.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/amsmath/amsgen.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/amsmath/amsbsy.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/amsmath/amsbsy.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/amsmath/amsopn.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/amsfonts/umsa.fd
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/amsfonts/umsa.fd
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/amsfonts/umsa.fd
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/amsfonts/amsfonts.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/amsfonts/amsfonts.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/microtype/microtype.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/microtype/microtype.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/graphics/keyval.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/etoolbox/etoolbox.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/etoolbox/etoolbox.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/microtype/microtype-pdftex.def
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/microtype/microtype-pdftex.def
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/microtype/microtype-pdftex.def
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/microtype/microtype.cfg
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/microtype/microtype.cfg
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/microtype/microtype.cfg
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/booktabs/booktabs.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/booktabs/booktabs.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/refcount/refcount.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/refcount/refcount.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/infwarerr/infwarerr.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/infwarerr/infwarerr.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/totpages/totpages.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/totpages/totpages.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/everyshi/everyshi.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/everyshi/everyshi.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/environ/environ.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/environ/environ.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/trimspaces/trimspaces.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/trimspaces/trimspaces.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/natbib/natbib.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/natbib/natbib.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/hyperref/hyperref.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/hyperref/hyperref.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/pdfescape/pdfescape.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/pdfescape/pdfescape.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/hycolor/hycolor.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/hycolor/hycolor.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/hyperref/nameref.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/hyperref/nameref.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/kvoptions/kvoptions.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/kvoptions/kvoptions.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/stringenc/stringenc.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/stringenc/stringenc.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/hyperref/pd1enc.def
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/hyperref/pd1enc.def
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/hyperref/pd1enc.def
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/intcalc/intcalc.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/intcalc/intcalc.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/hyperref/puenc.def
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/hyperref/puenc.def
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/hyperref/puenc.def
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/url/url.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/url/url.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/bitset/bitset.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/bitset/bitset.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/atbegshi/atbegshi.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/base/atbegshi-ltx.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/base/atbegshi-ltx.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/hyperref/hpdftex.def
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/hyperref/hpdftex.def
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/hyperref/hpdftex.def
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/atveryend/atveryend.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/base/atveryend-ltx.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/base/atveryend-ltx.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/hyperxmp/hyperxmp.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/hyperxmp/hyperxmp.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/ifmtarg/ifmtarg.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/ifmtarg/ifmtarg.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/base/ifthen.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/base/ifthen.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/oberdiek/ifdraft.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/oberdiek/ifdraft.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/iftex/ifluatex.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/iftex/ifluatex.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/graphics/graphicx.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/graphics/graphicx.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/graphics/graphics.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/graphics/graphics.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/graphics/trig.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/graphics/trig.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/graphics-cfg/graphics.cfg
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/graphics-cfg/graphics.cfg
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/graphics-cfg/graphics.cfg
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/graphics-def/pdftex.def
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/graphics-def/pdftex.def
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/graphics-def/pdftex.def
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/xcolor/xcolor.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/xcolor/xcolor.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/graphics-cfg/color.cfg
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/graphics-cfg/color.cfg
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/graphics-cfg/color.cfg
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/graphics/mathcolor.ltx
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/graphics/mathcolor.ltx
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/graphics/mathcolor.ltx
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/geometry/geometry.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/geometry/geometry.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/iftex/ifvtex.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/iftex/ifvtex.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/ncctools/manyfoot.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/ncctools/manyfoot.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/ncctools/nccfoots.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/ncctools/nccfoots.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/pdftex/glyphtounicode.tex
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/pdftex/glyphtounicode.tex
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/pdftex/glyphtounicode.tex
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/pdftex/glyphtounicode.tex
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/pdftex/glyphtounicode.tex
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/cmap/cmap.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/cmap/cmap.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/libertine/libertine.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/libertine/libertine.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/inconsolata/zi4.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/inconsolata/zi4.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/newtx/newtxmath.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/newtx/newtxmath.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/base/fontenc.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/base/fontenc.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/fonts/map/fontname/texfonts.map
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/jknappen/ec/ecrm1000.tfm
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/cmap/t1.cmap
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/cmap/t1.cmap
|
||||
OUTPUT paper.pdf
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/cmap/t1.cmap
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/libertine/libertine.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/iftex/ifxetex.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/iftex/ifxetex.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/base/textcomp.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/base/textcomp.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/mweights/mweights.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/base/fontenc.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/fontaxes/fontaxes.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/fontaxes/fontaxes.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/libertine/LinLibertine_I.tex
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/libertine/LinLibertine_I.tex
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/libertine/LinLibertine_I.tex
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/libertine/LinLibertine_I.tex
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/libertine/LinLibertine_I.tex
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/inconsolata/zi4.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/newtx/newtxmath.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/oberdiek/centernot.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/oberdiek/centernot.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/kastrup/binhex.tex
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/kastrup/binhex.tex
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/kastrup/binhex.tex
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/kastrup/binhex.tex
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/kastrup/binhex.tex
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/caption/caption.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/caption/caption.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/caption/caption3.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/caption/caption3.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/caption/caption-ams-smf.sto
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/caption/caption-ams-smf.sto
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/caption/caption-ams-smf.sto
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/float/float.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/float/float.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/comment/comment.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/comment/comment.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/libertine/T1LinuxLibertineT-TLF.fd
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/libertine/T1LinuxLibertineT-TLF.fd
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/libertine/T1LinuxLibertineT-TLF.fd
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-t1.tfm
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/preprint/balance.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/preprint/balance.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
|
||||
INPUT ./paper.aux
|
||||
INPUT ./paper.aux
|
||||
INPUT paper.aux
|
||||
OUTPUT paper.aux
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/newtx/omlnxlmi.fd
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/newtx/omlnxlmi.fd
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/newtx/omlnxlmi.fd
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/newtx/untxexa.fd
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/newtx/untxexa.fd
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/newtx/untxexa.fd
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/newtx/lmsntxsy.fd
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/newtx/lmsntxsy.fd
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/newtx/lmsntxsy.fd
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/newtx/lmxntxexx.fd
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/newtx/lmxntxexx.fd
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/newtx/lmxntxexx.fd
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-t1.tfm
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/libertine/OT1LinuxLibertineT-TLF.fd
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/libertine/OT1LinuxLibertineT-TLF.fd
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/libertine/OT1LinuxLibertineT-TLF.fd
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-ot1.tfm
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/cmap/ot1.cmap
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/cmap/ot1.cmap
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/cmap/ot1.cmap
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-ot1.tfm
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-ot1.tfm
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/public/newtx/nxlmi7.tfm
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/mmap/oml.cmap
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/mmap/oml.cmap
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/mmap/oml.cmap
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/public/newtx/nxlmi5.tfm
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/public/newtx/nxlmi5.tfm
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/public/newtx/ntxsy7.tfm
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/public/newtx/ntxsy5.tfm
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/public/newtx/ntxsy5.tfm
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/public/newtx/ntxexx.tfm
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/public/newtx/ntxexx.tfm
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/public/newtx/ntxexx.tfm
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/amsfonts/umsa.fd
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/amsfonts/umsa.fd
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/amsfonts/umsa.fd
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam10.tfm
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam7.tfm
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam5.tfm
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/amsfonts/umsb.fd
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/amsfonts/umsb.fd
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/amsfonts/umsb.fd
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm10.tfm
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm7.tfm
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm5.tfm
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/newtx/untxmia.fd
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/newtx/untxmia.fd
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/newtx/untxmia.fd
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/public/newtx/nxlmia.tfm
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/public/newtx/nxlmia.tfm
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/public/newtx/nxlmia.tfm
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/newtx/untxsym.fd
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/newtx/untxsym.fd
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/newtx/untxsym.fd
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/public/newtx/ntxsym.tfm
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/public/newtx/ntxsym.tfm
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/public/newtx/ntxsym.tfm
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/newtx/untxsyc.fd
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/newtx/untxsyc.fd
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/newtx/untxsyc.fd
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/public/newtx/ntxsyc.tfm
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/public/newtx/ntxsyc.tfm
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/public/newtx/ntxsyc.tfm
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/public/newtx/ntxexa.tfm
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/public/newtx/ntxexa.tfm
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/public/newtx/ntxexa.tfm
|
||||
INPUT ./paper.out
|
||||
INPUT ./paper.out
|
||||
INPUT paper.out
|
||||
INPUT paper.out
|
||||
INPUT ./paper.out
|
||||
INPUT ./paper.out
|
||||
OUTPUT paper.out
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/upquote/upquote.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/upquote/upquote.sty
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-t1.tfm
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/public/libertine/LinLibertineTB-tlf-t1.tfm
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-t1.tfm
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/public/libertine/LinLibertineTB-tlf-t1.tfm
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/public/libertine/LinLibertineTB-tlf-t1.tfm
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/stringenc/se-pdfdoc.def
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/stringenc/se-pdfdoc.def
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/stringenc/se-pdfdoc.def
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/stringenc/se-utf8.def
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/stringenc/se-utf8.def
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/stringenc/se-utf8.def
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/fonts/vf/public/libertine/LinLibertineTB-tlf-t1.vf
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/public/libertine/LinLibertineTB-tlf-t1--base.tfm
|
||||
INPUT /usr/local/texlive/2025/texmf-var/fonts/map/pdftex/updmap/pdftex.map
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/fonts/enc/dvips/libertine/lbtn_nh77jq.enc
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/fonts/vf/public/libertine/LinLibertineTB-tlf-t1.vf
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/public/libertine/LinLibertineTB-tlf-t1--base.tfm
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/fonts/vf/public/libertine/LinLibertineT-tlf-t1.vf
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-t1--base.tfm
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/fonts/enc/dvips/libertine/lbtn_76gpa5.enc
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/fonts/vf/public/libertine/LinLibertineT-tlf-t1.vf
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-t1--base.tfm
|
||||
INPUT paper.aux
|
||||
INPUT ./paper.out
|
||||
INPUT ./paper.out
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/fonts/type1/public/libertine/LinLibertineT.pfb
|
||||
INPUT /usr/local/texlive/2025/texmf-dist/fonts/type1/public/libertine/LinLibertineTB.pfb
|
||||
1011
docs/RISCV-FAT/Paper/paper.log
Normal file
BIN
docs/RISCV-FAT/Paper/paper.pdf
Normal file
31
docs/RISCV-FAT/Paper/paper.tex
Normal file
@@ -0,0 +1,31 @@
|
||||
% use the base acmart.cls
|
||||
% use the sigplan proceeding template with the default 10 pt fonts
|
||||
% nonacm option removes ACM related text in the submission.
|
||||
\documentclass[sigplan,nonacm]{acmart}
|
||||
|
||||
|
||||
% enable page numbers
|
||||
\settopmatter{printfolios=true}
|
||||
|
||||
|
||||
\begin{document}
|
||||
\title{FAT allocator}
|
||||
|
||||
|
||||
\begin{abstract}
|
||||
...
|
||||
\end{abstract}
|
||||
|
||||
|
||||
\maketitle % should come after the abstract
|
||||
|
||||
|
||||
% add the paper content here
|
||||
|
||||
|
||||
% use the ACM bibliography style
|
||||
\bibliographystyle{ACM-Reference-Format}
|
||||
% \bibliography{...}
|
||||
|
||||
|
||||
\end{document}
|
||||
655
docs/RISCV-FAT/Paper/paper.txt
Normal file
@@ -0,0 +1,655 @@
|
||||
---
|
||||
abstract: |
|
||||
The increasing gap between workload memory requirements and the
|
||||
capacity of translation lookaside buffers (TLBs) means TLB misses are
|
||||
more frequency, costing additional clock cycles, impacting runtime
|
||||
performance. One solution is to use physically contiguous memory in
|
||||
conjunction with huge pages. We propose an alternative approach, by
|
||||
exploiting capability-based addressing in the CHERI architecture. This
|
||||
paper presents a new memory allocator. It associates capabilities with
|
||||
memory pointers. integrating block-based allocations within huge
|
||||
pages. Our allocator reduces TLB misses by up to 90%, which leads to
|
||||
reduced runtimes for memory-intensive applications.
|
||||
author:
|
||||
- Akilan Selvacoumar
|
||||
bibliography:
|
||||
- paperReferences.bib
|
||||
title: Fat Address Translations
|
||||
---
|
||||
|
||||
# Introduction
|
||||
|
||||
In computing, achieving high performance is an ongoing challenge,
|
||||
especially as applications handle increasingly complex workloads. Memory
|
||||
management is a key factor in performance, where efficient use of
|
||||
resources is essential. Translation Lookaside Buffers (TLBs) are crucial
|
||||
in this context, speeding up memory access by caching recent memory
|
||||
address translations. A TLB, a specialised cache in the memory
|
||||
management unit (MMU), reduces the time required to convert virtual
|
||||
addresses to physical ones. When a program accesses data in memory, the
|
||||
MMU first checks the TLB for a matching entry, avoiding the slower
|
||||
process of consulting page tables. However, as applications grow larger
|
||||
and more complex, the fixed size of TLBs often cannot keep up, leading
|
||||
to more TLB misses and performance slowdowns [@mittal_survey_2017]. To
|
||||
tackle this issue, researchers have explored new solutions, including
|
||||
the use of huge pages [@panwar_hawkeye_2019].
|
||||
|
||||
Huge pages, also known as large pages, allow for the allocation of
|
||||
memory in significantly larger chunks compared to traditional small
|
||||
pages. By reducing the number of TLB entries needed to access a given
|
||||
amount of memory, huge pages offer a potential avenue for optimising
|
||||
TLBs use by reducing the number of entries needed to map large memory
|
||||
regions. This not only decreases the frequency of TLB misses but also
|
||||
lowers the overhead associated with address translation. By minimising
|
||||
these bottlenecks, huge pages can improve system performance in aspects
|
||||
such as speeding up memory-intensive applications, reducing latency in
|
||||
data access, and enhancing throughput for workloads that rely heavily on
|
||||
large datasets.
|
||||
|
||||
Simultaneously, advancements in hardware-level security, such as the
|
||||
Capability Hardware Enhanced RISC Instructions (CHERI)
|
||||
[@woodruff_cheri_2014] architecture, present additional opportunities
|
||||
for performance enhancement. CHERI's capability-based addressing
|
||||
approach not only strengthens system security by tightly controlling
|
||||
memory access but also opens avenues for optimising memory management
|
||||
operations. By integrating CHERI's compressed encoded
|
||||
bounds [@woodruff_cheri_2019] with the use of huge pages, We have shown
|
||||
it is possible to track and manage large, physically contiguous memory
|
||||
blocks without requiring numerous TLB entries. This combination reduces
|
||||
TLB pressure by minimising the number of entries required to map
|
||||
extensive memory regions, thereby decreasing TLB misses and improving
|
||||
address translation performance. Furthermore, it accelerates
|
||||
memory-intensive tasks by reducing the overhead associated with managing
|
||||
non-contiguous memory allocations. The contributions for the following
|
||||
paper are as follows:
|
||||
|
||||
- **FAT Addresses Translations**: Introduces FAT that include memory
|
||||
bounds, allowing efficient tracking and management of physically
|
||||
contiguous memory regions (Section
|
||||
[3](#sec:FatPointerTranslations){reference-type="ref"
|
||||
reference="sec:FatPointerTranslations"}).
|
||||
|
||||
- **CHERI's Capability-based Optimization**: Demonstrates how CHERI's
|
||||
architecture can be used to optimize memory allocation by encoding
|
||||
memory bounds directly within pointers, reducing TLB reliance (Section
|
||||
[3.2](#sec:128bitCompressedBounds){reference-type="ref"
|
||||
reference="sec:128bitCompressedBounds"}).
|
||||
|
||||
- **Memory Allocation Algorithms**: Provides an algorithms for
|
||||
allocating, freeing physically contiguous memory and integrating huge
|
||||
pages with CHERI's capability-based bounds for enhanced memory
|
||||
management (Section [4](#sec:MemoryAllocator){reference-type="ref"
|
||||
reference="sec:MemoryAllocator"}).
|
||||
|
||||
Through comprehensive evaluation, including micro and macro benchmarks,
|
||||
we demonstrate the allocator's ability to reduce TLB misses by up to
|
||||
90%, yielding significant improvements in wall clock runtimes for
|
||||
memory-intensive applications. While its impact on larger,
|
||||
computation-heavy workloads is less pronounced, the proposed allocator
|
||||
shows strong potential for advancing memory management in scenarios
|
||||
requiring high memory throughput by reducing the address translation
|
||||
overhead.
|
||||
|
||||
# Related work {#sec:org0e192da}
|
||||
|
||||
## Huge Pages
|
||||
|
||||
Increasing TLB reach[@TLBReach] can be achieved by using larger page
|
||||
sizes, such as huge pages [@panwar_hawkeye_2019], which are common in
|
||||
modern computer systems. The x86-64 architecture supports huge pages of
|
||||
2 MB and 1 GB, backed by OS mechanisms like Transparent Huge Pages
|
||||
(THP) [@THP] and HugeTLBFS in Linux. However, available page sizes in
|
||||
x86-64 are limited, leading to internal fragmentation issues.
|
||||
|
||||
For instance, allocating 1 MB with 4 KB base pages requires 256 PTEs
|
||||
(Page Table Entries), but using a 2 MB huge page would waste half of the
|
||||
memory space. Some architectures offer more page size choices, such as
|
||||
Intel Itanium, which allows different areas of the address space to have
|
||||
their own page sizes. Itanium uses a hash page table to organize huge
|
||||
pages, but without significant changes to the conventional page table,
|
||||
it only helps reduce page walk overheads. Huge page tunable base page
|
||||
size permits the OS to adjust the base page size, but still faces
|
||||
internal fragmentation problems, with huge page recommending a base page
|
||||
size of no more than 16 KB. Shadow Superpage [@Shadow_superpages]
|
||||
introduces a new translation level in the memory controller to merge
|
||||
non-contiguous physical pages into a huge page in a shadow memory space,
|
||||
extending TLB coverage. However, this approach requires all memory
|
||||
traffic to be translated again in the memory controller, resulting in
|
||||
additional latency for memory accesses.
|
||||
|
||||
## Direct Segment
|
||||
|
||||
Early processors often used segments to manage virtual memory, where a
|
||||
segment [@DirectSegment] essentially mapped contiguous virtual memory to
|
||||
contiguous physical memory. Unlike pages, which are relatively small,
|
||||
segments can be much larger, offering the potential for more efficient
|
||||
memory management in certain scenarios. This concept of segmentation has
|
||||
seen a resurgence in some modern approaches that aim to enhance
|
||||
translation coverage by designating specific areas in the virtual
|
||||
address space.
|
||||
|
||||
This method allows programmers to explicitly define a single segment for
|
||||
applications requiring significant memory. It introduces two new
|
||||
registers to the system, which indicate the start and end of this
|
||||
segment. Virtual addresses within this segment are translated by
|
||||
calculating the offset from the virtual start address and applying this
|
||||
offset to the physical start address. This straightforward method
|
||||
simplifies the translation process for large memory areas but requires
|
||||
significant modifications to the source code of applications.
|
||||
|
||||
## Redundant Memory Mapping (RMM)
|
||||
|
||||
Redundant Memory Mappings (RMM) [@karakostas_redundant_2015] enhance
|
||||
memory management by introducing an additional range table that
|
||||
pre-allocates contiguous physical pages for large memory allocations,
|
||||
creating ranges that are both virtually and physically contiguous. This
|
||||
approach simplifies address translation within these ranges by adding an
|
||||
offset, similar to Direct Segment, but RMM supports multiple ranges and
|
||||
operates transparently to programmers, requiring no source code
|
||||
modifications. The range table, separate from the conventional page
|
||||
table, holds the mappings for these large allocations. To determine
|
||||
which range an address belongs to, RMM compares the address against all
|
||||
range boundaries, a process that is computationally expensive and
|
||||
therefore performed only after an L1 TLB miss. To optimize this, RMM
|
||||
uses a range TLB (RTLB) to quickly identify if an address falls within
|
||||
any pre-allocated range, facilitating efficient translation and reducing
|
||||
overhead. Range mapping works alongside the paging system by generating
|
||||
TLB entries on TLB misses and still performing TLB lookups for each
|
||||
virtual address translation. Unlike traditional segmentation mechanisms,
|
||||
range mapping activates a range lookaside buffer (RTLB) located with the
|
||||
last level TLB upon a miss. The hardware TLB miss handler then searches
|
||||
the RTLB for the miss address and, if found, generates a new TLB entry
|
||||
with the physical address derived from the base virtual address and
|
||||
range offset, along with permission bits. If the RTLB also misses, the
|
||||
system defaults to a standard page walk while a range table walker
|
||||
simultaneously loads the range into the RTLB in the background, avoiding
|
||||
delays in memory operations. The RTLB, functioning as a fully
|
||||
associative search structure, ensures that most last level TLB misses
|
||||
are handled efficiently by range mapping, reducing the need for costly
|
||||
page table walks.
|
||||
|
||||
## CHERI {#sec:orgbf2eaac}
|
||||
|
||||
CHERI extends conventional processor Instruction-Set Architectures
|
||||
(ISAs) with architectural capabilities to enable fine-grained memory
|
||||
protection and highly scalable software compartmentalization. It is a
|
||||
hybrid capability architecture that can combine capabilities with
|
||||
conventional MMU (Memory Management Unit) based systems. The
|
||||
contributions of CHERI include ISA changes to introduce architectural
|
||||
capabilities; a new microarchitecture that demonstrates capabilities can
|
||||
be implemented efficiently in hardware, with support for efficient
|
||||
tagged memory to protect capabilities and compress them to reduce memory
|
||||
overhead; a newly designed software construction model that uses
|
||||
capabilities to provide fine-grained memory protection and scalable
|
||||
software compartmentalization; language and compiler extensions for
|
||||
using capabilities with C and C++; and OS extensions to support
|
||||
fine-grained memory protection (including spatial, referential, and
|
||||
non-stack temporal memory safety) and abstraction extensions for
|
||||
scalable software compartmentalization.
|
||||
|
||||
## CHERI CC
|
||||
|
||||
CHERI Concentrate: Practical Compressed
|
||||
Capabilities[@woodruff_cheri_2019] introduces a compression scheme for
|
||||
CHERI, aiming to address the performance and compatibility challenges
|
||||
associated with capability pointers. Capability pointers enhance memory
|
||||
safety by embedding bounds and permissions directly within pointers, but
|
||||
traditional implementations double their size---leading to increased
|
||||
memory usage. CHERI CC proposes a compression strategy that preserves
|
||||
security while reducing size and inefficiencies. Key contributions
|
||||
include a floating-point bounds encoding technique with an internal
|
||||
exponent mechanism that offers greater precision for smaller objects and
|
||||
optimized space usage for larger ones.
|
||||
|
||||
# Fat Address Translations {#sec:FatPointerTranslations}
|
||||
|
||||
Fat Address Translations (FAT) uses the CHERI architecture to bring
|
||||
about block based allocations in physically contiguous memory. FAT
|
||||
leverages techniques like FlexPointer [@chen_flexpointer_2023] and
|
||||
RMM [@karakostas_redundant_2015] to reduce pressure on the TLB. A key
|
||||
component in this implementation is the use of range addresses with
|
||||
CHERI CC [@woodruff_cheri_2019].
|
||||
|
||||
{#fig:HighOverviewArchitecture
|
||||
width="60%"}
|
||||
|
||||
Figure [1](#fig:HighOverviewArchitecture){reference-type="ref"
|
||||
reference="fig:HighOverviewArchitecture"} illustrates a comparison
|
||||
between standard memory allocation (*malloc()*) and a proposed FAT
|
||||
method. The standard approach involves a C program interacting with a
|
||||
custom allocator which uses 48-bit virtual addresses and a TLB walker
|
||||
(L1, L2 and L3 cache) to achieve non-contiguous allocation in physical
|
||||
memory. This typically results in more TLB entries and increased TLB
|
||||
misses increasing the reasoning to have more TLB walks. In contrast, the
|
||||
FAT Address Translations method employs a custom allocator leveraging
|
||||
physically contiguous memory by using CHERI to encode bounds within the
|
||||
pointers and as shown in the figure
|
||||
[1](#fig:HighOverviewArchitecture){reference-type="ref"
|
||||
reference="fig:HighOverviewArchitecture"} there is almost no reliance on
|
||||
walking the TLB hierarchy.
|
||||
|
||||
## Encoding Ranges as Bounds to the Pointer {#sec:RangeMemory}
|
||||
|
||||
{#fig:RangeOfMemory
|
||||
width="40%"}
|
||||
|
||||
A memory range in FAT has two points to track memory in physical
|
||||
contiguous space which is the top and bottom. These two points are two
|
||||
virtual addresses and the range consists of addresses which lie within
|
||||
this and refers to addresses allocated by invoking *malloc*. In FAT
|
||||
memory ranges are established using bounds encoded within the pointer,
|
||||
adhering to CHERI CC [@woodruff_cheri_2019].
|
||||
|
||||
Figure [2](#fig:RangeOfMemory){reference-type="ref"
|
||||
reference="fig:RangeOfMemory"} illustrates a straightforward use-case in
|
||||
which the dark pink line represents a single, large contiguous memory
|
||||
area, or huge page. Within this huge page, the orange and blue lines
|
||||
indicate two separate memory allocations equivalent to invoking *malloc*
|
||||
twice to allocate memory in distinct regions. This scenario simulates a
|
||||
block-based memory allocator operating within the confines of the huge
|
||||
page. The allocations use the bounds encoded in the FAT, ensuring
|
||||
tracking of the allocated memory regions. By using the CHERI bounds,
|
||||
this method maintains the contiguity of the allocated blocks within the
|
||||
huge page.
|
||||
|
||||
## 128 bit compressed bounds {#sec:128bitCompressedBounds}
|
||||
|
||||
We use CHERI CC [@woodruff_cheri_2019] to track regions of memory in
|
||||
physically contiguous space. CHERI CC consists of compressed bounds that
|
||||
represent a 128-bit pointer within a 64-bit virtual address system. Our
|
||||
approach uses the work of CHERI CC by using a single cycle to decode
|
||||
bounds from the capability register and the bounds which are decoded are
|
||||
repurposed for tracking memory which is eagerly allocated.
|
||||
|
||||
Allocators like Jemalloc typically allocate objects under 512 bytes.
|
||||
When an object's bounds cannot be precisely represented, padding is
|
||||
required to ensure memory safety. However, it has been observed that
|
||||
Jemalloc rarely needs more than 6 bits to store the exponent values
|
||||
within compressed bounds (as shown in [@woodruff_cheri_2019]). This
|
||||
means that the default behavior of allocators such as Jemalloc, would
|
||||
allow precise representation of bounds within CHERI CC.
|
||||
|
||||
Instead of relying on fixed-size TLB entries with set page sizes (such
|
||||
as 4KB, 2MB, or 1GB), FAT uses CHERI CC to define dynamic bounds based
|
||||
on the size requested at allocation time (e.g., during a *malloc* call).
|
||||
This approach offers a more flexible alternative to the traditional
|
||||
fixed-size TLB model.
|
||||
|
||||
## Instrumenting Block-Based Allocators with Physically Contiguous Memory
|
||||
|
||||
{#fig:HugePages width="40%"}
|
||||
|
||||
We are able to pre-allocate memory using huge pages and are able to mark
|
||||
smaller allocations using ranges by storing them as bounds within the
|
||||
pointer. Each of these memory ranges can be called as a block. Since we
|
||||
have numerous blocks inside a huge page we allow block based memory
|
||||
patters within physically contiguous memory.
|
||||
|
||||
Figure [3](#fig:HugePages){reference-type="ref"
|
||||
reference="fig:HugePages"} illustrates a use-case of huge pages where
|
||||
the green line represents a sample access to read within a contigous
|
||||
space of physical memory. The dotted lines represents the bounds for
|
||||
that particular pointer access. Using bounds stored on the pointer a
|
||||
block based pattern can be replicated on physically contigous memory.
|
||||
|
||||
# Memory allocator design {#sec:MemoryAllocator}
|
||||
|
||||
This section presents a straightforward memory allocator designed and
|
||||
implemented based on the principles outlined FAT (Section
|
||||
[3](#sec:FatPointerTranslations){reference-type="ref"
|
||||
reference="sec:FatPointerTranslations"}). The allocator consists of
|
||||
three core functions: *InitAlloc*, *malloc*, and *free*. The *InitAlloc*
|
||||
function initializes the memory pool, setting up the necessary data
|
||||
structures and metadata required for efficient memory management. The
|
||||
*malloc* function is responsible for allocating a contiguous block of
|
||||
memory of a specified size, while the *free* function deallocates the
|
||||
memory, returning it to the pool for future use.
|
||||
|
||||
:::: algorithm
|
||||
::: algorithmic
|
||||
$sz \gets \text{ALIGN\_UP}(sz, \text{MAX\_ALIGNMENT})$
|
||||
$\text{MallocCounter} \gets \text{MallocCounter} - sz$
|
||||
$\text{ptrLink} \gets \&\text{ptr}[\text{MallocCounter}]$
|
||||
$\text{ptrLink} \gets \text{SET\_BOUNDS}(\text{ptrLink}, sz)$
|
||||
$\text{ptrLink}$
|
||||
:::
|
||||
::::
|
||||
|
||||
When the *malloc* function (Algorithm
|
||||
[\[alg:malloc\]](#alg:malloc){reference-type="ref"
|
||||
reference="alg:malloc"}) is invoked, the algorithm employs an eager
|
||||
allocation strategy for physical memory. This is achieved through the
|
||||
use of the SetBounds mechanism, which constructs a FAT specialized
|
||||
pointer that encodes both the start and end addresses of the allocated
|
||||
memory region within the pointer itself. The start and end addresses
|
||||
correspond to the size of the memory block requested by *malloc*. This
|
||||
approach introduces a method of memory tracking, where the bounds of the
|
||||
allocated region are explicitly encoded in the address, enabling
|
||||
efficient monitoring and management of memory usage.
|
||||
|
||||
Furthermore, this design uses shared huge page TLB entries to map and
|
||||
track memory addresses. By encoding bounds directly into the address,
|
||||
the algorithm ensures that memory accesses remain within the allocated
|
||||
region, thereby reducing the risk of out-of-bounds errors. This use of
|
||||
FAT and shared TLB entries not only aligns with the principles of
|
||||
efficient memory management but also demonstrates a practical usecase of
|
||||
huge pages in CHERI.
|
||||
|
||||
:::: algorithm
|
||||
::: algorithmic
|
||||
$\text{len} \gets \text{GET\_LENGTH}(\text{ptr})$
|
||||
$\text{UNMAP}(\text{ptr}, \text{len})$
|
||||
:::
|
||||
::::
|
||||
|
||||
The memory deallocation (Algorithm
|
||||
[\[alg:free\]](#alg:free){reference-type="ref" reference="alg:free"})
|
||||
mechanism in the proposed allocator is facilitated by the FAT structure
|
||||
introduced in the *malloc* algorithm. When the *free* function is
|
||||
invoked, it uses the metadata embedded within the FAT to determine the
|
||||
range and size of the allocated memory region. Specifically, FAT encodes
|
||||
the start and end addresses of each allocation, providing the
|
||||
information needed to identify the memory block to be deallocated. This
|
||||
enables the allocator to accurately unmap the corresponding memory
|
||||
region from the address space.
|
||||
|
||||
By extracting the bounds and size directly from FAT, the *free* function
|
||||
eliminates the need for additional metadata lookups or complex data
|
||||
structures.
|
||||
|
||||
:::: algorithm
|
||||
::: algorithmic
|
||||
$\text{sz} \gets 1\ \text{GB}$
|
||||
$\text{fd} \gets \text{CREATE\_LARGE\_PAGE\_MEMORY}(\text{sz})$
|
||||
$\text{ptr} \gets \text{MAP\_MEMORY}(\text{sz})$
|
||||
$\text{MallocCounter} \gets \text{sz}$
|
||||
:::
|
||||
::::
|
||||
|
||||
Algorithm [\[alg:initAlloc\]](#alg:initAlloc){reference-type="ref"
|
||||
reference="alg:initAlloc"} describes the initialization of physically
|
||||
contiguous memory through the use of huge pages, a mechanism supported
|
||||
by modern architectures to optimize memory management. The algorithm
|
||||
begins by allocating a fixed block of 1 GB of physically contiguous
|
||||
memory. This decision is driven by the architectural constraints of
|
||||
contemporary systems, particularly ARM-based CPUs, where 1 GB represents
|
||||
the largest supported page size. By leveraging huge pages, the algorithm
|
||||
reduces the overhead associated with page table management and enhances
|
||||
memory access efficiency, which is critical for performance-sensitive
|
||||
applications and kernel-level operations.
|
||||
|
||||
# Evaluation {#sec:Evaluation}
|
||||
|
||||
We conducted tests of the FAT memory allocator against
|
||||
Jemalloc [@jemalloc], Jemalloc is the default memory allocator for
|
||||
CHERIBSD [@cheribsd], to assess the performance improvements enabled by
|
||||
the FAT allocator. Specifically, we evaluated the reduction in TLB walks
|
||||
and misses and its impact on wall clock runtime.
|
||||
|
||||
To comprehensively analyze the proposed allocator, we categorized
|
||||
benchmarks into two classes which are micro and macro benchmarks. Micro
|
||||
benchmarks comprise smaller C programs designed to target specific
|
||||
allocator patterns, enabling us to evaluate detailed aspects of the
|
||||
allocator's behavior. Macro benchmarks, on the other hand, encompass
|
||||
larger, real-world C programs, allowing us to assess the allocator's
|
||||
performance in more practical, real-world scenarios.
|
||||
|
||||
## Experiment setup {#sec:Experiment}
|
||||
|
||||
The CHERI Morello [@Morello] board was used to evaluate the proposed
|
||||
memory allocator. Morello implements the ARM A76 with enhanced
|
||||
server-class memory, featuring a quad-core ARM CPU with capability
|
||||
extensions. The L1 and L2 caches were modified to proliferate the
|
||||
capability bit, ensuring compatibility with CHERI's capability-based
|
||||
memory model. When compiling the C programs for benchmarking, the
|
||||
Benchmark ABI was used as recommended by the CHERI community. This
|
||||
compilation mode was enabled using the Clang compiler.
|
||||
|
||||
The Benchmark ABI [@BenchmarkABI] was specifically designed because the
|
||||
Morello branch predictor was not expanded to predict bounds.
|
||||
Consequently, a capability-based jump introduces stalls in later
|
||||
PCC-dependent instructions until bounds are established. This issue is
|
||||
particularly significant during dynamically linked calls and returns
|
||||
between libraries, where bounds are changed to cover the called or
|
||||
returned-to library. Such stalls can negatively affect performance,
|
||||
making the Benchmark ABI an essential consideration for this evaluation.
|
||||
|
||||
Each C program was executed using two different memory allocators. The
|
||||
first was the modified C allocator, imported as a header file. This
|
||||
approach was necessary because the Benchmark ABI shared object file
|
||||
exhibited unexpected behavior, failing to overwrite the C program at
|
||||
runtime with the intended *malloc* functions. The second allocator was
|
||||
the standard OS memory allocator, which, in the case of CHERIBSD, is
|
||||
Jemalloc.
|
||||
|
||||
Performance measurements were carried out using ARM performance
|
||||
counters [@PerformanceCounter] to ensure accurate evaluation. These
|
||||
counters provided detailed metrics, allowing us to compare the
|
||||
performance of the two allocators and assess the impact of the proposed
|
||||
changes.
|
||||
|
||||
::: table*
|
||||
Performance counter Description
|
||||
-------------------------------------------------- -------------------------------------------
|
||||
Wall clock The actual time taken from the start of a
|
||||
computer program to the end.
|
||||
|
||||
(p/l1d_tlb_rd) L1 data TLB reads Level 1 data TLB access, read
|
||||
|
||||
(p/l2d_tlb_rd) L2 data TLB reads Level 2 data TLB access, read
|
||||
|
||||
(p/l1d_tlb_refill) L1 data TLB refills Level 1 data TLB refill.
|
||||
The Level 1 data TLB refill
|
||||
counter tracks each access to
|
||||
the L1D_TLB that results
|
||||
in a refill of the Level 1 data
|
||||
or unified TLB. This includes any
|
||||
access that requires a memory lookup
|
||||
due to a translation table walk
|
||||
or accessing another level of TLB cache.
|
||||
|
||||
(p/cpu_cycles) CPU cycles The CPU CYCLES counter increases with
|
||||
every clock cycle. However, it can be
|
||||
affected by changes in clock frequency,
|
||||
such as when WFI (Wait for Interrupt)
|
||||
or WFE (Wait for Event)
|
||||
instructions pause the clock.
|
||||
|
||||
(p/dtlb_walk) Data TLB walks Data TLB access with at least
|
||||
one translation table walk.
|
||||
|
||||
(p/ll_cache_miss_rd) Last level cache miss reads Last level cache miss, read
|
||||
(This refers to every miss in the
|
||||
Last level cache that occurs
|
||||
during a memory read operation.)
|
||||
:::
|
||||
|
||||
## Benchmarks
|
||||
|
||||
The benchmarks [@Benchmark] are classified into 2 classes:
|
||||
|
||||
### Micro benchmark
|
||||
|
||||
We further elaborated on the two classes of benchmarks executed. Micro
|
||||
benchmarks (Section [\[sec:Micro\]](#sec:Micro){reference-type="ref"
|
||||
reference="sec:Micro"}). focused on particular allocation and
|
||||
deallocation patterns, such as sequential and random memory accesses, to
|
||||
stress-test the allocator under controlled conditions. Macro benchmarks
|
||||
involved real-world applications, offering insights into how the
|
||||
allocator performs with complex memory allocation demands, large
|
||||
datasets, and varying execution contexts. []{#sec:Micro
|
||||
label="sec:Micro"}
|
||||
|
||||
- `GLIBC`: The Glibc benchmark evaluates the performance of *malloc* and
|
||||
*free* functions in single-threaded, multi-threaded, and emulated
|
||||
multi-threading scenarios using various block sizes and allocation
|
||||
patterns. It simulates real-world memory usage by partially
|
||||
deallocating blocks in FIFO order and fully deallocating them in LIFO
|
||||
order. Results are gathered across configurations to analyze
|
||||
performance variations.
|
||||
|
||||
- `MemAccess`: This benchmark by Alex Bordei evaluates the performance
|
||||
impact of memory access patterns by constructing and traversing a
|
||||
doubly linked list with varying working set sizes. It supports
|
||||
sequential or randomized structures, optional node operations, and
|
||||
multithreaded traversal using pthreads. The program dynamically
|
||||
allocates memory and systematically doubles the working set size to
|
||||
analyze memory hierarchy behavior.
|
||||
|
||||
### Macro benchmark {#sec:Macro}
|
||||
|
||||
- `Kmeans`: Kmeans implements a parallelized K-means clustering
|
||||
algorithm that assigns data points to clusters based on proximity to
|
||||
centroids, iteratively updating them until convergence. The
|
||||
computation is distributed across threads using the pthread library,
|
||||
dynamically assigning tasks to optimize performance. Parameters like
|
||||
data size and clusters are configurable, and the program ensures
|
||||
efficient memory management and synchronization.
|
||||
|
||||
- `Richards`: Richards is a task scheduling benchmark that simulates a
|
||||
multitasking environment with tasks of varying types and priorities,
|
||||
communicating through queued packets. The schedule function manages
|
||||
task execution based on state and priority, tracking processed packets
|
||||
and held tasks for performance evaluation. Configurable iterations and
|
||||
timing help measure system performance and ensure correctness.
|
||||
|
||||
- `BARNES`: Implements the Barnes-Hut algorithm to efficiently simulate
|
||||
the interactions within an $N$-body system. A comprehensive overview
|
||||
of the Barnes-Hut method is provided by Singh in his doctoral
|
||||
dissertation [@singh1993]. The implementation we benchmark extends
|
||||
the original method by permitting multiple particles to be stored
|
||||
within each leaf cell of the spatial decomposition, enhancing
|
||||
performance and scalability. This extension is described by Holt and
|
||||
Singh [@holt1995].
|
||||
|
||||
## Results {#sec:Results}
|
||||
|
||||
![[]{#fig:bargraph label="fig:bargraph"}Percentage difference between
|
||||
the modified memory allocator against the default system memory
|
||||
allocator](diagram/bargraph.png){#fig:bargraph width=".9\\linewidth"}
|
||||
|
||||
The graph (Figure [4](#fig:bargraph){reference-type="ref"
|
||||
reference="fig:bargraph"}) highlights the performance comparison between
|
||||
the modified memory allocator and Jemalloc, the default memory
|
||||
allocator. The FAT memory allocator, specifically optimized for use with
|
||||
huge pages, demonstrates a clear advantage in scenarios where memory
|
||||
allocation patterns benefit from its design. The results align with
|
||||
expectations, showcasing the impact of its capability to handle memory
|
||||
more efficiently by leveraging huge pages.
|
||||
|
||||
- L1 DTLB reads: There was noticeable reduction of L1 DTLB reads for
|
||||
kmeans of about an average of 4% lesser and for Glibc there was
|
||||
significant reduction of 50% lesser than Jemalloc.
|
||||
|
||||
- L2 DTLB reads: For all the benchmarks on figure
|
||||
[4](#fig:bargraph){reference-type="ref" reference="fig:bargraph"}
|
||||
there was on average 98% reduction on L2 DTLB reads. This demonstrates
|
||||
that all the TLB translations are read at the L1 TLB cache.
|
||||
|
||||
- DTLB walks: Due to most of the TLB entries getting hit at the L1 DTLB
|
||||
there is no need to walk the TLB cache hierarchy. This is shown by an
|
||||
average of 99% reduction in DTLB walks.
|
||||
|
||||
- L1 DTLB refills: Since there are fewer DTLB walks and most reads are
|
||||
done at the L1 DTLB layer there is no need for numerous TLB refills to
|
||||
take place. Our benchmarks show on average a 99% reduction on DTLB
|
||||
refills.
|
||||
|
||||
A particularly striking observation is the significant reduction in data
|
||||
TLB walks, L2 data TLB reads, and TLB refills---consistently showing a
|
||||
90% decrease across all benchmarks compared to Jemalloc. This
|
||||
improvement is due to the modified allocator's use of a single huge page
|
||||
entry at the L1 TLB layer. By enabling most address translations to be
|
||||
resolved directly at the L1 TLB, the need to walk through the deeper TLB
|
||||
hierarchy is largely eliminated. This reduction in translation overhead
|
||||
is a key factor in the allocator's performance for certain types of
|
||||
workloads.
|
||||
|
||||
The micro benchmarks, which are crafted to emphasize memory read
|
||||
operations, highlight the allocator's strengths. These tests simulate
|
||||
frequent and intensive memory access patterns, where the reduction in
|
||||
TLB misses directly translates into measurable performance gains. On
|
||||
average, the FAT allocator achieves a 50% reduction in wall clock
|
||||
runtimes for these workloads, underscoring its ability to optimize
|
||||
high-throughput memory operations.
|
||||
|
||||
On the other hand, macro benchmarks, which represent larger and more
|
||||
complex real-world applications, exhibit minimal differences in wall
|
||||
clock runtimes when using the FAT allocator. This outcome is expected,
|
||||
as macro benchmarks typically involve a broader range of operations
|
||||
beyond memory allocation, diluting the impact of the allocator's
|
||||
optimizations. Additionally, the benefits of huge pages may be less
|
||||
pronounced for these workloads, as they are often bottlenecked by
|
||||
factors such as computation or I/O rather than memory translation
|
||||
overhead.
|
||||
|
||||
![[]{#fig:org8683315 label="fig:org8683315"}Kmeans COZ benchmark
|
||||
executed against various cluster
|
||||
sizes](./diagram/kmeans.png){#fig:org8683315 width="110%"}
|
||||
|
||||
The K-means algorithm was executed with varying cluster sizes to
|
||||
evaluate the performance difference between the FAT allocator and
|
||||
Jemalloc as the workload scales. This analysis aims to understand how
|
||||
the allocator's optimizations, particularly its ability to manage memory
|
||||
more efficiently with huge pages, impact performance under different
|
||||
workload conditions.
|
||||
|
||||
For most cluster sizes tested, the percentage difference in performance
|
||||
remained relatively consistent. This indicates that the allocator's
|
||||
efficiency scales predictably with increasing workload sizes, suggesting
|
||||
a stable and uniform benefit across different configurations. The
|
||||
consistent performance gain is likely due to the allocator's ability to
|
||||
minimize TLB misses and efficiently manage memory allocations for the
|
||||
centroid and data point structures used in the K-means algorithm.
|
||||
|
||||
However, an anomaly was observed at a cluster size of 2000, where the
|
||||
percentage difference deviated significantly from the trend. At this
|
||||
cluster size, the memory access patterns and allocation behavior may
|
||||
align in a way that temporarily offsets the advantages of the FAT
|
||||
allocator. For example, the memory layout might interact with
|
||||
system-level caching mechanisms or TLB behavior differently, leading to
|
||||
an unexpected change in performance. Additionally, the increased
|
||||
complexity of managing a higher number of clusters might introduce
|
||||
computational overhead that overshadows the memory allocator's
|
||||
optimizations.
|
||||
|
||||
## Analysis {#sec:Analysis}
|
||||
|
||||
The FAT memory allocator demonstrates significant potential for
|
||||
enhancing memory management in systems that benefit from huge page
|
||||
optimizations. Its design effectively reduces TLB misses, achieving up
|
||||
to 90% fewer data TLB walks, L2 TLB reads, and TLB refills compared to
|
||||
Jemalloc. These improvements lead to noticeable performance gains,
|
||||
especially in micro benchmarks, where the allocator reduces wall clock
|
||||
runtimes by an average of 50%.
|
||||
|
||||
The allocator integrates seamlessly into memory-intensive workloads, as
|
||||
evidenced by its consistent performance across varying cluster sizes in
|
||||
the K-means benchmark, with only minor anomalies observed under specific
|
||||
conditions. These outliers provide valuable insights into the
|
||||
allocator's interaction with system-level caching and memory translation
|
||||
mechanisms.
|
||||
|
||||
While the allocator excels in scenarios emphasizing high memory
|
||||
throughput, its impact on macro benchmarks is less pronounced. This
|
||||
suggests that its benefits are most relevant for applications with
|
||||
frequent and intensive memory operations rather than those constrained
|
||||
by computation or I/O bottlenecks.
|
||||
|
||||
# Conclusion
|
||||
|
||||
This paper addresses the growing disparity between application workloads
|
||||
and the capacity of TLBs. To mitigate this gap, we proposed leveraging
|
||||
physically contiguous memory with CHERI bounds to reduce TLB walks. We
|
||||
designed a memory allocator which uses huge pages with CHERI CC scheme
|
||||
to track allocations within the allocated huge page. This approach
|
||||
reduces the number of TLB entries needed while using bounds to minimize
|
||||
fragmentation.\
|
||||
The benchmarks demonstrate that the allocator reduces TLB misses by up
|
||||
to 90%, leading to substantial performance gains in memory-intensive
|
||||
workloads, though the improvements are less pronounced for larger,
|
||||
computation-heavy applications. These results highlight the allocator's
|
||||
potential to advance memory management by repurposing CHERI's
|
||||
capability-based model with the use of huge pages.
|
||||
626
docs/RISCV-FAT/Paper/paperReferences.bib
Normal file
@@ -0,0 +1,626 @@
|
||||
@article{TLBHierarchy,
|
||||
author = {Lustig, Daniel and Bhattacharjee, Abhishek and Martonosi, Margaret},
|
||||
title = {TLB Improvements for Chip Multiprocessors: Inter-Core Cooperative Prefetchers and Shared Last-Level TLBs},
|
||||
year = {2013},
|
||||
issue_date = {April 2013},
|
||||
publisher = {Association for Computing Machinery},
|
||||
address = {New York, NY, USA},
|
||||
volume = {10},
|
||||
number = {1},
|
||||
issn = {1544-3566},
|
||||
url = {https://doi.org/10.1145/2445572.2445574},
|
||||
doi = {10.1145/2445572.2445574},
|
||||
abstract = {Translation Lookaside Buffers (TLBs) are critical to overall system performance. Much past research has addressed uniprocessor TLBs, lowering access times and miss rates. However, as Chip MultiProcessors (CMPs) become ubiquitous, TLB design and performance must be reevaluated. Our article begins by performing a thorough TLB performance evaluation of sequential and parallel benchmarks running on a real-world, modern CMP system using hardware performance counters. This analysis demonstrates the need for further improvement of TLB hit rates for both classes of application, and it also points out that the data TLB has a significantly higher miss rate than the instruction TLB in both cases.In response to the characterization data, we propose and evaluate both Inter-Core Cooperative (ICC) TLB prefetchers and Shared Last-Level (SLL) TLBs as alternatives to the commercial norm of private, per-core L2 TLBs. ICC prefetchers eliminate 19\% to 90\% of Data TLB (D-TLB) misses across parallel workloads while requiring only modest changes in hardware. SLL TLBs eliminate 7\% to 79\% of D-TLB misses for parallel workloads and 35\% to 95\% of D-TLB misses for multiprogrammed sequential workloads. This corresponds to 27\% and 21\% increases in hit rates as compared to private, per-core L2 TLBs, respectively, and is achieved this using even more modest hardware requirements.Because of their benefits for parallel applications, their applicability to sequential workloads, and their readily implementable hardware, SLL TLBs and ICC TLB prefetchers hold great promise for CMPs.},
|
||||
journal = {ACM Trans. Archit. Code Optim.},
|
||||
month = apr,
|
||||
articleno = {2},
|
||||
numpages = {38},
|
||||
keywords = {TLB prefetching, Translation lookaside buffer, performance evaluation, shared last-level TLB, simulation}
|
||||
}
|
||||
|
||||
@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,
|
||||
author = {Navarro, Juan and Iyer, Sitararn and Druschel, Peter and Cox, Alan},
|
||||
title = {Practical, transparent operating system support for superpages},
|
||||
year = {2003},
|
||||
issue_date = {Winter 2002},
|
||||
publisher = {Association for Computing Machinery},
|
||||
address = {New York, NY, USA},
|
||||
volume = {36},
|
||||
number = {SI},
|
||||
issn = {0163-5980},
|
||||
url = {https://doi.org/10.1145/844128.844138},
|
||||
doi = {10.1145/844128.844138},
|
||||
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.},
|
||||
journal = {SIGOPS Oper. Syst. Rev.},
|
||||
month = dec,
|
||||
pages = {89–104},
|
||||
numpages = {16}
|
||||
}
|
||||
|
||||
|
||||
@INPROCEEDINGS{TLBReach,
|
||||
author={Pham, Binh and Bhattacharjee, Abhishek and Eckert, Yasuko and Loh, Gabriel H.},
|
||||
booktitle={2014 IEEE 20th International Symposium on High Performance Computer Architecture (HPCA)},
|
||||
title={Increasing TLB reach by exploiting clustering in page translations},
|
||||
year={2014},
|
||||
volume={},
|
||||
number={},
|
||||
pages={558-567},
|
||||
keywords={Virtual private networks;Hardware;Organizations;Benchmark testing;Prefetching;Operating systems},
|
||||
doi={10.1109/HPCA.2014.6835964}
|
||||
}
|
||||
|
||||
@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,
|
||||
author = {Chen, Dongwei and Tong, Dong and Yang, Chun and Yi, Jiangfang and Cheng, Xu},
|
||||
title = {FlexPointer: Fast Address Translation Based on Range TLB and Tagged Pointers},
|
||||
year = {2023},
|
||||
issue_date = {June 2023},
|
||||
publisher = {Association for Computing Machinery},
|
||||
address = {New York, NY, USA},
|
||||
volume = {20},
|
||||
number = {2},
|
||||
issn = {1544-3566},
|
||||
url = {https://doi.org/10.1145/3579854},
|
||||
doi = {10.1145/3579854},
|
||||
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.},
|
||||
journal = {ACM Trans. Archit. Code Optim.},
|
||||
month = mar,
|
||||
articleno = {30},
|
||||
numpages = {24},
|
||||
keywords = {Tagged pointer, TLB reach, address translation}
|
||||
}
|
||||
|
||||
@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},
|
||||
howpublished = "\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}
|
||||
}
|
||||
|
||||
@inproceedings{jemalloc,
|
||||
title={A scalable concurrent malloc (3) implementation for FreeBSD},
|
||||
author={Evans, Jason},
|
||||
booktitle={Proc. of the bsdcan conference, ottawa, canada},
|
||||
year={2006}
|
||||
}
|
||||
|
||||
@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},
|
||||
}
|
||||
|
||||
@article{TLBBehavoir,
|
||||
author = {Kandiraju, Gokul B. and Sivasubramaniam, Anand},
|
||||
title = {Characterizing the d-TLB behavior of SPEC CPU2000 benchmarks},
|
||||
year = {2002},
|
||||
issue_date = {June 2002},
|
||||
publisher = {Association for Computing Machinery},
|
||||
address = {New York, NY, USA},
|
||||
volume = {30},
|
||||
number = {1},
|
||||
issn = {0163-5999},
|
||||
url = {https://doi.org/10.1145/511399.511351},
|
||||
doi = {10.1145/511399.511351},
|
||||
abstract = {Despite the numerous optimization and evaluation studies that have been conducted with TLBs over the years, there is still a deficiency in an indepth understanding of TLB characteristics from an application angle. This paper presents a detailed characterization study of the TLB behavior of the SPEC CPU2000 benchmark suite. The contributions of this work are in identifying important application characteristics for TLB studies, quantifying the SPEC2000 application behavior for these characteristics, as well as making pronouncements and suggestions for future research based on these results.Around one-fourth of the SPEC2000 applications (ammp, apsi, galgel, lucas, mcf, twolf and vpr) have significant TLB missrates. Both capacity and associativity are influencing factors on miss-rates, though they do not necessarily go hand-in-hand. Multi-level TLBs are definitely useful for these applications in cutting down access times without significant miss rate degradation. Superpaging to combine TLB entries may not be rewarding for many of these applications. Software management of TLBs in terms of determining what entries to prefetch, what entries to replace, and what entries to pin has a lot of potential to cut down miss rates considerably. Specifically, the potential benefits of prefetching TLB entries is examined, and Distance Prefetching is shown to give good prediction accuracy for these applications.},
|
||||
journal = {SIGMETRICS Perform. Eval. Rev.},
|
||||
month = jun,
|
||||
pages = {129–139},
|
||||
numpages = {11}
|
||||
}
|
||||
|
||||
@inproceedings{IntelItanium,
|
||||
author = {Cornea, Marius and Harrison, John and Tang, Ping Tak Peter},
|
||||
title = {Intel® Itanium® floating-point architecture},
|
||||
year = {2003},
|
||||
isbn = {9781450347327},
|
||||
publisher = {Association for Computing Machinery},
|
||||
address = {New York, NY, USA},
|
||||
url = {https://doi.org/10.1145/1275521.1275526},
|
||||
doi = {10.1145/1275521.1275526},
|
||||
abstract = {The Intel® Itanium® architecture is increasingly becoming one of the major processor architectures present in the market today. Launched in 2001, the Intel Itanium processor was followed in 2002 by the Itanium 2 processor, with increased integer and floating-point performance. Measured by the SPEC CINT2000 benchmarks, the Itanium 2 processor still trails by about 25\% the Intel P4 processor in integer performance, albeit P4 runs at more than three times Itanium's clock frequency. However, its floating-point performance clearly leads in the SPEC CFP2000 charts, and its rating is about 25\% higher than that of the P4 processor. While the general features of the Itanium architecture such as large register sets, predication, speculation, and support for explicit parallelism [1] have been presented in several papers, books, and mainstream college textbooks [2], its floating-point architecture has been less publicized. Two books, [3] and [4], cover well this area. The present paper focuses on the floating-point architecture of the Itanium processor family, and points out a few remarkable features suitable to be the focus of a lecture, lab session, or project in a computer architecture class.},
|
||||
booktitle = {Proceedings of the 2003 Workshop on Computer Architecture Education: Held in Conjunction with the 30th International Symposium on Computer Architecture},
|
||||
pages = {3–es},
|
||||
location = {San Diego, California},
|
||||
series = {WCAE '03}
|
||||
}
|
||||
|
||||
@phdthesis{singh1993,
|
||||
author = {Singh, Jaswinder Pal},
|
||||
title = {Parallel Hierarchical N-body Methods and Their Implications for Multiprocessors},
|
||||
school = {Stanford University},
|
||||
year = {1993},
|
||||
month = feb,
|
||||
}
|
||||
|
||||
@inproceedings{holt1995,
|
||||
author = {Holt, C. and Singh, Jaswinder Pal},
|
||||
title = {Hierarchical N-Body Methods on Shared Address Space Multiprocessors},
|
||||
booktitle = {SIAM Conference on Parallel Processing for Scientific Computing},
|
||||
year = {1995},
|
||||
note = {To appear},
|
||||
month = feb
|
||||
}
|
||||
|
||||
@article{evans_scalable_nodate,
|
||||
title = {A {Scalable} {Concurrent} malloc(3) {Implementation} for {FreeBSD}},
|
||||
abstract = {The FreeBSD project has been engaged in ongoing work to provide scalable support for multi-processor computer systems since version 5. Sufficient progress has been made that the C library’s malloc(3) memory allocator is now a potential bottleneck for multi-threaded applications running on multiprocessor systems. In this paper, I present a new memory allocator that builds on the state of the art to provide scalable concurrent allocation for applications. Benchmarks indicate that with this allocator, memory allocation for multi-threaded applications scales well as the number of processors increases. At the same time, single-threaded allocation performance is similar to the previous allocator implementation.},
|
||||
language = {en},
|
||||
author = {Evans, Jason},
|
||||
file = {Evans - A Scalable Concurrent malloc(3) Implementation for.pdf:/Users/akilan/Zotero/storage/4ZE7JS5V/Evans - A Scalable Concurrent malloc(3) Implementation for.pdf:application/pdf},
|
||||
}
|
||||
|
||||
|
||||
BIN
docs/RISCV-FAT/Paper/papernotes.pdf
Normal file
480
docs/RISCV-FAT/Paper/references.bib
Normal file
@@ -0,0 +1,480 @@
|
||||
@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},
|
||||
}
|
||||
|
||||
@INPROCEEDINGS{TLBReach,
|
||||
author={Pham, Binh and Bhattacharjee, Abhishek and Eckert, Yasuko and Loh, Gabriel H.},
|
||||
booktitle={2014 IEEE 20th International Symposium on High Performance Computer Architecture (HPCA)},
|
||||
title={Increasing TLB reach by exploiting clustering in page translations},
|
||||
year={2014},
|
||||
volume={},
|
||||
number={},
|
||||
pages={558-567},
|
||||
keywords={Virtual private networks;Hardware;Organizations;Benchmark testing;Prefetching;Operating systems},
|
||||
doi={10.1109/HPCA.2014.6835964}
|
||||
|
||||
@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/RISCV-FAT/Paper/sampleteaser.pdf
Normal file
BIN
docs/RISCV-FAT/Paper/svg-inkscape/drawing_svg-tex.pdf
Normal file
103
docs/RISCV-FAT/Paper/svg-inkscape/drawing_svg-tex.pdf_tex
Normal file
@@ -0,0 +1,103 @@
|
||||
%% Creator: Inkscape 1.3 (0e150ed, 2023-07-21), www.inkscape.org
|
||||
%% PDF/EPS/PS + LaTeX output extension by Johan Engelen, 2010
|
||||
%% Accompanies image file 'drawing_svg-tex.pdf' (pdf, eps, ps)
|
||||
%%
|
||||
%% To include the image in your LaTeX document, write
|
||||
%% \input{<filename>.pdf_tex}
|
||||
%% instead of
|
||||
%% \includegraphics{<filename>.pdf}
|
||||
%% To scale the image, write
|
||||
%% \def\svgwidth{<desired width>}
|
||||
%% \input{<filename>.pdf_tex}
|
||||
%% instead of
|
||||
%% \includegraphics[width=<desired width>]{<filename>.pdf}
|
||||
%%
|
||||
%% Images with a different path to the parent latex file can
|
||||
%% be accessed with the `import' package (which may need to be
|
||||
%% installed) using
|
||||
%% \usepackage{import}
|
||||
%% in the preamble, and then including the image with
|
||||
%% \import{<path to file>}{<filename>.pdf_tex}
|
||||
%% Alternatively, one can specify
|
||||
%% \graphicspath{{<path to file>/}}
|
||||
%%
|
||||
%% For more information, please see info/svg-inkscape on CTAN:
|
||||
%% http://tug.ctan.org/tex-archive/info/svg-inkscape
|
||||
%%
|
||||
\begingroup%
|
||||
\makeatletter%
|
||||
\providecommand\color[2][]{%
|
||||
\errmessage{(Inkscape) Color is used for the text in Inkscape, but the package 'color.sty' is not loaded}%
|
||||
\renewcommand\color[2][]{}%
|
||||
}%
|
||||
\providecommand\transparent[1]{%
|
||||
\errmessage{(Inkscape) Transparency is used (non-zero) for the text in Inkscape, but the package 'transparent.sty' is not loaded}%
|
||||
\renewcommand\transparent[1]{}%
|
||||
}%
|
||||
\providecommand\rotatebox[2]{#2}%
|
||||
\newcommand*\fsize{\dimexpr\f@size pt\relax}%
|
||||
\newcommand*\lineheight[1]{\fontsize{\fsize}{#1\fsize}\selectfont}%
|
||||
\ifx\svgwidth\undefined%
|
||||
\setlength{\unitlength}{595.27559055bp}%
|
||||
\ifx\svgscale\undefined%
|
||||
\relax%
|
||||
\else%
|
||||
\setlength{\unitlength}{\unitlength * \real{\svgscale}}%
|
||||
\fi%
|
||||
\else%
|
||||
\setlength{\unitlength}{\svgwidth}%
|
||||
\fi%
|
||||
\global\let\svgwidth\undefined%
|
||||
\global\let\svgscale\undefined%
|
||||
\makeatother%
|
||||
\begin{picture}(1,1.41428571)%
|
||||
\lineheight{1}%
|
||||
\setlength\tabcolsep{0pt}%
|
||||
\put(0,0){\includegraphics[width=\unitlength,page=1]{drawing_svg-tex.pdf}}%
|
||||
\put(0.15789822,0.92036082){\color[rgb]{0,0,0}\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}0x00\end{tabular}}}}%
|
||||
\put(0.37386671,0.92253403){\color[rgb]{0,0,0}\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}B1\end{tabular}}}}%
|
||||
\put(0.50353176,0.92253403){\color[rgb]{0,0,0}\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}B2\end{tabular}}}}%
|
||||
\put(0.44040222,0.92253403){\color[rgb]{0,0,0}\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}L1\end{tabular}}}}%
|
||||
\put(0.61435089,0.92253403){\color[rgb]{0,0,0}\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}L2\end{tabular}}}}%
|
||||
\put(0.29055594,0.92253403){\color[rgb]{0,0,0}\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}V1\end{tabular}}}}%
|
||||
\put(0.66655026,0.92263452){\color[rgb]{0,0,0}\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}V100\end{tabular}}}}%
|
||||
\put(0,0){\includegraphics[width=\unitlength,page=2]{drawing_svg-tex.pdf}}%
|
||||
\put(0.40749174,0.93578629){\color[rgb]{0,0,0}\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}10\end{tabular}}}}%
|
||||
\put(0.56205117,0.93578629){\color[rgb]{0,0,0}\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}20\end{tabular}}}}%
|
||||
\put(0.22755263,0.93517601){\color[rgb]{0,0,0}\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}os\end{tabular}}}}%
|
||||
\put(0.30978512,0.76763965){\color[rgb]{0,0,0}\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}(V1,V100)\end{tabular}}}}%
|
||||
\put(0.3264479,0.69374911){\color[rgb]{0,0,0}\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}Range\end{tabular}}}}%
|
||||
\put(0.20039115,0.69367397){\color[rgb]{0,0,0}\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}Offset\end{tabular}}}}%
|
||||
\put(0.2274294,0.76524569){\color[rgb]{0,0,0}\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}os\end{tabular}}}}%
|
||||
\put(0.22962278,0.7364222){\color[rgb]{0,0,0}\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}...\end{tabular}}}}%
|
||||
\put(0.35751119,0.7364222){\color[rgb]{0,0,0}\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}...\end{tabular}}}}%
|
||||
\put(0,0){\includegraphics[width=\unitlength,page=3]{drawing_svg-tex.pdf}}%
|
||||
\put(0.52683919,0.82449268){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}\textbf{malloc}(..){\\ if (!set){\\ shm_largepage(1GB);\\ }\\ ...\\} \end{tabular}}}}%
|
||||
\put(0.25489157,0.65342298){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}L1 TLB\end{tabular}}}}%
|
||||
\put(0,0){\includegraphics[width=\unitlength,page=4]{drawing_svg-tex.pdf}}%
|
||||
\put(0.32993557,1.25595083){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}p\end{tabular}}}}%
|
||||
\put(0.36330546,1.2544215){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}IE\end{tabular}}}}%
|
||||
\put(0.3995023,1.25427548){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}s\end{tabular}}}}%
|
||||
\put(0.46365018,1.2544215){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}L1\end{tabular}}}}%
|
||||
\put(0.4283773,1.2544215){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}B1\end{tabular}}}}%
|
||||
\put(0.36500369,1.2764865){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}Address\end{tabular}}}}%
|
||||
\put(0,0){\includegraphics[width=\unitlength,page=5]{drawing_svg-tex.pdf}}%
|
||||
\put(0.32168997,1.23225528){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}security data\end{tabular}}}}%
|
||||
\put(0.4952568,1.25986266){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}Compressed\\Bounds\end{tabular}}}}%
|
||||
\put(0.21413231,1.14693542){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}p\end{tabular}}}}%
|
||||
\put(0.24752412,1.14540509){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}IE\end{tabular}}}}%
|
||||
\put(0.28374472,1.14525897){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}s\end{tabular}}}}%
|
||||
\put(0.34793472,1.14540509){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}L2\end{tabular}}}}%
|
||||
\put(0.31263868,1.14540509){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}B2\end{tabular}}}}%
|
||||
\put(0.24922346,1.16748457){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}Address\end{tabular}}}}%
|
||||
\put(0,0){\includegraphics[width=\unitlength,page=6]{drawing_svg-tex.pdf}}%
|
||||
\put(0.20495392,1.12507906){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}security data\end{tabular}}}}%
|
||||
\put(0.18030792,1.3571531){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}main() {\end{tabular}}}}%
|
||||
\put(0.18320669,1.0714103){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}}\end{tabular}}}}%
|
||||
\put(0.20085456,1.31122079){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}\textbf{CapPtr} = malloc(10)\end{tabular}}}}%
|
||||
\put(0.20671349,1.19496148){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}malloc(20)\end{tabular}}}}%
|
||||
\put(0,0){\includegraphics[width=\unitlength,page=7]{drawing_svg-tex.pdf}}%
|
||||
\put(0.46258094,1.31210798){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}Free(\textbf{CapPtr})\end{tabular}}}}%
|
||||
\put(0,0){\includegraphics[width=\unitlength,page=8]{drawing_svg-tex.pdf}}%
|
||||
\end{picture}%
|
||||
\endgroup%
|
||||
36
docs/RISCV-FAT/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/RISCV-FAT/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/RISCV-FAT/Paper/test.pdf
Normal file
54
docs/RISCV-FAT/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}
|
||||
70
docs/RISCV-FAT/Paper/todo.md
Normal file
@@ -0,0 +1,70 @@
|
||||
### General
|
||||
- [ ] Change name (Thinking of using (Fat Address Translation) -> similar to GNU))
|
||||
- [ ] Avoid words which create options
|
||||
- [x] Use citation with ```~/cite{foo}```
|
||||
- [ ] Clear distinction on Literature review and contribution done
|
||||
- [x] Generalise capitalisation
|
||||
- [ ] Avoid several use ex: There are 3 way...
|
||||
- [x] Instead of "Leverage" -> "use"
|
||||
- [ ] Remove whitespace from figures to be compressed
|
||||
- [ ] Uniform font sizes in figures
|
||||
- [ ] Symmetrical lines on the figure
|
||||
- [ ] TLB with acronym only once for the first instance in the paper
|
||||
|
||||
### Abstract
|
||||
- [ ] Reduce Abstract to a single paragraph'
|
||||
- [ ] "Mitigate gap, capacity" -> Expand on for instance on how is it measured.
|
||||
- [ ] Huge pages moved to the introduction.
|
||||
- [ ] Robs proposed structure (This paper presents <NAME> user-space memory allocator. It uses capability-based addressing to <list properties>.
|
||||
|
||||
### Introduction
|
||||
- [ ] "It becomes possible" expand more with baseline compressed bounds.
|
||||
- [ ] "This paper makes the following contribution" -. bullet points with marked sections.
|
||||
- [ ] Research questions removed.
|
||||
- [ ] "This implementation" Specify implementation
|
||||
- [ ] Robs recommended Introduction structure (Expansion of the abstract, Name of the existing system, clearly describe limitation, Introduce memory allocator).
|
||||
|
||||
### 2.1 Encoding ranges as bounds
|
||||
- [x] Repetition "Tracking of memory ranges using information in pointers" -> remove this
|
||||
- [ ] Paraphrase last sentence
|
||||
|
||||
### 2.2 128 bit compressed bounds
|
||||
- [x] Cites Jemalloc paragraph.
|
||||
- [ ] Last sentence needs rewriting.
|
||||
|
||||
### 2.3 Instrumenting block based allocator
|
||||
- [ ] Needs citation "Which increases overhead and adds complexity"
|
||||
- [ ] Elaborate on "this method"
|
||||
- [ ] "precise" memory management (Elaborate on this and prove which aspects of the other allocator are not precise).
|
||||
|
||||
### Memory allocator design
|
||||
- [x] Remove from heading "sample" and ":"
|
||||
- [ ] Remove future work paragraph
|
||||
- [x] "unmapped" -> unmap
|
||||
- [ ] "Risks of memory leaks with metadata lookups or complex data structures" -> Elaborate on this
|
||||
|
||||
### Evaluation
|
||||
- [x] Name of the project keeps the sentence shorter.
|
||||
- [x] "Such as" -> Definitive and exhaustive.
|
||||
- [ ] TLB misses and walk contextualised better.
|
||||
- [ ] Section reference on evaluation expanded.
|
||||
- [ ] Remove "Providing a solid foundation for meaningful comparisons"
|
||||
- [ ] Decide to use Macro or instead "real world C programs"
|
||||
- [x] 1st section Evaluation remove "We observed...."
|
||||
|
||||
- [x] Experiment section typo heading
|
||||
- [x] Fix Latex benchmarks structure
|
||||
- [x] Change from "Diagram" to "Figure"
|
||||
|
||||
- [ ] Result para 2 -> too wordy
|
||||
- [x] "aimed" first use of past tense (Recommendation: avoid)
|
||||
- [x] Last paragraph (More substance)
|
||||
- [x] Experiment results systematically explained based on benchmarks as bullet points.
|
||||
|
||||
- [ ] Rewrite usability
|
||||
|
||||
### Related work
|
||||
- [ ] Related work lifted up after introduction based on the reflection of the feedback.
|
||||
|
||||
### Conclusion
|
||||
- [ ] Rewrite
|
||||
69
docs/RISCV-FAT/Paper/todo.org
Normal file
@@ -0,0 +1,69 @@
|
||||
Recheck require read of the paper
|
||||
|
||||
** General changes
|
||||
- [x] Captilisation fixes
|
||||
- [x] Check for unessary commas (Requires read through paper)
|
||||
- [x] Check references (Last priority)
|
||||
- [x] Unify english grammer (emphasize -> Check british english spellings)
|
||||
- [x] Text make to italics (For function calls)
|
||||
- [x] Space missing from bracket
|
||||
- [x] Utlizing to using
|
||||
- [x] Small number use word
|
||||
- [x] Make all past tense to present tense (Recheck)
|
||||
- [x] Comment out future work section
|
||||
- [x] Section with always captial S
|
||||
- [x] RMM fix reference
|
||||
|
||||
** Literature review
|
||||
- [x] TLB reach needs defining
|
||||
- [x] PTE acronym
|
||||
- [x] Citation (HP Tunable page table)
|
||||
- [x] CHERI standardise bullet points into a
|
||||
paragraph.
|
||||
|
||||
** FAT address range table
|
||||
- [x] Sentence 1 remove "talks about"
|
||||
- [x] "Lesser pressure" FAT leverages to reduce pressure on the TLB
|
||||
- [x] Fix "as show" to "as shown"
|
||||
- [x] Remove "CHERI CC [4] as referred in section 3.2."
|
||||
to "CHERI CC [4] (section 3.2)"
|
||||
- [x] Explain Cheri CC in the literature review
|
||||
- [x] Move Cheri CC reference to it has been observed
|
||||
- [x] "With FAT rather than using fixed size TLB entries page sizes"
|
||||
Rephrase this sentence.
|
||||
- [x] "We use CHERI CC bounds to 344 be dynamic in
|
||||
size to be defined based on the size provided when
|
||||
345 calling malloc. Offering a more flexible
|
||||
alternative than fixed-size 346 TLB entries."
|
||||
Make this into 1 sentence.
|
||||
|
||||
- [x] "To build up based on Section 3.1 and 3.2."
|
||||
Remove this setence
|
||||
- [x] "As demonstrated with the allocator implementation in section 4"
|
||||
Remove this sentence
|
||||
- [x] "repcrecated" to "replicated"
|
||||
|
||||
** Malloc implementation
|
||||
- [x] "Specifically, the start and end addresses encoded in FAT to provide the necessary information to identify the exact memory block to be deallocated."
|
||||
Rewrite this sentence
|
||||
|
||||
** Evaluation
|
||||
- [x] 2nd para move to benchmarks section
|
||||
- [x] "The results (section 5.3)... (comment out)
|
||||
- [x] "The expirement setup" comment out
|
||||
- [x] Replace "lesser" with fewer
|
||||
- [x] "This observation highlights the importance"
|
||||
Comment out
|
||||
|
||||
** Conclusion
|
||||
- [x] "This approach has helped reduce" -> "This approach reduces"
|
||||
- [x] "Remove comprehensive"
|
||||
|
||||
** Changes
|
||||
- [x] Fix image
|
||||
- [x] Integrate Jemalloc to Abstract and Intro
|
||||
- [x] Integrate to conclusion
|
||||
- [x] Fix Analysis
|
||||
- [ ] Read through the entire paper
|
||||
|
||||
|
||||
60
docs/RISCV-FAT/Paper/todo.org~
Normal file
@@ -0,0 +1,60 @@
|
||||
- [ ] Captilisation fixes
|
||||
- [ ] Check for unessary commas
|
||||
- [ ] Check references
|
||||
- [ ] Unify english grammer
|
||||
- [ ] Text make to italics (For function calls)
|
||||
- [ ] Space missing from bracket
|
||||
- [ ] Utlizing to using
|
||||
- [ ] Small number use word
|
||||
- [ ] Check for unusual amount of commas and
|
||||
String them into a sentence
|
||||
- [ ] Make all past tense to present tense
|
||||
- [ ] Comment out future work section
|
||||
- [ ] Section with always captial S
|
||||
- [ ] RMM fix reference
|
||||
|
||||
** Literature review
|
||||
- [ ] TLB reach needs defining
|
||||
- [ ] PTE acronym
|
||||
- [ ] Citation (HP Tunable page table)
|
||||
- [x] CHERI standardise bullet points into a
|
||||
paragraph.
|
||||
|
||||
** FAT address range table
|
||||
- [x] Sentence 1 remove "talks about"
|
||||
- [x] "Lesser pressure" FAT leverages to reduce pressure on the TLB
|
||||
- [x] Fix "as show" to "as shown"
|
||||
- [x] Remove "CHERI CC [4] as referred in section 3.2."
|
||||
to "CHERI CC [4] (section 3.2)"
|
||||
- [ ] Explain Cheri CC in the literature review
|
||||
- [x] Move Cheri CC reference to it has been observed
|
||||
- [ ] "With FAT rather than using fixed size TLB entries page sizes"
|
||||
Rephrase this sentence.
|
||||
- [x] "We use CHERI CC bounds to 344 be dynamic in
|
||||
size to be defined based on the size provided when
|
||||
345 calling malloc. Offering a more flexible
|
||||
alternative than fixed-size 346 TLB entries."
|
||||
Make this into 1 sentence.
|
||||
|
||||
- [x] "To build up based on Section 3.1 and 3.2."
|
||||
Remove this setence
|
||||
- [x] "As demonstrated
|
||||
384 with the allocator implementation in section 4"
|
||||
Remove this sentence
|
||||
- [x] "repcrecated" to "replicated"
|
||||
|
||||
** Malloc implementation
|
||||
- [ ] "Specifically, the start and end 448 addresses encoded in FAT to provide the necessary information 449 to identify the exact memory block to be deallocated."
|
||||
Rewrite this sentence
|
||||
|
||||
** Evaluation
|
||||
- [x] 2nd para move to benchmarks section
|
||||
- [x] "The results (section 5.3)... (comment out)
|
||||
- [x] "The expirement setup" comment out
|
||||
- [x] Replace "lesser" with fewer
|
||||
- [x] "This observation highlights the importance"
|
||||
Comment out
|
||||
|
||||
** Conclusion
|
||||
- [x] "This approach has helped reduce" -> "This approach reduces"
|
||||
- [x] "Remove comprehensive"
|
||||
101
docs/RISCV-FAT/Paper/todo.tex
Normal file
@@ -0,0 +1,101 @@
|
||||
% Created 2025-04-21 Mon 10:25
|
||||
% Intended LaTeX compiler: pdflatex
|
||||
\documentclass[11pt]{article}
|
||||
\usepackage[utf8]{inputenc}
|
||||
\usepackage[T1]{fontenc}
|
||||
\usepackage{graphicx}
|
||||
\usepackage{longtable}
|
||||
\usepackage{wrapfig}
|
||||
\usepackage{rotating}
|
||||
\usepackage[normalem]{ulem}
|
||||
\usepackage{amsmath}
|
||||
\usepackage{amssymb}
|
||||
\usepackage{capt-of}
|
||||
\usepackage{hyperref}
|
||||
\author{Akilan}
|
||||
\date{\today}
|
||||
\title{}
|
||||
\hypersetup{
|
||||
pdfauthor={Akilan},
|
||||
pdftitle={},
|
||||
pdfkeywords={},
|
||||
pdfsubject={},
|
||||
pdfcreator={Emacs 30.1 (Org mode 9.7.11)},
|
||||
pdflang={English}}
|
||||
\begin{document}
|
||||
|
||||
\tableofcontents
|
||||
|
||||
Recheck require read of the paper
|
||||
\section{General changes}
|
||||
\label{sec:org525fa77}
|
||||
\begin{itemize}
|
||||
\item Captilisation fixes
|
||||
\item Check for unessary commas (Requires read through paper)
|
||||
\item Check references (Last priority)
|
||||
\item Unify english grammer (emphasize -> Check british english spellings)
|
||||
\item Text make to italics (For function calls)
|
||||
\item Space missing from bracket
|
||||
\item Utlizing to using
|
||||
\item Small number use word
|
||||
\item Make all past tense to present tense (Recheck)
|
||||
\item Comment out future work section
|
||||
\item Section with always captial S
|
||||
\item RMM fix reference
|
||||
\end{itemize}
|
||||
\section{Literature review}
|
||||
\label{sec:org5f6e72b}
|
||||
\begin{itemize}
|
||||
\item TLB reach needs defining
|
||||
\item PTE acronym
|
||||
\item Citation (HP Tunable page table)
|
||||
\item CHERI standardise bullet points into a
|
||||
paragraph.
|
||||
\end{itemize}
|
||||
\section{FAT address range table}
|
||||
\label{sec:orgc1556d2}
|
||||
\begin{itemize}
|
||||
\item Sentence 1 remove "talks about"
|
||||
\item "Lesser pressure" FAT leverages to reduce pressure on the TLB
|
||||
\item Fix "as show" to "as shown"
|
||||
\item Remove "CHERI CC [4] as referred in section 3.2."
|
||||
to "CHERI CC [4] (section 3.2)"
|
||||
\item Explain Cheri CC in the literature review
|
||||
\item Move Cheri CC reference to it has been observed
|
||||
\item "With FAT rather than using fixed size TLB entries page sizes"
|
||||
Rephrase this sentence.
|
||||
\item "We use CHERI CC bounds to 344 be dynamic in
|
||||
size to be defined based on the size provided when
|
||||
345 calling malloc. Offering a more flexible
|
||||
alternative than fixed-size 346 TLB entries."
|
||||
Make this into 1 sentence.
|
||||
|
||||
\item "To build up based on Section 3.1 and 3.2."
|
||||
Remove this setence
|
||||
\item "As demonstrated with the allocator implementation in section 4"
|
||||
Remove this sentence
|
||||
\item "repcrecated" to "replicated"
|
||||
\end{itemize}
|
||||
\section{Malloc implementation}
|
||||
\label{sec:org8098e0d}
|
||||
\begin{itemize}
|
||||
\item "Specifically, the start and end addresses encoded in FAT to provide the necessary information to identify the exact memory block to be deallocated."
|
||||
Rewrite this sentence
|
||||
\end{itemize}
|
||||
\section{Evaluation}
|
||||
\label{sec:org67b48c5}
|
||||
\begin{itemize}
|
||||
\item 2nd para move to benchmarks section
|
||||
\item "The results (section 5.3)\ldots{} (comment out)
|
||||
\item "The expirement setup" comment out
|
||||
\item Replace "lesser" with fewer
|
||||
\item "This observation highlights the importance"
|
||||
Comment out
|
||||
\end{itemize}
|
||||
\section{Conclusion}
|
||||
\label{sec:orge940240}
|
||||
\begin{itemize}
|
||||
\item "This approach has helped reduce" -> "This approach reduces"
|
||||
\item "Remove comprehensive"
|
||||
\end{itemize}
|
||||
\end{document}
|
||||
1
docs/RISCV-FAT/Paper/track.txt
Normal file
@@ -0,0 +1 @@
|
||||
RMM
|
||||
385
docs/RISCV-FAT/README
Normal file
@@ -0,0 +1,385 @@
|
||||
This package provides a class for typesetting publications of the
|
||||
Association for Computing Machinery.
|
||||
|
||||
Your TeX distribution probably includes the latest released version of
|
||||
this package. If you decide to install it yourself, please see the
|
||||
Installation section of the User's Guide.
|
||||
|
||||
Please note that the version on Github is a development (or
|
||||
experimental) version: please download it for testing new features.
|
||||
The production version is the one on CTAN and ACM sites.
|
||||
|
||||
|
||||
Changes
|
||||
|
||||
Version 2.08. Section titles are in lowercase now.
|
||||
Documentation updates.
|
||||
|
||||
Version 2.07. Corrected typo in TELO eISSN.
|
||||
|
||||
Version 2.06. Added eISSN for a number of journals.
|
||||
ACM no longer collects or prints authors'
|
||||
postal addresses
|
||||
|
||||
Version 2.05 Changed title for TELO.
|
||||
|
||||
Version 2.04 Compatibility with the new latex-dev format
|
||||
eSSN is always printed, even if pSSN is present
|
||||
Wording change in copyright statement
|
||||
|
||||
Version 2.03 Cleaned generation of samples.
|
||||
New options for printing conference proceedings
|
||||
in ACM journals
|
||||
|
||||
Version 2.02 Documentation update.
|
||||
Changes in TOG templates
|
||||
Corrected typo in ACM/IMS journals
|
||||
|
||||
Version 2.01 \acmPrice now produces a warning.
|
||||
|
||||
Version 2.00 ACM switches to electronic only version.
|
||||
We do not print article tabs anymore.
|
||||
New copyright wording.
|
||||
Deleted \acmPrice.
|
||||
|
||||
Version 1.93 Added PACMSE
|
||||
|
||||
Version 1.92 Documentation update
|
||||
Emergency change: changed order of hyperref and hyperxmp
|
||||
due to changes in the undelying packages
|
||||
|
||||
Version 1.91 Minor changes in ACMCP format
|
||||
|
||||
Version 1.90a Changes in the sample keywords and concepts
|
||||
|
||||
Version 1.90 Journal ISSN updated
|
||||
|
||||
Version 1.89a Added version info to .bst
|
||||
|
||||
Version 1.89 Bug fixes
|
||||
Redesign of ACMCP
|
||||
New positioning of badges
|
||||
New journals: PACMMOD, TOPML
|
||||
|
||||
Version 1.88 New ISSNs
|
||||
Documentation updates
|
||||
New journal: PACMNET
|
||||
|
||||
Version 1.87 CC license is allowed for non-acm documents and ACM Engage
|
||||
documents only
|
||||
New format acmcp for the cover page
|
||||
New journals: JATS, ACMJCSS, TORS
|
||||
Bug fixes
|
||||
|
||||
Version 1.86. Empty country in affiliation now produces an error
|
||||
Bug fixes
|
||||
New samples for acmengage
|
||||
|
||||
Version 1.85. Bug fixes
|
||||
Added support for Creative Commons licenses (requires
|
||||
doclicense images)
|
||||
New journals
|
||||
New format acmengage for ACM Engage CSEdu course materials
|
||||
|
||||
Version 1.84 Support for BibLaTeX rewritten (thanks to
|
||||
Roberto Di Cosmo and Kartik Singhal)
|
||||
Corrected German translation (thanks to Dirk Beyer)
|
||||
New journals
|
||||
|
||||
Version 1.83 Support for multilanguage papers
|
||||
ISSN changes for some journals
|
||||
|
||||
Version 1.82 Bug fixes.
|
||||
New command \anon for anonymization of short strings.
|
||||
Documentation update.
|
||||
|
||||
Version 1.81 Bug fixes
|
||||
New bib field distinctURL to print URL even if doi is present.
|
||||
Reworded samples
|
||||
|
||||
Version 1.80 New journals: DLT, FAC
|
||||
|
||||
Version 1.79 Fixed pages with index
|
||||
(https://github.com/borisveytsman/acmart/issues/440)
|
||||
Updated information for TAP, TCPS, TEAC
|
||||
|
||||
Version 1.78 Documentation update.
|
||||
Magic texcount comments for samples.
|
||||
Title page now is split if there are too many authors
|
||||
Bug fixes.
|
||||
|
||||
Version 1.77 Changed the way to typeset multiple affiliations (Christoph Sommer)
|
||||
|
||||
Version 1.76 Added many journal abbreviations to the bst.
|
||||
New experimental option: pbalance
|
||||
ORCID linking code
|
||||
|
||||
Version 1.75 Omitted \country now produces error.
|
||||
Added \AtBeginMaketitle
|
||||
|
||||
Version 1.74 Bug fixes. A regression introduced in the font changes
|
||||
is reverted.
|
||||
|
||||
Version 1.73 Bug fixes
|
||||
The elements institution, city and country are now obligatory
|
||||
for affiliations. The absence of them produces a warning
|
||||
|
||||
Version 1.72 Bug fixes. Better handling of metadata.
|
||||
|
||||
Version 1.71 Bug fixes
|
||||
Formats sigchi and sigchi-a are retired
|
||||
Bibliography formatting changes for @inproceedings entries
|
||||
having both series and volume
|
||||
LuaLaTeX now uses the same OTF fonts as XeLaTeX
|
||||
|
||||
Version 1.70 Title change for ACM/IMS Transactions on Data Science
|
||||
Bug fixes for bibliography
|
||||
|
||||
Version 1.69 Bug fixes
|
||||
Compatibility with LaTeX 2020-02-02 release
|
||||
|
||||
Version 1.68 Bug fixes
|
||||
BST now recognizes words `Paper' or 'Article' in
|
||||
eid or articleno
|
||||
|
||||
Version 1.67 Urgent bug fixes:
|
||||
BibTeX style bug fixed (Michael D. Adams)
|
||||
Sigplan special section bugfix
|
||||
|
||||
Version 1.66 Bug fixes
|
||||
BibTeX change: location is now a synonym for city (Feras Saad)
|
||||
ACM reference format is now mandatory for papers over one page.
|
||||
CCS concepts and keywords are now mandatory for
|
||||
papers over two pages.
|
||||
Authors' addresses are mandatory for journal articles.
|
||||
|
||||
Version 1.65 Bug fixes
|
||||
New journal: DGOV
|
||||
DTRAP and HEALTH are now using acmlarge format
|
||||
|
||||
Version 1.64 Produce error if abstract is entered after maketitle
|
||||
(previously abstract was silently dropped)
|
||||
Bug fixes for line numbering
|
||||
|
||||
Version 1.63a Moved TQUANT to TQC
|
||||
|
||||
Version 1.63 New journals: TQUANT, FACMP
|
||||
|
||||
Version 1.62 Documentation update
|
||||
New journal: TELO
|
||||
Bug fixes
|
||||
|
||||
Version 1.61 Bug fixes
|
||||
New bibtex types for artifacts
|
||||
|
||||
Version 1.60 New option: urlbreakonhyphens (thanks to Peter Kemp)
|
||||
Smaller header size for acmsmall
|
||||
|
||||
Version 1.59 Now a journal format can be used for conference proceedings
|
||||
All samples are now generated from the same .dtx file
|
||||
Bug fixes
|
||||
|
||||
Version 1.58 Suppressed spurious warnings.
|
||||
New journal: HEALTH.
|
||||
TDSCI is renamed to TDS.
|
||||
|
||||
Version 1.57 Change of \baselinestretch now produces an error
|
||||
Booktabs is now always loaded
|
||||
Added option `balance' to balance last page in two-column mode
|
||||
E-mail is no longer split in addresses
|
||||
New samples (Stephen Spencer)
|
||||
|
||||
Version 1.56 Bug fixes
|
||||
Added \flushbottom to two column formats (Philip Quinn)
|
||||
The final punctuation for the list of concepts
|
||||
is now a period instead of a semicolon (Philip Quinn)
|
||||
New command \Description to describe images for visually
|
||||
impaired users.
|
||||
|
||||
Version 1.55 Bug fixes
|
||||
Font changes for SIGCHI table captions
|
||||
|
||||
Version 1.54 New option: 'nonacm' (Gabriel Scherer)
|
||||
Deleted indent for subsubsection (suggested by Ross Moore)
|
||||
Suppressed some obscurious warning in BibTeX processing
|
||||
Suppressed hyperrerf warnings (Paolo G. Giarrusso)
|
||||
New code for sections to help with accessibility patches
|
||||
(Ross Moore)
|
||||
Submission id, if present, is printed in anon mode
|
||||
Bug fixes
|
||||
|
||||
Version 1.53 New journals: PACMCGIT, TIOT, TDSCI
|
||||
|
||||
Version 1.52 Another rewording of licenses
|
||||
|
||||
Version 1.51 Journal footers now use abbreviated journal titles.
|
||||
Corrected the bug with acmPrice.
|
||||
Do not show price when copyright is set to iw3c2w3 and iw3c2w3g.
|
||||
The package now is compatible with polyglossia (Joachim Breitner).
|
||||
Slightly reworded copyright statements.
|
||||
|
||||
Version 1.50 Changes in iw3c2w3 and iw3c2w3g
|
||||
|
||||
Version 1.49 New jorunal: DTRAP
|
||||
|
||||
Version 1.48 Bug fixes
|
||||
Review mode now switches on folios
|
||||
Code prettying (Michael D. Adams)
|
||||
Bibliography changes: @MISC entries no longer have a
|
||||
separate date
|
||||
Sigch-a sample bibliography renamed
|
||||
Bib code cleanup (Zack Weinberg)
|
||||
Acmart and version info are added to pdfcreator tag
|
||||
\citeyear no longer produces parenthetical year
|
||||
Added initial support for Biblatex (Daniel Thomas)
|
||||
Added support for IW3C2 conferences
|
||||
|
||||
Version 1.47 New journal: THRI
|
||||
|
||||
Version 1.46 Bug fixes for bibliography: label width is now calculated
|
||||
correctly.
|
||||
All PACM now use screen option. This requires etoolbox.
|
||||
Added subtitle to ACM reference format.
|
||||
Now acmart is compatible with fontspec.
|
||||
\thanks is now obsolete. The addresses are automatically
|
||||
added to the journal version; this can be overriden with
|
||||
\authorsaddresses command.
|
||||
Deleted the rule at the end of frontmatter for all formats.
|
||||
Deleted new line before doi in the reference format.
|
||||
Reintegrated theorem code into acmart.dtx (Matthew Fluet)
|
||||
|
||||
Version 1.45 Workaround for a Libertine bug. Thanks to LianTze Lim
|
||||
from Overleaf
|
||||
|
||||
Version 1.44 Bug fixes.
|
||||
Empty DOI and ISBN suppress printing DOI or ISBN lines
|
||||
Separated theorem code into acmthm.sty, loaded by default.
|
||||
Article number can be set for proceedings.
|
||||
New commands: \acmBooktile, \editor.
|
||||
Reference citation format updated.
|
||||
|
||||
Version 1.43 Bug fixes
|
||||
|
||||
Version 1.42 Deleted ACM badges
|
||||
Bug fixes
|
||||
|
||||
Version 1.41 Rearranged bib files
|
||||
Added new badges
|
||||
|
||||
Version 1.40 Bibliography changes
|
||||
Added processing of one-compoment ccsdesc nodes
|
||||
Bug fixes.
|
||||
Made the height a multiple of \baselineskip + \topskip
|
||||
Added cleveref
|
||||
We no longer print street address in SIGs
|
||||
|
||||
Version 1.39 Added \authornotemark commmand
|
||||
|
||||
Version 1.38 Increase default font size for SIGPLAN
|
||||
|
||||
Version 1.37 Reduce list indentation (Matthew Fluet)
|
||||
|
||||
Version 1.36 Bug fixes
|
||||
Moved PACMPL to acmlarge format
|
||||
New journal: PACMHCI
|
||||
Added the possibility to adjust number of author
|
||||
boxes per row in conference formats
|
||||
|
||||
Version 1.35 Author-year bib style now uses square brackets.
|
||||
Changed defaults for TOG sample
|
||||
Price is suppressed for usgov and rightsretained modes.
|
||||
Bugs fixed
|
||||
|
||||
Version 1.34 Deleted DOI from doi numbers
|
||||
Changed bibstrip formatting
|
||||
The command \terms is now obsolete
|
||||
The rulers in review mode now have continuous numbering
|
||||
|
||||
Version 1.33 New option `timestamp' (Michael D. Adams)
|
||||
New option `authordraft'
|
||||
Documentation updates
|
||||
Bug fixes
|
||||
We now use Type 1 versions of Libertine fonts even with XeTeX.
|
||||
New hook acmart-preload-hook.tex (wizards only!)
|
||||
Added new options `obeypunctuation' for \affiliation command
|
||||
Added SubmissionID
|
||||
Added right line count ruler for two-column formats
|
||||
Added workaround for Adobe Acrobat bugs in selection
|
||||
Added eid field to the bibliography
|
||||
|
||||
Version 1.32 New DOI formatting.
|
||||
Format siggraph is now obsolete, and sigconf
|
||||
is used instead.
|
||||
New proceedings title: POMACS.
|
||||
|
||||
Version 1.31 Changed default year and month to the current ones
|
||||
(thanks to Matteo Riondato)
|
||||
Table of contents now works
|
||||
Marginalia now work in all formats
|
||||
New command \additionalaffiliation
|
||||
Documentation changes
|
||||
|
||||
Version 1.30 Bibtex style now recognizes https:// in doi.
|
||||
Added \frenchspacing.
|
||||
\department now has an optional hierarchy level.
|
||||
Switched to T1 encoding
|
||||
Updated IMWUT and PACMPL
|
||||
|
||||
Version 1.29 Documentation changes. Head height increased from 12pt to 13pt.
|
||||
Removed spurious indent at start of abstract.
|
||||
Improved kerning in CCS description list.
|
||||
|
||||
Version 1.28 Bug fixes: natbib=false now behaves correctly.
|
||||
|
||||
Version 1.27 Bug fixes
|
||||
|
||||
Version 1.26 Bug fixes
|
||||
|
||||
Version 1.25 Updated PACMPL journal option.
|
||||
|
||||
Version 1.24 Added IMWUT journal option.
|
||||
|
||||
Version 1.23 Added PACM PL journal option.
|
||||
|
||||
Version 1.22 Bibliography changes for Aptara backend; should be
|
||||
invisible for the users.
|
||||
|
||||
Version 1.21 Bibliography changes: added arXiv, some cleanup
|
||||
|
||||
Version 1.20 Bug fixes, documentation updates
|
||||
|
||||
Version 1.19 Include 'Abstract', 'Acknowledgements', and 'References'
|
||||
in PDF bookmarks.
|
||||
|
||||
Version 1.18 Natbib is now the default for all versions. A unified bib
|
||||
file is used for all styles. Better treatment
|
||||
of multiple affiliations.
|
||||
|
||||
|
||||
Version 1.17 Formatting changes for margins and lists. Bug fixes.
|
||||
|
||||
Version 1.16 Formatting changes for headers and footers.
|
||||
|
||||
Version 1.15 New structured affiliation command.
|
||||
New commands for acknowledgements.
|
||||
|
||||
Version 1.14 Warn about undefined citation styles; move definitions
|
||||
of acmauthoryear and acmnumeric citation styles before
|
||||
use.
|
||||
|
||||
Version 1.13 Formatting changes: headers, folios etc.
|
||||
Bibliography changes.
|
||||
|
||||
Version 1.12 Bug fixes and documentation updates.
|
||||
Footnotes rearranged.
|
||||
Option natbib is now mostly superfluous: the class
|
||||
makes a guess based on the format chosen.
|
||||
|
||||
Version 1.11 Customization of ACM theorem styles and proof
|
||||
environment (Matthew Fluet).
|
||||
|
||||
Version 1.10 Bug fixes
|
||||
|
||||
Version 1.09 SIGPLAN: revert caption rules (Matthew Fluet)
|
||||
|
||||
Version 1.08 SIGPLAN reformatting (Matthew Fluet); bug fixes
|
||||
BIN
docs/RISCV-FAT/acm-jdslogo.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
95
docs/RISCV-FAT/acmart.bib
Normal file
@@ -0,0 +1,95 @@
|
||||
@Misc{TeXFAQ,
|
||||
title = {{UK} List of {\TeX} Frequently Asked Questions},
|
||||
author = {{UK \TeX{} Users Group}},
|
||||
year = 2019,
|
||||
howpublished = {\url{https://texfaq.org}}
|
||||
}
|
||||
|
||||
@Manual{Downes04:amsart,
|
||||
title = {The \textsf{amsart}, \textsf{amsproc}, and
|
||||
\textsf{amsbook} document~classes},
|
||||
author = {Michael Downes and Barbara Beeton},
|
||||
organization = {American Mathematical Society},
|
||||
year = 2004,
|
||||
month = aug,
|
||||
note = {\url{http://www.ctan.org/pkg/amslatex}}
|
||||
}
|
||||
|
||||
@Manual{Fiorio15,
|
||||
title = {{a}lgorithm2e.sty---package for algorithms},
|
||||
author = {Cristophe Fiorio},
|
||||
year = 2015,
|
||||
month = oct,
|
||||
note = {\url{http://www.ctan.org/pkg/algorithm2e}}
|
||||
}
|
||||
|
||||
@Manual{Brito09,
|
||||
title = {The algorithms bundle},
|
||||
author = {Rog\'erio Brito},
|
||||
year = 2009,
|
||||
month = aug,
|
||||
note = {\url{http://www.ctan.org/pkg/algorithms}}
|
||||
}
|
||||
|
||||
@Manual{Heinz15,
|
||||
title = {The Listings Package},
|
||||
author = {Carsten Heinz and Brooks Moses and Jobst Hoffmann},
|
||||
year = 2015,
|
||||
month = jun,
|
||||
note = {\url{http://www.ctan.org/pkg/listings}}
|
||||
}
|
||||
|
||||
@Manual{Fear05,
|
||||
title = {Publication quality tables in {\LaTeX}},
|
||||
author = {Simon Fear},
|
||||
year = 2005,
|
||||
month = apr,
|
||||
note = {\url{http://www.ctan.org/pkg/booktabs}}
|
||||
}
|
||||
|
||||
@Manual{ACMIdentityStandards,
|
||||
title = {{ACM} Visual Identity Standards},
|
||||
organization = {Association for Computing Machinery},
|
||||
year = 2007,
|
||||
note = {\url{http://identitystandards.acm.org}}
|
||||
}
|
||||
|
||||
@Manual{Sommerfeldt13:Subcaption,
|
||||
title = {The subcaption package},
|
||||
author = {Axel Sommerfeldt},
|
||||
year = 2013,
|
||||
month = apr,
|
||||
note = {\url{http://www.ctan.org/pkg/subcaption}}
|
||||
}
|
||||
|
||||
@Manual{Nomencl,
|
||||
title = {A package to create a nomenclature},
|
||||
author = {Boris Veytsman and Bern Schandl and Lee Netherton
|
||||
and C. V. Radhakrishnan},
|
||||
year = 2005,
|
||||
month = sep,
|
||||
note = {\url{http://www.ctan.org/pkg/nomencl}}
|
||||
}
|
||||
|
||||
@Manual{Talbot16:Glossaries,
|
||||
title = {User Manual for glossaries.sty v4.44},
|
||||
author = {Nicola L. C. Talbot},
|
||||
year = 2019,
|
||||
month = dec,
|
||||
note = {\url{http://www.ctan.org/pkg/glossaries}}
|
||||
}
|
||||
|
||||
@Manual{Carlisle04:Textcase,
|
||||
title = {The \textsl{textcase} package},
|
||||
author = {David Carlisle},
|
||||
month = oct,
|
||||
year = 2004,
|
||||
note = {\url{http://www.ctan.org/pkg/textcase}}
|
||||
}
|
||||
|
||||
@Manual{Braams22:Babel,
|
||||
title = {Babel},
|
||||
author = {Johannes L. Braams and Javier Bezos},
|
||||
year = 2022,
|
||||
note = {\url{http://www.ctan.org/pkg/babel}}}
|
||||
|
||||
3579
docs/RISCV-FAT/acmart.cls
Normal file
8754
docs/RISCV-FAT/acmart.dtx
Normal file
30
docs/RISCV-FAT/acmart.ins
Normal file
@@ -0,0 +1,30 @@
|
||||
%
|
||||
% Doctrip file for acmart
|
||||
% This file is in public domain
|
||||
% $Id: acmart.ins,v 1.1 2015/11/23 22:42:55 boris Exp $
|
||||
%
|
||||
\def\batchfile{acmart.ins}
|
||||
\input docstrip
|
||||
\keepsilent
|
||||
\showprogress
|
||||
|
||||
|
||||
\askforoverwritefalse
|
||||
|
||||
\generate{%
|
||||
\file{acmart.cls}{\from{acmart.dtx}{class}}
|
||||
}
|
||||
|
||||
\obeyspaces
|
||||
\Msg{*****************************************************}%
|
||||
\Msg{* Congratulations! You successfully generated the *}%
|
||||
\Msg{* acmart package. *}%
|
||||
\Msg{* *}%
|
||||
\Msg{* Please move the file acmart.cls to where LaTeX *}%
|
||||
\Msg{* files are stored in your system. The manual is *}%
|
||||
\Msg{* acmart.pdf. *}%
|
||||
\Msg{* *}%
|
||||
\Msg{* The package is released under LPPL *}%
|
||||
\Msg{* *}%
|
||||
\Msg{* Happy TeXing! *}%
|
||||
\Msg{*****************************************************}%
|
||||
BIN
docs/RISCV-FAT/acmart.pdf
Normal file
900
docs/RISCV-FAT/acmauthoryear.bbx
Normal file
@@ -0,0 +1,900 @@
|
||||
\ProvidesFile{acmauthoryear.bbx}[2022-02-14 v0.1 biblatex bibliography style]
|
||||
|
||||
% Inherit a default style
|
||||
\RequireBibliographyStyle{authoryear-comp}
|
||||
|
||||
%%% New command definitions from trad-standard.bbx
|
||||
|
||||
\newcommand*{\newcommaunit}{\@ifstar\newcommaunitStar\newcommaunitNoStar}
|
||||
\newcommand*{\newcommaunitStar}{\setunit*{\addcomma\space}}
|
||||
\newcommand*{\newcommaunitNoStar}{\setunit{\addcomma\space}}
|
||||
|
||||
%%% Forward compatibility for date+extradate
|
||||
|
||||
\ifcsundef{ifbibmacroundef}{
|
||||
\ifcsundef{abx@macro@date+extradate}{ %%% For really really old biblatex that miss \ifbibmacroundef
|
||||
\blx@warning{bibmacro 'date+extradate' is missing.\MessageBreak
|
||||
Please consider updating your version of biblatex.\MessageBreak
|
||||
Using 'date+extrayear' instead}%
|
||||
\providebibmacro*{date+extradate}{\usebibmacro{date+extrayear}}
|
||||
}{}
|
||||
}
|
||||
{
|
||||
\ifbibmacroundef{date+extradate}{
|
||||
\blx@warning{bibmacro 'date+extradate' is missing.\MessageBreak
|
||||
Please consider updating your version of biblatex.\MessageBreak
|
||||
Using 'date+extrayear' instead}%
|
||||
\providebibmacro*{date+extradate}{\usebibmacro{date+extrayear}}
|
||||
}{}
|
||||
}
|
||||
|
||||
%%% Localisation strings for ACM
|
||||
|
||||
\DefineBibliographyStrings{american}{%
|
||||
mathesis = {Master's thesis},
|
||||
phdthesis = {Ph\adddot{}D\adddotspace Dissertation},
|
||||
editor = {(Ed\adddot)},
|
||||
editors = {(Eds\adddot)},
|
||||
edition = {ed\adddot},
|
||||
}
|
||||
|
||||
|
||||
|
||||
%%% Formatting for fields
|
||||
|
||||
%\DeclareFieldFormat
|
||||
% [article,inbook,incollection,inproceedings,patent,thesis,unpublished]
|
||||
% {title}{#1}
|
||||
\DeclareFieldFormat{pages}{#1}
|
||||
|
||||
\DeclareFieldFormat{numpages}{#1 pages}
|
||||
|
||||
\DeclareFieldFormat{number}{#1}
|
||||
|
||||
\DeclareFieldFormat{articleno}{Article #1}
|
||||
|
||||
\DeclareFieldFormat{key}{#1}
|
||||
|
||||
\DeclareFieldFormat{urldate}{Retrieved\space{}#1\space{}from}
|
||||
\DeclareFieldFormat{lastaccessed}{Retrieved\space{}#1\space{}from}
|
||||
|
||||
\DeclareFieldFormat{url}{\url{#1}}
|
||||
|
||||
\DeclareFieldFormat{edition}{%
|
||||
\printtext[parens]{\ifinteger{#1}
|
||||
{\mkbibordedition{#1}~\bibstring{edition}}
|
||||
{#1\isdot~\bibstring{edition}}}}
|
||||
|
||||
|
||||
% Handle urls field containing 'and' separated list of URLs
|
||||
% https://github.com/plk/biblatex/issues/229
|
||||
\DeclareListFormat{urls}{%
|
||||
\url{#1}%
|
||||
\ifthenelse{\value{listcount}<\value{liststop}}
|
||||
{\addcomma\space}
|
||||
{}}
|
||||
\renewbibmacro*{url}{\iffieldundef{url}{\printlist{urls}}{\printfield{url}}}
|
||||
|
||||
%%% Bibmacro definitions
|
||||
|
||||
\renewbibmacro*{translator+others}{%
|
||||
\ifboolexpr{
|
||||
test \ifusetranslator
|
||||
and
|
||||
not test {\ifnameundef{translator}}
|
||||
}
|
||||
{\printnames{translator}%
|
||||
\setunit{\addcomma\space}%
|
||||
\usebibmacro{translator+othersstrg}%
|
||||
\clearname{translator}}
|
||||
{\printfield{key}}}
|
||||
|
||||
\newbibmacro*{year}{%
|
||||
\iffieldundef{year}%
|
||||
{\printtext{[n.\ d.]}}%
|
||||
{\printfield{year}}%
|
||||
}
|
||||
|
||||
\renewbibmacro*{date}{\printtext[parens]{\printdate}}
|
||||
|
||||
|
||||
\renewbibmacro*{url+urldate}{\iffieldundef{urlyear}
|
||||
{\iffieldundef{lastaccessed}
|
||||
{}
|
||||
{\printfield{lastaccessed}%
|
||||
\setunit*{\addspace}}%
|
||||
}
|
||||
{\usebibmacro{urldate}%
|
||||
\setunit*{\addspace}}%
|
||||
\usebibmacro{url}%
|
||||
}
|
||||
|
||||
\renewbibmacro*{journal+issuetitle}{%
|
||||
\usebibmacro{journal}%
|
||||
\setunit*{\addcomma\space}%
|
||||
\iffieldundef{series}
|
||||
{}
|
||||
{\newunit%
|
||||
\printfield{series}%
|
||||
\setunit{\addspace}}%
|
||||
\usebibmacro{volume+number+date+pages+eid}%
|
||||
\newcommaunit%
|
||||
% \setunit{\addspace}%
|
||||
\usebibmacro{issue-issue}%
|
||||
\setunit*{\addcolon\space}%
|
||||
\usebibmacro{issue}%
|
||||
\newunit}
|
||||
|
||||
|
||||
|
||||
\newbibmacro*{volume+number+date+pages+eid}{%
|
||||
\printfield{volume}%
|
||||
\setunit*{\addcomma\space}%
|
||||
\printfield{number}%
|
||||
\setunit*{\addcomma\space}%
|
||||
\printfield{articleno}
|
||||
\setunit{\addcomma\space}
|
||||
\usebibmacro{date-ifmonth}
|
||||
\setunit{\addcomma\space}%
|
||||
\iffieldundef{pages}%
|
||||
{\printfield{numpages}}%
|
||||
{\printfield{pages}}%
|
||||
\newcommaunit%
|
||||
\printfield{eid}}%
|
||||
|
||||
\renewbibmacro*{chapter+pages}{%
|
||||
\printfield{chapter}%
|
||||
\setunit{\bibpagespunct}%
|
||||
\iffieldundef{pages}%
|
||||
{\printfield{numpages}}%
|
||||
{\printfield{pages}}%
|
||||
\newunit}
|
||||
|
||||
\renewbibmacro*{editor+others}{%
|
||||
\ifboolexpr{
|
||||
test \ifuseeditor
|
||||
and
|
||||
not test {\ifnameundef{editor}}
|
||||
}
|
||||
{\printnames{editor}%
|
||||
\setunit{\addcomma\space}%
|
||||
\usebibmacro{editor+othersstrg}%
|
||||
\clearname{editor}}
|
||||
{\iflistundef{organization}{}{\printlist{organization}}}
|
||||
\usebibmacro{date+extradate}
|
||||
}
|
||||
|
||||
|
||||
\newbibmacro*{issue-issue}{%
|
||||
\iffieldundef{issue}%
|
||||
{}%
|
||||
{\printfield{issue}%
|
||||
\setunit*{\addcomma\space}%
|
||||
\usebibmacro{date-ifmonth}%
|
||||
}%
|
||||
\newunit}
|
||||
|
||||
|
||||
|
||||
|
||||
\newbibmacro*{maintitle+booktitle+series+number}{%
|
||||
\iffieldundef{maintitle}
|
||||
{}
|
||||
{\usebibmacro{maintitle}%
|
||||
\newunit\newblock
|
||||
\iffieldundef{volume}
|
||||
{}
|
||||
{\printfield{volume}%
|
||||
\printfield{part}%
|
||||
\setunit{\addcolon\space}}}%
|
||||
\usebibmacro{booktitle}%
|
||||
\setunit*{\addspace}
|
||||
\printfield[parens]{series}%
|
||||
\setunit*{\addspace}%
|
||||
\printfield{number}%
|
||||
\setunit*{\addcomma\space}%
|
||||
\printfield{articleno}
|
||||
\newunit
|
||||
}
|
||||
|
||||
\renewbibmacro*{booktitle}{%
|
||||
\ifboolexpr{
|
||||
test {\iffieldundef{booktitle}}
|
||||
and
|
||||
test {\iffieldundef{booksubtitle}}
|
||||
}
|
||||
{}
|
||||
{\printtext[booktitle]{%
|
||||
\printfield[titlecase]{booktitle}%
|
||||
\iffieldundef{booksubtitle}{}{
|
||||
\setunit{\subtitlepunct}%
|
||||
\printfield[titlecase]{booksubtitle}}%
|
||||
}%
|
||||
}%
|
||||
\printfield{booktitleaddon}}
|
||||
|
||||
\renewbibmacro*{volume+number+eid}{%
|
||||
\printfield{volume}%
|
||||
\setunit*{\addcomma\space}%
|
||||
\printfield{number}%
|
||||
\setunit*{\addcomma\space}%
|
||||
\printfield{articleno}
|
||||
\setunit{\addcomma\space}%
|
||||
\printfield{eid}}
|
||||
|
||||
|
||||
\renewbibmacro*{publisher+location+date}{%
|
||||
\printlist{publisher}%
|
||||
\setunit*{\addcomma\space}%
|
||||
\printlist{location}%
|
||||
\setunit*{\addcomma\space}%
|
||||
\usebibmacro{date-ifmonth}%
|
||||
\newunit}
|
||||
|
||||
|
||||
\newbibmacro{date-ifmonth}{%
|
||||
\iffieldundef{month}{}{%
|
||||
\usebibmacro{date}
|
||||
}%
|
||||
}
|
||||
|
||||
|
||||
\renewbibmacro*{institution+location+date}{%
|
||||
\printlist{school}%
|
||||
\setunit*{\addcomma\space}%
|
||||
\printlist{institution}%
|
||||
\setunit*{\addcomma\space}%
|
||||
\printlist{location}%
|
||||
\setunit*{\addcomma\space}%
|
||||
\usebibmacro{date-ifmonth}%
|
||||
\newunit}
|
||||
|
||||
|
||||
\renewbibmacro*{periodical}{%
|
||||
\iffieldundef{title}
|
||||
{}
|
||||
{\printtext[title]{%
|
||||
\printfield[titlecase]{title}%
|
||||
\setunit{\subtitlepunct}%
|
||||
\printfield[titlecase]{subtitle}}}%
|
||||
\newunit%
|
||||
\usebibmacro{journal}}
|
||||
|
||||
\renewbibmacro*{issue+date}{%
|
||||
\iffieldundef{issue}
|
||||
{\usebibmacro{date}}
|
||||
{\printfield{issue}%
|
||||
\setunit*{\addspace}%
|
||||
\usebibmacro{date}}%
|
||||
\newunit}
|
||||
|
||||
\renewbibmacro*{title+issuetitle}{%
|
||||
\usebibmacro{periodical}%
|
||||
\setunit*{\addspace}%
|
||||
\iffieldundef{series}
|
||||
{}
|
||||
{\newunit
|
||||
\printfield{series}%
|
||||
\setunit{\addspace}}%
|
||||
\printfield{volume}%
|
||||
\setunit*{\addcomma\space}%
|
||||
\printfield{number}%
|
||||
\setunit*{\addcomma\space}%
|
||||
\printfield{articleno}
|
||||
\setunit{\addcomma\space}%
|
||||
\printfield{eid}%
|
||||
\setunit{\addspace}%
|
||||
\usebibmacro{issue+date}%
|
||||
\setunit{\addcolon\space}%
|
||||
\usebibmacro{issue}%
|
||||
\newunit}
|
||||
|
||||
\renewbibmacro*{doi+eprint+url}{%
|
||||
\iftoggle{bbx:url}
|
||||
{\iffieldundef{doi}{
|
||||
\usebibmacro{url+urldate}
|
||||
}{\iffieldundef{distinctURL}
|
||||
{}
|
||||
{\usebibmacro{url+urldate}}
|
||||
}
|
||||
}%
|
||||
\newunit\newblock
|
||||
\iftoggle{bbx:eprint}
|
||||
{\usebibmacro{eprint}}
|
||||
{}%
|
||||
\newunit\newblock
|
||||
\iftoggle{bbx:doi}
|
||||
{\printfield{doi}}
|
||||
{}}
|
||||
|
||||
|
||||
%%% Definitions for drivers (alphabetical)
|
||||
|
||||
|
||||
|
||||
\DeclareBibliographyDriver{article}{%
|
||||
\usebibmacro{bibindex}%
|
||||
\usebibmacro{begentry}%
|
||||
\usebibmacro{author/translator+others}%
|
||||
\setunit{\labelnamepunct}\newblock%
|
||||
\usebibmacro{title}%
|
||||
\newunit%
|
||||
\printlist{language}%
|
||||
\newunit\newblock%
|
||||
\usebibmacro{byauthor}%
|
||||
\newunit\newblock%
|
||||
\usebibmacro{bytranslator+others}%
|
||||
\newunit\newblock%
|
||||
\printfield{version}%
|
||||
\newunit\newblock%
|
||||
\usebibmacro{journal+issuetitle}%
|
||||
\newunit%
|
||||
\usebibmacro{byeditor+others}%
|
||||
\newunit%
|
||||
\printfield{note}%
|
||||
\newunit\newblock%
|
||||
\iftoggle{bbx:isbn}
|
||||
{\printfield{isbn}}
|
||||
{}%
|
||||
\newunit\newblock%
|
||||
\usebibmacro{doi+eprint+url}%
|
||||
\newunit\newblock%
|
||||
\usebibmacro{addendum+pubstate}%
|
||||
\setunit{\bibpagerefpunct}\newblock
|
||||
\usebibmacro{pageref}%
|
||||
\newunit\newblock%
|
||||
\usebibmacro{related}%
|
||||
\usebibmacro{finentry}}
|
||||
|
||||
|
||||
|
||||
\DeclareBibliographyDriver{book}{%
|
||||
\usebibmacro{bibindex}%
|
||||
\usebibmacro{begentry}%
|
||||
\usebibmacro{author/editor+others/translator+others}%
|
||||
\setunit{\labelnamepunct}\newblock
|
||||
\usebibmacro{maintitle+title}%
|
||||
\newunit%
|
||||
\printlist{language}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{byauthor}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{byeditor+others}%
|
||||
\newunit\newblock
|
||||
\printfield{edition}%
|
||||
\newunit
|
||||
\usebibmacro{series+number}%
|
||||
\iffieldundef{maintitle}
|
||||
{\printfield{volume}%
|
||||
\printfield{part}}
|
||||
{}%
|
||||
\newunit
|
||||
\newunit\newblock
|
||||
\printfield{volumes}%
|
||||
\newunit\newblock
|
||||
\printfield{note}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{publisher+location+date}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{chapter+pages}%
|
||||
\newunit
|
||||
\printfield{pagetotal}%
|
||||
\newunit\newblock
|
||||
\iftoggle{bbx:isbn}
|
||||
{\printfield{isbn}}
|
||||
{}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{doi+eprint+url}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{addendum+pubstate}%
|
||||
\setunit{\bibpagerefpunct}\newblock
|
||||
\usebibmacro{pageref}%
|
||||
\newunit\newblock
|
||||
\iftoggle{bbx:related}
|
||||
{\usebibmacro{related:init}%
|
||||
\usebibmacro{related}}
|
||||
{}%
|
||||
\usebibmacro{finentry}}
|
||||
|
||||
|
||||
|
||||
\DeclareBibliographyDriver{inbook}{%
|
||||
\usebibmacro{bibindex}%
|
||||
\usebibmacro{begentry}%
|
||||
\iffieldundef{author}%
|
||||
{\usebibmacro{byeditor+others}}%
|
||||
{\usebibmacro{author/translator+others}}%
|
||||
\setunit{\labelnamepunct}\newblock
|
||||
\usebibmacro{title}%
|
||||
\newunit
|
||||
\printlist{language}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{byauthor}%
|
||||
\newunit\newblock
|
||||
% \usebibmacro{in:}%
|
||||
\usebibmacro{bybookauthor}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{maintitle+booktitle}%
|
||||
\newunit\newblock
|
||||
\iffieldundef{author}{}%if undef then we already printed editor
|
||||
{\usebibmacro{byeditor+others}}%
|
||||
\newunit\newblock
|
||||
\printfield{edition}%
|
||||
\newunit
|
||||
\iffieldundef{maintitle}
|
||||
{\printfield{volume}%
|
||||
\printfield{part}}
|
||||
{}%
|
||||
\newunit
|
||||
\printfield{volumes}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{series+number}%
|
||||
\newunit\newblock
|
||||
\printfield{note}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{publisher+location+date}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{chapter+pages}%
|
||||
\newunit\newblock
|
||||
\iftoggle{bbx:isbn}
|
||||
{\printfield{isbn}}
|
||||
{}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{doi+eprint+url}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{addendum+pubstate}%
|
||||
\setunit{\bibpagerefpunct}\newblock
|
||||
\usebibmacro{pageref}%
|
||||
\newunit\newblock
|
||||
\iftoggle{bbx:related}
|
||||
{\usebibmacro{related:init}%
|
||||
\usebibmacro{related}}
|
||||
{}%
|
||||
\usebibmacro{finentry}}
|
||||
|
||||
|
||||
|
||||
\DeclareBibliographyDriver{incollection}{%
|
||||
\usebibmacro{bibindex}%
|
||||
\usebibmacro{begentry}%
|
||||
\usebibmacro{author/translator+others}%
|
||||
\setunit{\labelnamepunct}\newblock
|
||||
\usebibmacro{title}%
|
||||
\newunit
|
||||
\printlist{language}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{byauthor}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{in:}%
|
||||
\usebibmacro{maintitle+booktitle}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{series+number}%
|
||||
\newunit\newblock
|
||||
\printfield{edition}%
|
||||
\newunit
|
||||
\iffieldundef{maintitle}
|
||||
{\printfield{volume}%
|
||||
\printfield{part}}
|
||||
{}%
|
||||
\newunit
|
||||
\printfield{volumes}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{byeditor+others}%
|
||||
\newunit\newblock
|
||||
\printfield{note}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{publisher+location+date}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{chapter+pages}%
|
||||
\newunit\newblock
|
||||
\iftoggle{bbx:isbn}
|
||||
{\printfield{isbn}}
|
||||
{}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{doi+eprint+url}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{addendum+pubstate}%
|
||||
\setunit{\bibpagerefpunct}\newblock
|
||||
\usebibmacro{pageref}%
|
||||
\newunit\newblock
|
||||
\iftoggle{bbx:related}
|
||||
{\usebibmacro{related:init}%
|
||||
\usebibmacro{related}}
|
||||
{}%
|
||||
\usebibmacro{finentry}}
|
||||
|
||||
|
||||
|
||||
\DeclareBibliographyDriver{inproceedings}{%
|
||||
\usebibmacro{bibindex}%
|
||||
\usebibmacro{begentry}%
|
||||
\usebibmacro{author/translator+others}%
|
||||
\setunit{\labelnamepunct}\newblock
|
||||
\usebibmacro{title}%
|
||||
\newunit
|
||||
\printlist{language}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{byauthor}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{in:}%
|
||||
\usebibmacro{maintitle+booktitle+series+number}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{event+venue+date}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{byeditor+others}%
|
||||
\newunit\newblock
|
||||
\iffieldundef{maintitle}
|
||||
{\printfield{volume}%
|
||||
\printfield{part}}
|
||||
{}%
|
||||
\newunit
|
||||
\printfield{volumes}%
|
||||
\newunit\newblock
|
||||
\printfield{note}%
|
||||
\newunit\newblock
|
||||
\printlist{organization}%
|
||||
\newunit
|
||||
\usebibmacro{publisher+location+date}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{chapter+pages}%
|
||||
\newunit\newblock
|
||||
\iftoggle{bbx:isbn}
|
||||
{\printfield{isbn}}
|
||||
{}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{doi+eprint+url}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{addendum+pubstate}%
|
||||
\setunit{\bibpagerefpunct}\newblock
|
||||
\usebibmacro{pageref}%
|
||||
\newunit\newblock
|
||||
\iftoggle{bbx:related}
|
||||
{\usebibmacro{related:init}%
|
||||
\usebibmacro{related}}
|
||||
{}%
|
||||
\usebibmacro{finentry}}
|
||||
|
||||
|
||||
|
||||
\DeclareBibliographyDriver{manual}{%
|
||||
\usebibmacro{bibindex}%
|
||||
\usebibmacro{begentry}%
|
||||
\usebibmacro{author/editor+others}%
|
||||
\setunit{\labelnamepunct}\newblock
|
||||
\usebibmacro{title}%
|
||||
\newunit
|
||||
\printlist{language}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{byauthor}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{byeditor}%
|
||||
\newunit\newblock
|
||||
\printfield{edition}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{series+number}%
|
||||
\newunit\newblock
|
||||
\printfield{type}%
|
||||
\newunit
|
||||
\printfield{version}%
|
||||
\newunit
|
||||
\printfield{note}%
|
||||
\newunit\newblock
|
||||
\printlist{organization}%
|
||||
\newunit
|
||||
\usebibmacro{publisher+location+date}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{chapter+pages}%
|
||||
\newunit
|
||||
\printfield{pagetotal}%
|
||||
\newunit\newblock
|
||||
\iftoggle{bbx:isbn}
|
||||
{\printfield{isbn}}
|
||||
{}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{doi+eprint+url}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{addendum+pubstate}%
|
||||
\setunit{\bibpagerefpunct}\newblock
|
||||
\usebibmacro{pageref}%
|
||||
\newunit\newblock
|
||||
\iftoggle{bbx:related}
|
||||
{\usebibmacro{related:init}%
|
||||
\usebibmacro{related}}
|
||||
{}%
|
||||
\usebibmacro{finentry}}
|
||||
|
||||
|
||||
|
||||
\DeclareBibliographyDriver{misc}{%
|
||||
\usebibmacro{bibindex}%
|
||||
\usebibmacro{begentry}%
|
||||
\usebibmacro{author/editor+others/translator+others}%
|
||||
\setunit{\labelnamepunct}\newblock
|
||||
\usebibmacro{title}%
|
||||
\newunit
|
||||
\printlist{language}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{byauthor}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{byeditor+others}%
|
||||
\newunit\newblock
|
||||
\printfield{howpublished}%
|
||||
\newunit\newblock
|
||||
\printfield{type}%
|
||||
\newunit
|
||||
\printfield{version}%
|
||||
\newunit
|
||||
\printfield{note}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{organization+location+date}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{doi+eprint+url}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{addendum+pubstate}%
|
||||
\setunit{\bibpagerefpunct}\newblock
|
||||
\usebibmacro{pageref}%
|
||||
\newunit\newblock
|
||||
\iftoggle{bbx:related}
|
||||
{\usebibmacro{related:init}%
|
||||
\usebibmacro{related}}
|
||||
{}%
|
||||
\usebibmacro{finentry}}
|
||||
|
||||
|
||||
|
||||
\DeclareBibliographyDriver{online}{%
|
||||
\usebibmacro{bibindex}%
|
||||
\usebibmacro{begentry}%
|
||||
\usebibmacro{author/editor+others/translator+others}%
|
||||
\setunit{\labelnamepunct}\newblock
|
||||
\usebibmacro{title}%
|
||||
\newunit
|
||||
\printlist{language}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{byauthor}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{byeditor+others}%
|
||||
\newunit\newblock
|
||||
\printfield{version}%
|
||||
\newunit
|
||||
\printfield{note}%
|
||||
\newunit\newblock
|
||||
\printlist{organization}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{date-ifmonth}%
|
||||
\newunit\newblock
|
||||
\iftoggle{bbx:eprint}
|
||||
{\usebibmacro{eprint}}
|
||||
{}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{url+urldate}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{addendum+pubstate}%
|
||||
\setunit{\bibpagerefpunct}\newblock
|
||||
\usebibmacro{pageref}%
|
||||
\newunit\newblock
|
||||
\iftoggle{bbx:related}
|
||||
{\usebibmacro{related:init}%
|
||||
\usebibmacro{related}}
|
||||
{}%
|
||||
\usebibmacro{finentry}}
|
||||
|
||||
|
||||
|
||||
\DeclareFieldFormat[patent]{number}{Patent No.~#1}
|
||||
|
||||
\DeclareBibliographyDriver{patent}{%
|
||||
\usebibmacro{bibindex}%
|
||||
\usebibmacro{begentry}%
|
||||
\usebibmacro{author}%
|
||||
\setunit{\labelnamepunct}\newblock
|
||||
\usebibmacro{title}%
|
||||
\newunit
|
||||
\printlist{language}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{byauthor}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{date}%
|
||||
\newunit\newblock
|
||||
\printfield{type}%
|
||||
\setunit*{\addspace}%
|
||||
\printfield{number}%
|
||||
\iflistundef{location}
|
||||
{}
|
||||
{\setunit*{\addspace}%
|
||||
\printtext[parens]{%
|
||||
\printlist[][-\value{listtotal}]{location}}}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{byholder}%
|
||||
\newunit\newblock
|
||||
\printfield{note}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{doi+eprint+url}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{addendum+pubstate}%
|
||||
\setunit{\bibpagerefpunct}\newblock
|
||||
\usebibmacro{pageref}%
|
||||
\newunit\newblock
|
||||
\iftoggle{bbx:related}
|
||||
{\usebibmacro{related:init}%
|
||||
\usebibmacro{related}}
|
||||
{}%
|
||||
\usebibmacro{finentry}}
|
||||
|
||||
|
||||
|
||||
\DeclareBibliographyDriver{periodical}{%
|
||||
\usebibmacro{bibindex}%
|
||||
\usebibmacro{begentry}%
|
||||
\usebibmacro{editor}%
|
||||
\setunit{\labelnamepunct}\newblock
|
||||
\usebibmacro{title+issuetitle}%
|
||||
\newunit
|
||||
\printlist{language}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{byeditor}%
|
||||
\newunit\newblock
|
||||
\printfield{note}%
|
||||
\newunit\newblock
|
||||
\iftoggle{bbx:isbn}
|
||||
{\printfield{issn}}
|
||||
{}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{doi+eprint+url}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{addendum+pubstate}%
|
||||
\setunit{\bibpagerefpunct}\newblock
|
||||
\usebibmacro{pageref}%
|
||||
\newunit\newblock
|
||||
\iftoggle{bbx:related}
|
||||
{\usebibmacro{related:init}%
|
||||
\usebibmacro{related}}
|
||||
{}%
|
||||
\usebibmacro{finentry}}
|
||||
|
||||
|
||||
|
||||
\DeclareBibliographyDriver{report}{%
|
||||
\usebibmacro{bibindex}%
|
||||
\usebibmacro{begentry}%
|
||||
\usebibmacro{author}%
|
||||
\setunit{\labelnamepunct}\newblock
|
||||
\usebibmacro{title}%
|
||||
\newunit
|
||||
\printlist{language}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{byauthor}%
|
||||
\newunit\newblock
|
||||
\printfield{type}%
|
||||
\setunit*{\addspace}%
|
||||
\printfield{number}%
|
||||
\newunit\newblock
|
||||
\printfield{version}%
|
||||
\newunit
|
||||
\printfield{note}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{institution+location+date}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{chapter+pages}%
|
||||
\newunit
|
||||
\printfield{pagetotal}%
|
||||
\newunit\newblock
|
||||
\iftoggle{bbx:isbn}
|
||||
{\printfield{isrn}}
|
||||
{}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{doi+eprint+url}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{addendum+pubstate}%
|
||||
\setunit{\bibpagerefpunct}\newblock
|
||||
\usebibmacro{pageref}%
|
||||
\newunit\newblock
|
||||
\iftoggle{bbx:related}
|
||||
{\usebibmacro{related:init}%
|
||||
\usebibmacro{related}}
|
||||
{}%
|
||||
\usebibmacro{finentry}}
|
||||
|
||||
|
||||
|
||||
\DeclareBibliographyDriver{thesis}{%
|
||||
\usebibmacro{bibindex}%
|
||||
\usebibmacro{begentry}%
|
||||
\usebibmacro{author}%
|
||||
\setunit{\labelnamepunct}\newblock
|
||||
\usebibmacro{title}%
|
||||
\newunit
|
||||
\printlist{language}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{byauthor}%
|
||||
\newunit\newblock
|
||||
\printfield{type}%
|
||||
\newunit
|
||||
\usebibmacro{institution+location+date}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{chapter+pages}%
|
||||
\newunit
|
||||
\printfield{pagetotal}%
|
||||
\newunit\newblock
|
||||
\iftoggle{bbx:isbn}
|
||||
{\printfield{isbn}}
|
||||
{}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{doi+eprint+url}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{addendum+pubstate}%
|
||||
\setunit{\bibpagerefpunct}\newblock
|
||||
\usebibmacro{pageref}%
|
||||
\newunit\newblock
|
||||
\printfield{note}%
|
||||
\newunit\newblock
|
||||
\iftoggle{bbx:related}
|
||||
{\usebibmacro{related:init}%
|
||||
\usebibmacro{related}}
|
||||
{}%
|
||||
\usebibmacro{finentry}}
|
||||
|
||||
%
|
||||
% Include support for software entries
|
||||
%
|
||||
\blx@inputonce{software.bbx}{biblatex style for software}{}{}{}{}
|
||||
|
||||
%
|
||||
% Handle ACM specific ArtifactSoftware entry exactly as the software entry (a soft alias will not work)
|
||||
%
|
||||
\DeclareStyleSourcemap{
|
||||
\maps[datatype=bibtex]{
|
||||
\map{
|
||||
\step[typesource=artifactsoftware,typetarget=software]
|
||||
\step[typesource=artifactdataset,typetarget=dataset]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
%%% Compatibility with ACM bibtex formatting
|
||||
|
||||
|
||||
%
|
||||
% Show given name first in the reference list
|
||||
%
|
||||
\DeclareNameAlias{sortname}{given-family}
|
||||
|
||||
%
|
||||
% Produce a bibliography with small font size
|
||||
%
|
||||
\renewcommand*{\bibfont}{\bibliofont\footnotesize}
|
||||
|
||||
%
|
||||
% Remove parentheses from date+extradate
|
||||
%
|
||||
\RequirePackage{xpatch}
|
||||
\xpatchbibmacro{date+extradate}{%
|
||||
\printtext[parens]%
|
||||
}{%
|
||||
\newblock\setunit*{.\space}%
|
||||
\printtext%
|
||||
}{}{}
|
||||
|
||||
|
||||
%%% Set option values for ACM style
|
||||
|
||||
\ExecuteBibliographyOptions{
|
||||
dashed=false, % Do not use dashes for bibliography items with the same set of authors
|
||||
labeldate=year,
|
||||
abbreviate=true,
|
||||
dateabbrev=true,
|
||||
isbn=true,
|
||||
doi=true,
|
||||
urldate=comp,
|
||||
url=true,
|
||||
maxbibnames=9,
|
||||
maxcitenames=2,
|
||||
backref=false,
|
||||
sorting=nty,
|
||||
halid=true,
|
||||
swhid=true,
|
||||
swlabels=true,
|
||||
vcs=true,
|
||||
license=false,
|
||||
language=american
|
||||
}
|
||||
219
docs/RISCV-FAT/acmauthoryear.cbx
Normal file
@@ -0,0 +1,219 @@
|
||||
\ProvidesFile{acmauthoryear.cbx}[2022-02-14 v0.1]
|
||||
|
||||
\RequireCitationStyle{authoryear-comp}
|
||||
\RequirePackage{xpatch}
|
||||
|
||||
%
|
||||
% Hyperlink citations like acmart natbib implementation
|
||||
%
|
||||
% From https://tex.stackexchange.com/a/27615/133551
|
||||
|
||||
% Combine label and labelyear links
|
||||
\xpatchbibmacro{cite}
|
||||
{\usebibmacro{cite:label}%
|
||||
\setunit{\printdelim{nonameyeardelim}}%
|
||||
\usebibmacro{cite:labeldate+extradate}}
|
||||
{\printtext[bibhyperref]{%
|
||||
\DeclareFieldAlias{bibhyperref}{default}%
|
||||
\usebibmacro{cite:label}%
|
||||
\setunit{\printdelim{nonameyeardelim}}%
|
||||
\usebibmacro{cite:labeldate+extradate}}}
|
||||
{}
|
||||
{\PackageWarning{biblatex-patch}
|
||||
{Failed to patch cite bibmacro}}
|
||||
|
||||
% Include labelname in labelyear link
|
||||
\xpatchbibmacro{cite}
|
||||
{\printnames{labelname}%
|
||||
\setunit{\printdelim{nameyeardelim}}%
|
||||
\usebibmacro{cite:labeldate+extradate}}
|
||||
{\printtext[bibhyperref]{%
|
||||
\DeclareFieldAlias{bibhyperref}{default}%
|
||||
\printnames{labelname}%
|
||||
\setunit{\printdelim{nameyeardelim}}%
|
||||
\usebibmacro{cite:labeldate+extradate}}}
|
||||
{}
|
||||
{\PackageWarning{biblatex-patch}
|
||||
{Failed to patch cite bibmacro}}
|
||||
|
||||
\renewbibmacro*{textcite}{%
|
||||
\iffieldequals{namehash}{\cbx@lasthash}
|
||||
{\iffieldundef{shorthand}
|
||||
{\ifthenelse{\iffieldequals{labelyear}{\cbx@lastyear}\AND
|
||||
\(\value{multicitecount}=0\OR\iffieldundef{postnote}\)}
|
||||
{\setunit{\addcomma}%
|
||||
\usebibmacro{cite:extradate}}
|
||||
{\setunit{\compcitedelim}%
|
||||
\usebibmacro{cite:labeldate+extradate}%
|
||||
\savefield{labelyear}{\cbx@lastyear}}}
|
||||
{\setunit{\compcitedelim}%
|
||||
\usebibmacro{cite:shorthand}%
|
||||
\global\undef\cbx@lastyear}}
|
||||
{\ifnameundef{labelname}
|
||||
{\iffieldundef{shorthand}
|
||||
{\usebibmacro{cite:label}%
|
||||
\setunit{%
|
||||
\global\booltrue{cbx:parens}%
|
||||
\printdelim{nonameyeardelim}\bibopenbracket}%
|
||||
\ifnumequal{\value{citecount}}{1}
|
||||
{\usebibmacro{prenote}}
|
||||
{}%
|
||||
\usebibmacro{cite:labeldate+extradate}}
|
||||
{\usebibmacro{cite:shorthand}}}
|
||||
{\printnames{labelname}%
|
||||
\setunit{%
|
||||
\global\booltrue{cbx:parens}%
|
||||
\printdelim{nameyeardelim}\bibopenbracket}%
|
||||
\ifnumequal{\value{citecount}}{1}
|
||||
{\usebibmacro{prenote}}
|
||||
{}%
|
||||
\iffieldundef{shorthand}
|
||||
{\iffieldundef{labelyear}
|
||||
{\usebibmacro{cite:label}}
|
||||
{\usebibmacro{cite:labeldate+extradate}}%
|
||||
\savefield{labelyear}{\cbx@lastyear}}
|
||||
{\usebibmacro{cite:shorthand}%
|
||||
\global\undef\cbx@lastyear}}%
|
||||
\stepcounter{textcitecount}%
|
||||
\savefield{namehash}{\cbx@lasthash}}%
|
||||
\setunit{%
|
||||
\ifbool{cbx:parens}
|
||||
{\bibclosebracket\global\boolfalse{cbx:parens}}
|
||||
{}%
|
||||
\textcitedelim}}
|
||||
|
||||
\xpatchbibmacro{textcite}
|
||||
{\printnames{labelname}}
|
||||
{\printtext[bibhyperref]{\printnames{labelname}}}
|
||||
{}
|
||||
{\PackageWarning{biblatex-patch}
|
||||
{Failed to patch textcite bibmacro}}
|
||||
|
||||
\renewbibmacro*{textcite:postnote}{%
|
||||
\usebibmacro{postnote}%
|
||||
\ifthenelse{\value{multicitecount}=\value{multicitetotal}}
|
||||
{\setunit{}%
|
||||
\printtext{%
|
||||
\ifbool{cbx:parens}
|
||||
{\bibclosebracket\global\boolfalse{cbx:parens}}
|
||||
{}}}
|
||||
{\setunit{%
|
||||
\ifbool{cbx:parens}
|
||||
{\bibclosebracket\global\boolfalse{cbx:parens}}
|
||||
{}%
|
||||
\textcitedelim}}}
|
||||
|
||||
% NEW
|
||||
\newbibmacro*{citeauthor}{%
|
||||
\ifnameundef{labelname}
|
||||
{\iffieldundef{shorthand}
|
||||
{\printtext[bibhyperref]{%
|
||||
\usebibmacro{cite:label}}%
|
||||
\setunit{%
|
||||
\global\booltrue{cbx:parens}%
|
||||
\printdelim{nonameyeardelim}\bibopenbracket}%
|
||||
\ifnumequal{\value{citecount}}{1}
|
||||
{\usebibmacro{prenote}}
|
||||
{}%
|
||||
\printtext[bibhyperref]{\usebibmacro{cite:labeldate+extradate}}}
|
||||
{\printtext[bibhyperref]{\usebibmacro{cite:shorthand}}}}
|
||||
\printtext[bibhyperref]{\printnames{labelname}}}
|
||||
|
||||
%
|
||||
% Put brackets around citations
|
||||
%
|
||||
|
||||
\DeclareCiteCommand{\cite}[\mkbibbrackets]
|
||||
{\usebibmacro{cite:init}%
|
||||
\usebibmacro{prenote}}
|
||||
{\usebibmacro{citeindex}%
|
||||
\usebibmacro{cite}}
|
||||
{}
|
||||
{\usebibmacro{postnote}}
|
||||
|
||||
\DeclareCiteCommand*{\cite}[\mkbibbrackets]
|
||||
{\usebibmacro{cite:init}%
|
||||
\usebibmacro{prenote}}
|
||||
{\usebibmacro{citeindex}%
|
||||
\usebibmacro{citeyear}}
|
||||
{}
|
||||
{\usebibmacro{postnote}}
|
||||
|
||||
\DeclareCiteCommand{\parencite}[\mkbibbrackets]
|
||||
{\usebibmacro{cite:init}%
|
||||
\usebibmacro{prenote}}
|
||||
{\usebibmacro{citeindex}%
|
||||
\usebibmacro{cite}}
|
||||
{}
|
||||
{\usebibmacro{postnote}}
|
||||
|
||||
\DeclareCiteCommand*{\parencite}[\mkbibbrackets]
|
||||
{\usebibmacro{cite:init}%
|
||||
\usebibmacro{prenote}}
|
||||
{\usebibmacro{citeindex}%
|
||||
\usebibmacro{citeyear}}
|
||||
{}
|
||||
{\usebibmacro{postnote}}
|
||||
|
||||
\DeclareMultiCiteCommand{\parencites}[\mkbibbrackets]{\parencite}
|
||||
{\setunit{\multicitedelim}}
|
||||
|
||||
\DeclareCiteCommand{\footcite}[\mkbibfootnote]
|
||||
{\usebibmacro{cite:init}%
|
||||
\usebibmacro{prenote}}
|
||||
{\usebibmacro{citeindex}%
|
||||
\usebibmacro{cite}}
|
||||
{}
|
||||
{\usebibmacro{postnote}}
|
||||
|
||||
\DeclareCiteCommand{\footcitetext}[\mkbibfootnotetext]
|
||||
{\usebibmacro{cite:init}%
|
||||
\usebibmacro{prenote}}
|
||||
{\usebibmacro{citeindex}%
|
||||
\usebibmacro{cite}}
|
||||
{}
|
||||
{\usebibmacro{postnote}}
|
||||
|
||||
\DeclareCiteCommand{\smartcite}[\iffootnote\mkbibbrackets\mkbibfootnote]
|
||||
{\usebibmacro{cite:init}%
|
||||
\usebibmacro{prenote}}
|
||||
{\usebibmacro{citeindex}%
|
||||
\usebibmacro{cite}}
|
||||
{}
|
||||
{\usebibmacro{postnote}}
|
||||
|
||||
\DeclareMultiCiteCommand{\smartcites}[\iffootnote\mkbibbrackets\mkbibfootnote]
|
||||
{\smartcite}{\setunit{\multicitedelim}}
|
||||
|
||||
\DeclareCiteCommand{\citeauthor}
|
||||
{\usebibmacro{cite:init}%
|
||||
\usebibmacro{prenote}}
|
||||
{\usebibmacro{citeindex}%
|
||||
\usebibmacro{citeauthor}}
|
||||
{}
|
||||
{\usebibmacro{postnote}}
|
||||
|
||||
\DeclareCiteCommand{\citeyear}
|
||||
{\usebibmacro{cite:init}%
|
||||
\usebibmacro{prenote}}
|
||||
{\usebibmacro{citeindex}%
|
||||
\usebibmacro{citeyear}}
|
||||
{}
|
||||
{\usebibmacro{postnote}}
|
||||
|
||||
\DeclareCiteCommand{\citeyearpar}[\mkbibbrackets]
|
||||
{\usebibmacro{cite:init}%
|
||||
\usebibmacro{prenote}}
|
||||
{\usebibmacro{citeindex}%
|
||||
\usebibmacro{citeyear}}
|
||||
{}
|
||||
{\usebibmacro{postnote}}
|
||||
|
||||
%
|
||||
% Provide aliases for natbib-compatible commands
|
||||
%
|
||||
\newcommand*{\citep}{\parencite}
|
||||
\newcommand*{\citet}{\textcite}
|
||||
% add others here
|
||||
|
||||
\endinput
|
||||
33
docs/RISCV-FAT/acmdatamodel.dbx
Normal file
@@ -0,0 +1,33 @@
|
||||
% Teach biblatex about numpages field
|
||||
\DeclareDatamodelFields[type=field, datatype=literal]{numpages}
|
||||
\DeclareDatamodelEntryfields{numpages}
|
||||
|
||||
% Teach biblatex about articleno field
|
||||
\DeclareDatamodelFields[type=field, datatype=literal]{articleno}
|
||||
\DeclareDatamodelEntryfields{articleno}
|
||||
|
||||
% Teach biblatex about urls field
|
||||
\DeclareDatamodelFields[type=list, datatype=uri]{urls}
|
||||
\DeclareDatamodelEntryfields{urls}
|
||||
|
||||
% Teach biblatex about school field
|
||||
\DeclareDatamodelFields[type=list, datatype=literal]{school}
|
||||
\DeclareDatamodelEntryfields[thesis]{school}
|
||||
|
||||
\DeclareDatamodelFields[type=field, datatype=literal]{key}
|
||||
\DeclareDatamodelEntryfields{key}
|
||||
|
||||
% Teach biblatex about lastaccessed field
|
||||
\DeclareDatamodelFields[type=field,datatype=literal]{lastaccessed}
|
||||
\DeclareDatamodelEntryfields{lastaccessed}
|
||||
|
||||
% Teach biblatex about distincturl field
|
||||
\DeclareDatamodelFields[type=field, datatype=literal]{distinctURL}
|
||||
\DeclareDatamodelEntryfields{distinctURL}
|
||||
|
||||
|
||||
%
|
||||
% include software data model from biblatex-software
|
||||
%
|
||||
|
||||
\blx@inputonce{software.dbx}{biblatex data model extension for software}{}{}{}{}
|
||||
BIN
docs/RISCV-FAT/acmguide.pdf
Normal file
885
docs/RISCV-FAT/acmnumeric.bbx
Normal file
@@ -0,0 +1,885 @@
|
||||
\ProvidesFile{acmnumeric.bbx}[2017-09-27 v0.1 biblatex bibliography style]
|
||||
|
||||
% Inherit a default style
|
||||
\RequireBibliographyStyle{trad-plain}
|
||||
|
||||
|
||||
|
||||
%%% Localisation strings for ACM
|
||||
|
||||
\DefineBibliographyStrings{american}{%
|
||||
mathesis = {Master's thesis},
|
||||
phdthesis = {Ph\adddot{}D\adddotspace Dissertation},
|
||||
editor = {(Ed\adddot)},
|
||||
editors = {(Eds\adddot)},
|
||||
edition = {ed\adddot},
|
||||
}
|
||||
|
||||
|
||||
|
||||
%%% Formatting for fields
|
||||
|
||||
%\DeclareFieldFormat
|
||||
% [article,inbook,incollection,inproceedings,patent,thesis,unpublished]
|
||||
% {title}{#1}
|
||||
\DeclareFieldFormat{pages}{#1}
|
||||
|
||||
\DeclareFieldFormat{numpages}{#1 pages}
|
||||
|
||||
\DeclareFieldFormat{number}{#1}
|
||||
|
||||
\DeclareFieldFormat{articleno}{Article #1}
|
||||
|
||||
\DeclareFieldFormat{key}{#1}
|
||||
|
||||
\DeclareFieldFormat{urldate}{Retrieved\space{}#1\space{}from}
|
||||
\DeclareFieldFormat{lastaccessed}{Retrieved\space{}#1\space{}from}
|
||||
|
||||
\DeclareFieldFormat{url}{\url{#1}}
|
||||
|
||||
\DeclareFieldFormat{edition}{%
|
||||
\printtext[parens]{\ifinteger{#1}
|
||||
{\mkbibordedition{#1}~\bibstring{edition}}
|
||||
{#1\isdot~\bibstring{edition}}}}
|
||||
|
||||
|
||||
% Handle urls field containing 'and' separated list of URLs
|
||||
% https://github.com/plk/biblatex/issues/229
|
||||
\DeclareListFormat{urls}{%
|
||||
\url{#1}%
|
||||
\ifthenelse{\value{listcount}<\value{liststop}}
|
||||
{\addcomma\space}
|
||||
{}}
|
||||
\renewbibmacro*{url}{\iffieldundef{url}{\printlist{urls}}{\printfield{url}}}
|
||||
|
||||
|
||||
|
||||
%%% Bibmacro definitions
|
||||
|
||||
\renewbibmacro*{translator+others}{%
|
||||
\ifboolexpr{
|
||||
test \ifusetranslator
|
||||
and
|
||||
not test {\ifnameundef{translator}}
|
||||
}
|
||||
{\printnames{translator}%
|
||||
\setunit{\addcomma\space}%
|
||||
\usebibmacro{translator+othersstrg}%
|
||||
\clearname{translator}}
|
||||
{\printfield{key}}}
|
||||
|
||||
\newbibmacro*{year}{%
|
||||
\iffieldundef{year}%
|
||||
{\printtext{[n.\ d.]}}%
|
||||
{\printfield{year}}%
|
||||
}
|
||||
|
||||
\renewbibmacro*{date}{\printtext[parens]{\printdate}}
|
||||
|
||||
|
||||
\renewbibmacro*{url+urldate}{\iffieldundef{urlyear}
|
||||
{\iffieldundef{lastaccessed}
|
||||
{}
|
||||
{\printfield{lastaccessed}%
|
||||
\setunit*{\addspace}}%
|
||||
}
|
||||
{\usebibmacro{urldate}%
|
||||
\setunit*{\addspace}}%
|
||||
\usebibmacro{url}%
|
||||
}
|
||||
|
||||
\renewbibmacro*{journal+issuetitle}{%
|
||||
\usebibmacro{journal}%
|
||||
\setunit*{\addcomma\space}%
|
||||
\iffieldundef{series}
|
||||
{}
|
||||
{\newunit%
|
||||
\printfield{series}%
|
||||
\setunit{\addspace}}%
|
||||
\usebibmacro{volume+number+date+pages+eid}%
|
||||
\newcommaunit%
|
||||
% \setunit{\addspace}%
|
||||
\usebibmacro{issue-issue}%
|
||||
\setunit*{\addcolon\space}%
|
||||
\usebibmacro{issue}%
|
||||
\newunit}
|
||||
|
||||
|
||||
|
||||
\newbibmacro*{volume+number+date+pages+eid}{%
|
||||
\printfield{volume}%
|
||||
\setunit*{\addcomma\space}%
|
||||
\printfield{number}%
|
||||
\setunit*{\addcomma\space}%
|
||||
\printfield{articleno}
|
||||
\setunit{\addcomma\space}
|
||||
\usebibmacro{date-ifmonth}
|
||||
\setunit{\addcomma\space}%
|
||||
\iffieldundef{pages}%
|
||||
{\printfield{numpages}}%
|
||||
{\printfield{pages}}%
|
||||
\newcommaunit%
|
||||
\printfield{eid}}%
|
||||
|
||||
\renewbibmacro*{chapter+pages}{%
|
||||
\printfield{chapter}%
|
||||
\setunit{\bibpagespunct}%
|
||||
\iffieldundef{pages}%
|
||||
{\printfield{numpages}}%
|
||||
{\printfield{pages}}%
|
||||
\newunit}
|
||||
|
||||
\renewbibmacro*{editor+others}{%
|
||||
\ifboolexpr{
|
||||
test \ifuseeditor
|
||||
and
|
||||
not test {\ifnameundef{editor}}
|
||||
}
|
||||
{\printnames{editor}%
|
||||
\setunit{\addcomma\space}%
|
||||
\usebibmacro{editor+othersstrg}%
|
||||
\clearname{editor}}
|
||||
{\iflistundef{organization}{}{\printlist{organization}}}}
|
||||
|
||||
|
||||
\newbibmacro*{issue-issue}{%
|
||||
\iffieldundef{issue}%
|
||||
{}%
|
||||
{\printfield{issue}%
|
||||
\setunit*{\addcomma\space}%
|
||||
\usebibmacro{date-ifmonth}%
|
||||
}%
|
||||
\newunit}
|
||||
|
||||
|
||||
|
||||
|
||||
\newbibmacro*{maintitle+booktitle+series+number}{%
|
||||
\iffieldundef{maintitle}
|
||||
{}
|
||||
{\usebibmacro{maintitle}%
|
||||
\newunit\newblock
|
||||
\iffieldundef{volume}
|
||||
{}
|
||||
{\printfield{volume}%
|
||||
\printfield{part}%
|
||||
\setunit{\addcolon\space}}}%
|
||||
\usebibmacro{booktitle}%
|
||||
\setunit*{\addspace}
|
||||
\printfield[parens]{series}%
|
||||
\setunit*{\addspace}%
|
||||
\printfield{number}%
|
||||
\setunit*{\addcomma\space}%
|
||||
\printfield{articleno}
|
||||
\newunit
|
||||
}
|
||||
|
||||
\renewbibmacro*{booktitle}{%
|
||||
\ifboolexpr{
|
||||
test {\iffieldundef{booktitle}}
|
||||
and
|
||||
test {\iffieldundef{booksubtitle}}
|
||||
}
|
||||
{}
|
||||
{\printtext[booktitle]{%
|
||||
\printfield[titlecase]{booktitle}%
|
||||
\iffieldundef{booksubtitle}{}{
|
||||
\setunit{\subtitlepunct}%
|
||||
\printfield[titlecase]{booksubtitle}}%
|
||||
}%
|
||||
}%
|
||||
\printfield{booktitleaddon}}
|
||||
|
||||
\renewbibmacro*{volume+number+eid}{%
|
||||
\printfield{volume}%
|
||||
\setunit*{\addcomma\space}%
|
||||
\printfield{number}%
|
||||
\setunit*{\addcomma\space}%
|
||||
\printfield{articleno}
|
||||
\setunit{\addcomma\space}%
|
||||
\printfield{eid}}
|
||||
|
||||
|
||||
\renewbibmacro*{publisher+location+date}{%
|
||||
\printlist{publisher}%
|
||||
\setunit*{\addcomma\space}%
|
||||
\printlist{location}%
|
||||
\setunit*{\addcomma\space}%
|
||||
\usebibmacro{date-ifmonth}%
|
||||
\newunit}
|
||||
|
||||
|
||||
\newbibmacro{date-ifmonth}{%
|
||||
\iffieldundef{month}{}{%
|
||||
\usebibmacro{date}
|
||||
}%
|
||||
}
|
||||
|
||||
|
||||
\renewbibmacro*{institution+location+date}{%
|
||||
\printlist{school}%
|
||||
\setunit*{\addcomma\space}%
|
||||
\printlist{institution}%
|
||||
\setunit*{\addcomma\space}%
|
||||
\printlist{location}%
|
||||
\setunit*{\addcomma\space}%
|
||||
\usebibmacro{date-ifmonth}%
|
||||
\newunit}
|
||||
|
||||
|
||||
\renewbibmacro*{periodical}{%
|
||||
\iffieldundef{title}
|
||||
{}
|
||||
{\printtext[title]{%
|
||||
\printfield[titlecase]{title}%
|
||||
\setunit{\subtitlepunct}%
|
||||
\printfield[titlecase]{subtitle}}}%
|
||||
\newunit%
|
||||
\usebibmacro{journal}}
|
||||
|
||||
\renewbibmacro*{issue+date}{%
|
||||
\iffieldundef{issue}
|
||||
{\usebibmacro{date}}
|
||||
{\printfield{issue}%
|
||||
\setunit*{\addspace}%
|
||||
\usebibmacro{date}}%
|
||||
\newunit}
|
||||
|
||||
\renewbibmacro*{title+issuetitle}{%
|
||||
\usebibmacro{periodical}%
|
||||
\setunit*{\addspace}%
|
||||
\iffieldundef{series}
|
||||
{}
|
||||
{\newunit
|
||||
\printfield{series}%
|
||||
\setunit{\addspace}}%
|
||||
\printfield{volume}%
|
||||
\setunit*{\addcomma\space}%
|
||||
\printfield{number}%
|
||||
\setunit*{\addcomma\space}%
|
||||
\printfield{articleno}
|
||||
\setunit{\addcomma\space}%
|
||||
\printfield{eid}%
|
||||
\setunit{\addspace}%
|
||||
\usebibmacro{issue+date}%
|
||||
\setunit{\addcolon\space}%
|
||||
\usebibmacro{issue}%
|
||||
\newunit}
|
||||
|
||||
\renewbibmacro*{doi+eprint+url}{%
|
||||
\iftoggle{bbx:url}
|
||||
{\iffieldundef{doi}{
|
||||
\usebibmacro{url+urldate}
|
||||
}{\iffieldundef{distinctURL}
|
||||
{}
|
||||
{\usebibmacro{url+urldate}}
|
||||
}
|
||||
}%
|
||||
\newunit\newblock
|
||||
\iftoggle{bbx:eprint}
|
||||
{\usebibmacro{eprint}}
|
||||
{}%
|
||||
\newunit\newblock
|
||||
\iftoggle{bbx:doi}
|
||||
{\printfield{doi}}
|
||||
{}}
|
||||
|
||||
|
||||
%%% Definitions for drivers (alphabetical)
|
||||
|
||||
|
||||
|
||||
\DeclareBibliographyDriver{article}{%
|
||||
\usebibmacro{bibindex}%
|
||||
\usebibmacro{begentry}%
|
||||
\usebibmacro{author/translator+others}%
|
||||
\setunit{\labelnamepunct}\newblock%
|
||||
\usebibmacro{year}%
|
||||
\newunit%
|
||||
\usebibmacro{title}%
|
||||
\newunit%
|
||||
\printlist{language}%
|
||||
\newunit\newblock%
|
||||
\usebibmacro{byauthor}%
|
||||
\newunit\newblock%
|
||||
\usebibmacro{bytranslator+others}%
|
||||
\newunit\newblock%
|
||||
\printfield{version}%
|
||||
\newunit\newblock%
|
||||
\usebibmacro{journal+issuetitle}%
|
||||
\newunit%
|
||||
\usebibmacro{byeditor+others}%
|
||||
\newunit%
|
||||
\printfield{note}%
|
||||
\newunit\newblock%
|
||||
\iftoggle{bbx:isbn}
|
||||
{\printfield{isbn}}
|
||||
{}%
|
||||
\newunit\newblock%
|
||||
\usebibmacro{doi+eprint+url}%
|
||||
\newunit\newblock%
|
||||
\usebibmacro{addendum+pubstate}%
|
||||
\setunit{\bibpagerefpunct}\newblock
|
||||
\usebibmacro{pageref}%
|
||||
\newunit\newblock%
|
||||
\usebibmacro{related}%
|
||||
\usebibmacro{finentry}}
|
||||
|
||||
|
||||
|
||||
\DeclareBibliographyDriver{book}{%
|
||||
\usebibmacro{bibindex}%
|
||||
\usebibmacro{begentry}%
|
||||
\usebibmacro{author/editor+others/translator+others}%
|
||||
\setunit{\labelnamepunct}\newblock
|
||||
\usebibmacro{year}%
|
||||
\newunit%
|
||||
\usebibmacro{maintitle+title}%
|
||||
\newunit%
|
||||
\printlist{language}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{byauthor}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{byeditor+others}%
|
||||
\newunit\newblock
|
||||
\printfield{edition}%
|
||||
\newunit
|
||||
\usebibmacro{series+number}%
|
||||
\iffieldundef{maintitle}
|
||||
{\printfield{volume}%
|
||||
\printfield{part}}
|
||||
{}%
|
||||
\newunit
|
||||
\newunit\newblock
|
||||
\printfield{volumes}%
|
||||
\newunit\newblock
|
||||
\printfield{note}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{publisher+location+date}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{chapter+pages}%
|
||||
\newunit
|
||||
\printfield{pagetotal}%
|
||||
\newunit\newblock
|
||||
\iftoggle{bbx:isbn}
|
||||
{\printfield{isbn}}
|
||||
{}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{doi+eprint+url}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{addendum+pubstate}%
|
||||
\setunit{\bibpagerefpunct}\newblock
|
||||
\usebibmacro{pageref}%
|
||||
\newunit\newblock
|
||||
\iftoggle{bbx:related}
|
||||
{\usebibmacro{related:init}%
|
||||
\usebibmacro{related}}
|
||||
{}%
|
||||
\usebibmacro{finentry}}
|
||||
|
||||
|
||||
|
||||
\DeclareBibliographyDriver{inbook}{%
|
||||
\usebibmacro{bibindex}%
|
||||
\usebibmacro{begentry}%
|
||||
\iffieldundef{author}%
|
||||
{\usebibmacro{byeditor+others}}%
|
||||
{\usebibmacro{author/translator+others}}%
|
||||
\setunit{\labelnamepunct}\newblock
|
||||
\usebibmacro{year}
|
||||
\newunit\newblock
|
||||
\usebibmacro{title}%
|
||||
\newunit
|
||||
\printlist{language}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{byauthor}%
|
||||
\newunit\newblock
|
||||
% \usebibmacro{in:}%
|
||||
\usebibmacro{bybookauthor}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{maintitle+booktitle}%
|
||||
\newunit\newblock
|
||||
\iffieldundef{author}{}%if undef then we already printed editor
|
||||
{\usebibmacro{byeditor+others}}%
|
||||
\newunit\newblock
|
||||
\printfield{edition}%
|
||||
\newunit
|
||||
\iffieldundef{maintitle}
|
||||
{\printfield{volume}%
|
||||
\printfield{part}}
|
||||
{}%
|
||||
\newunit
|
||||
\printfield{volumes}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{series+number}%
|
||||
\newunit\newblock
|
||||
\printfield{note}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{publisher+location+date}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{chapter+pages}%
|
||||
\newunit\newblock
|
||||
\iftoggle{bbx:isbn}
|
||||
{\printfield{isbn}}
|
||||
{}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{doi+eprint+url}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{addendum+pubstate}%
|
||||
\setunit{\bibpagerefpunct}\newblock
|
||||
\usebibmacro{pageref}%
|
||||
\newunit\newblock
|
||||
\iftoggle{bbx:related}
|
||||
{\usebibmacro{related:init}%
|
||||
\usebibmacro{related}}
|
||||
{}%
|
||||
\usebibmacro{finentry}}
|
||||
|
||||
|
||||
|
||||
\DeclareBibliographyDriver{incollection}{%
|
||||
\usebibmacro{bibindex}%
|
||||
\usebibmacro{begentry}%
|
||||
\usebibmacro{author/translator+others}%
|
||||
\setunit{\labelnamepunct}\newblock
|
||||
\usebibmacro{year}
|
||||
\newunit\newblock
|
||||
\usebibmacro{title}%
|
||||
\newunit
|
||||
\printlist{language}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{byauthor}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{in:}%
|
||||
\usebibmacro{maintitle+booktitle}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{series+number}%
|
||||
\newunit\newblock
|
||||
\printfield{edition}%
|
||||
\newunit
|
||||
\iffieldundef{maintitle}
|
||||
{\printfield{volume}%
|
||||
\printfield{part}}
|
||||
{}%
|
||||
\newunit
|
||||
\printfield{volumes}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{byeditor+others}%
|
||||
\newunit\newblock
|
||||
\printfield{note}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{publisher+location+date}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{chapter+pages}%
|
||||
\newunit\newblock
|
||||
\iftoggle{bbx:isbn}
|
||||
{\printfield{isbn}}
|
||||
{}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{doi+eprint+url}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{addendum+pubstate}%
|
||||
\setunit{\bibpagerefpunct}\newblock
|
||||
\usebibmacro{pageref}%
|
||||
\newunit\newblock
|
||||
\iftoggle{bbx:related}
|
||||
{\usebibmacro{related:init}%
|
||||
\usebibmacro{related}}
|
||||
{}%
|
||||
\usebibmacro{finentry}}
|
||||
|
||||
|
||||
|
||||
\DeclareBibliographyDriver{inproceedings}{%
|
||||
\usebibmacro{bibindex}%
|
||||
\usebibmacro{begentry}%
|
||||
\usebibmacro{author/translator+others}%
|
||||
\setunit{\labelnamepunct}\newblock
|
||||
\usebibmacro{year}
|
||||
\newunit\newblock
|
||||
\usebibmacro{title}%
|
||||
\newunit
|
||||
\printlist{language}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{byauthor}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{in:}%
|
||||
\usebibmacro{maintitle+booktitle+series+number}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{event+venue+date}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{byeditor+others}%
|
||||
\newunit\newblock
|
||||
\iffieldundef{maintitle}
|
||||
{\printfield{volume}%
|
||||
\printfield{part}}
|
||||
{}%
|
||||
\newunit
|
||||
\printfield{volumes}%
|
||||
\newunit\newblock
|
||||
\printfield{note}%
|
||||
\newunit\newblock
|
||||
\printlist{organization}%
|
||||
\newunit
|
||||
\usebibmacro{publisher+location+date}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{chapter+pages}%
|
||||
\newunit\newblock
|
||||
\iftoggle{bbx:isbn}
|
||||
{\printfield{isbn}}
|
||||
{}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{doi+eprint+url}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{addendum+pubstate}%
|
||||
\setunit{\bibpagerefpunct}\newblock
|
||||
\usebibmacro{pageref}%
|
||||
\newunit\newblock
|
||||
\iftoggle{bbx:related}
|
||||
{\usebibmacro{related:init}%
|
||||
\usebibmacro{related}}
|
||||
{}%
|
||||
\usebibmacro{finentry}}
|
||||
|
||||
|
||||
|
||||
\DeclareBibliographyDriver{manual}{%
|
||||
\usebibmacro{bibindex}%
|
||||
\usebibmacro{begentry}%
|
||||
\usebibmacro{author/editor+others}%
|
||||
\setunit{\labelnamepunct}\newblock
|
||||
\usebibmacro{year}
|
||||
\newunit\newblock
|
||||
\usebibmacro{title}%
|
||||
\newunit
|
||||
\printlist{language}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{byauthor}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{byeditor}%
|
||||
\newunit\newblock
|
||||
\printfield{edition}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{series+number}%
|
||||
\newunit\newblock
|
||||
\printfield{type}%
|
||||
\newunit
|
||||
\printfield{version}%
|
||||
\newunit
|
||||
\printfield{note}%
|
||||
\newunit\newblock
|
||||
\printlist{organization}%
|
||||
\newunit
|
||||
\usebibmacro{publisher+location+date}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{chapter+pages}%
|
||||
\newunit
|
||||
\printfield{pagetotal}%
|
||||
\newunit\newblock
|
||||
\iftoggle{bbx:isbn}
|
||||
{\printfield{isbn}}
|
||||
{}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{doi+eprint+url}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{addendum+pubstate}%
|
||||
\setunit{\bibpagerefpunct}\newblock
|
||||
\usebibmacro{pageref}%
|
||||
\newunit\newblock
|
||||
\iftoggle{bbx:related}
|
||||
{\usebibmacro{related:init}%
|
||||
\usebibmacro{related}}
|
||||
{}%
|
||||
\usebibmacro{finentry}}
|
||||
|
||||
|
||||
|
||||
\DeclareBibliographyDriver{misc}{%
|
||||
\usebibmacro{bibindex}%
|
||||
\usebibmacro{begentry}%
|
||||
\usebibmacro{author/editor+others/translator+others}%
|
||||
\setunit{\labelnamepunct}\newblock
|
||||
\usebibmacro{year}
|
||||
\newunit\newblock
|
||||
\usebibmacro{title}%
|
||||
\newunit
|
||||
\printlist{language}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{byauthor}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{byeditor+others}%
|
||||
\newunit\newblock
|
||||
\printfield{howpublished}%
|
||||
\newunit\newblock
|
||||
\printfield{type}%
|
||||
\newunit
|
||||
\printfield{version}%
|
||||
\newunit
|
||||
\printfield{note}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{organization+location+date}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{doi+eprint+url}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{addendum+pubstate}%
|
||||
\setunit{\bibpagerefpunct}\newblock
|
||||
\usebibmacro{pageref}%
|
||||
\newunit\newblock
|
||||
\iftoggle{bbx:related}
|
||||
{\usebibmacro{related:init}%
|
||||
\usebibmacro{related}}
|
||||
{}%
|
||||
\usebibmacro{finentry}}
|
||||
|
||||
|
||||
|
||||
\DeclareBibliographyDriver{online}{%
|
||||
\usebibmacro{bibindex}%
|
||||
\usebibmacro{begentry}%
|
||||
\usebibmacro{author/editor+others/translator+others}%
|
||||
\setunit{\labelnamepunct}\newblock
|
||||
\usebibmacro{year}%
|
||||
\setunit{\labelnamepunct}\newblock
|
||||
\usebibmacro{title}%
|
||||
\newunit
|
||||
\printlist{language}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{byauthor}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{byeditor+others}%
|
||||
\newunit\newblock
|
||||
\printfield{version}%
|
||||
\newunit
|
||||
\printfield{note}%
|
||||
\newunit\newblock
|
||||
\printlist{organization}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{date-ifmonth}%
|
||||
\newunit\newblock
|
||||
\iftoggle{bbx:eprint}
|
||||
{\usebibmacro{eprint}}
|
||||
{}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{url+urldate}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{addendum+pubstate}%
|
||||
\setunit{\bibpagerefpunct}\newblock
|
||||
\usebibmacro{pageref}%
|
||||
\newunit\newblock
|
||||
\iftoggle{bbx:related}
|
||||
{\usebibmacro{related:init}%
|
||||
\usebibmacro{related}}
|
||||
{}%
|
||||
\usebibmacro{finentry}}
|
||||
|
||||
|
||||
|
||||
\DeclareFieldFormat[patent]{number}{Patent No.~#1}
|
||||
|
||||
\DeclareBibliographyDriver{patent}{%
|
||||
\usebibmacro{bibindex}%
|
||||
\usebibmacro{begentry}%
|
||||
\usebibmacro{author}%
|
||||
\setunit{\labelnamepunct}\newblock
|
||||
\usebibmacro{year}%
|
||||
\newunit
|
||||
\usebibmacro{title}%
|
||||
\newunit
|
||||
\printlist{language}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{byauthor}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{date}%
|
||||
\newunit\newblock
|
||||
\printfield{type}%
|
||||
\setunit*{\addspace}%
|
||||
\printfield{number}%
|
||||
\iflistundef{location}
|
||||
{}
|
||||
{\setunit*{\addspace}%
|
||||
\printtext[parens]{%
|
||||
\printlist[][-\value{listtotal}]{location}}}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{byholder}%
|
||||
\newunit\newblock
|
||||
\printfield{note}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{doi+eprint+url}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{addendum+pubstate}%
|
||||
\setunit{\bibpagerefpunct}\newblock
|
||||
\usebibmacro{pageref}%
|
||||
\newunit\newblock
|
||||
\iftoggle{bbx:related}
|
||||
{\usebibmacro{related:init}%
|
||||
\usebibmacro{related}}
|
||||
{}%
|
||||
\usebibmacro{finentry}}
|
||||
|
||||
|
||||
|
||||
\DeclareBibliographyDriver{periodical}{%
|
||||
\usebibmacro{bibindex}%
|
||||
\usebibmacro{begentry}%
|
||||
\usebibmacro{editor}%
|
||||
\setunit{\labelnamepunct}\newblock
|
||||
\usebibmacro{year}
|
||||
\newunit
|
||||
\usebibmacro{title+issuetitle}%
|
||||
\newunit
|
||||
\printlist{language}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{byeditor}%
|
||||
\newunit\newblock
|
||||
\printfield{note}%
|
||||
\newunit\newblock
|
||||
\iftoggle{bbx:isbn}
|
||||
{\printfield{issn}}
|
||||
{}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{doi+eprint+url}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{addendum+pubstate}%
|
||||
\setunit{\bibpagerefpunct}\newblock
|
||||
\usebibmacro{pageref}%
|
||||
\newunit\newblock
|
||||
\iftoggle{bbx:related}
|
||||
{\usebibmacro{related:init}%
|
||||
\usebibmacro{related}}
|
||||
{}%
|
||||
\usebibmacro{finentry}}
|
||||
|
||||
|
||||
|
||||
\DeclareBibliographyDriver{report}{%
|
||||
\usebibmacro{bibindex}%
|
||||
\usebibmacro{begentry}%
|
||||
\usebibmacro{author}%
|
||||
\setunit{\labelnamepunct}\newblock
|
||||
\usebibmacro{year}
|
||||
\newunit
|
||||
\usebibmacro{title}%
|
||||
\newunit
|
||||
\printlist{language}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{byauthor}%
|
||||
\newunit\newblock
|
||||
\printfield{type}%
|
||||
\setunit*{\addspace}%
|
||||
\printfield{number}%
|
||||
\newunit\newblock
|
||||
\printfield{version}%
|
||||
\newunit
|
||||
\printfield{note}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{institution+location+date}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{chapter+pages}%
|
||||
\newunit
|
||||
\printfield{pagetotal}%
|
||||
\newunit\newblock
|
||||
\iftoggle{bbx:isbn}
|
||||
{\printfield{isrn}}
|
||||
{}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{doi+eprint+url}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{addendum+pubstate}%
|
||||
\setunit{\bibpagerefpunct}\newblock
|
||||
\usebibmacro{pageref}%
|
||||
\newunit\newblock
|
||||
\iftoggle{bbx:related}
|
||||
{\usebibmacro{related:init}%
|
||||
\usebibmacro{related}}
|
||||
{}%
|
||||
\usebibmacro{finentry}}
|
||||
|
||||
|
||||
|
||||
\DeclareBibliographyDriver{thesis}{%
|
||||
\usebibmacro{bibindex}%
|
||||
\usebibmacro{begentry}%
|
||||
\usebibmacro{author}%
|
||||
\setunit{\labelnamepunct}\newblock
|
||||
\usebibmacro{year}
|
||||
\newunit
|
||||
\usebibmacro{title}%
|
||||
\newunit
|
||||
\printlist{language}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{byauthor}%
|
||||
\newunit\newblock
|
||||
\printfield{type}%
|
||||
\newunit
|
||||
\usebibmacro{institution+location+date}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{chapter+pages}%
|
||||
\newunit
|
||||
\printfield{pagetotal}%
|
||||
\newunit\newblock
|
||||
\iftoggle{bbx:isbn}
|
||||
{\printfield{isbn}}
|
||||
{}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{doi+eprint+url}%
|
||||
\newunit\newblock
|
||||
\usebibmacro{addendum+pubstate}%
|
||||
\setunit{\bibpagerefpunct}\newblock
|
||||
\usebibmacro{pageref}%
|
||||
\newunit\newblock
|
||||
\printfield{note}%
|
||||
\newunit\newblock
|
||||
\iftoggle{bbx:related}
|
||||
{\usebibmacro{related:init}%
|
||||
\usebibmacro{related}}
|
||||
{}%
|
||||
\usebibmacro{finentry}}
|
||||
|
||||
%
|
||||
% Include support for software entries
|
||||
%
|
||||
\blx@inputonce{software.bbx}{biblatex style for software}{}{}{}{}
|
||||
|
||||
%
|
||||
% Handle ACM specific ArtifactSoftware entry exactly as the software entry (a soft alias will not work)
|
||||
%
|
||||
\DeclareStyleSourcemap{
|
||||
\maps[datatype=bibtex]{
|
||||
\map{
|
||||
\step[typesource=artifactsoftware,typetarget=software]
|
||||
\step[typesource=artifactdataset,typetarget=dataset]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
%
|
||||
% Show given name first in the reference list
|
||||
%
|
||||
\DeclareNameAlias{sortname}{given-family}
|
||||
|
||||
%
|
||||
% Produce a bibliography with small font size
|
||||
%
|
||||
\renewcommand*{\bibfont}{\bibliofont\footnotesize}
|
||||
|
||||
%%% Set option values for ACM style
|
||||
|
||||
\ExecuteBibliographyOptions{
|
||||
labeldate=year,
|
||||
abbreviate=true,
|
||||
dateabbrev=true,
|
||||
isbn=true,
|
||||
doi=true,
|
||||
urldate=comp,
|
||||
url=true,
|
||||
maxbibnames=9,
|
||||
maxcitenames=2,
|
||||
backref=false,
|
||||
sorting=nty,
|
||||
halid=true,
|
||||
swhid=true,
|
||||
swlabels=true,
|
||||
vcs=true,
|
||||
license=false,
|
||||
language=american
|
||||
}
|
||||
5
docs/RISCV-FAT/acmnumeric.cbx
Normal file
@@ -0,0 +1,5 @@
|
||||
\ProvidesFile{acmnumeric.cbx}[2017-09-27 v0.1]
|
||||
|
||||
\RequireCitationStyle{numeric}
|
||||
|
||||
\endinput
|
||||