diff --git a/moniste/tex/muistinhallinta.tex b/moniste/tex/muistinhallinta.tex index 06249cfb77cce1c27b7bba45dea723438f8eccb7..6e558cc1ba4ad2c13b09e6aa92e119859837b8b5 100644 --- a/moniste/tex/muistinhallinta.tex +++ b/moniste/tex/muistinhallinta.tex @@ -425,8 +425,9 @@ virtuaalinen\footnote{Esimerkiksi AMD64 määrittelee fyysisen \begin{figure}[ht] \centering + \iffalse # poropietari-kuvankästtyely tms. vs LaTeX => päivitä se LaTeX, ja maailma kiittää! \includegraphics[width=.5\textwidth]{osoitteenmuunnos_20bit_leikkiarkkitehtuuri} - +\fi % Bytefield ei vielä toimi OK mun WSL-ubuntun TexIllä. % Asennuksia edessä :) mut häksään nyt pois, jotta saan vedoksen ulos aloituspäivänä. \iffalse @@ -468,7 +469,48 @@ virtuaalinen\footnote{Esimerkiksi AMD64 määrittelee fyysisen \bitbox[]{12}{\raggedright (Pysyy samana fyysisellä Sivulla.)} \end{bytefield} +\else + \begin{bytefield}[leftcurly=.,rightcurly=.,bitwidth=0.9em]{33} + + \bitbox[]{5}{0x} + \bitboxes[]{4}{03cde} + \\ + + \bitbox[]{5}{Bitit:} & + \bitbox{4}{0 0 0 0} & + \bitbox{4}{0 0 1 1} & + \bitbox{4}{1 1 0 0} & + \bitbox{4}{1 1 0 1} & + \bitbox{4}{1 1 1 0} & + \\ + + \bitbox[]{5}{Osiot:} & + \bitbox[]{8}{Bitit 19…12} & + \bitbox[l]{12}{Bitit 11…0} + \\ + + \bitbox[]{5}{} & + \bitbox[]{8}{\footnotesize (8 bittiä)} & + \bitbox[l]{12}{\footnotesize (12 bittiä)} + \\ + + \bitbox[]{5}{Indeksit:} & + \bitbox[]{8}{3} & + \bitbox[l]{12}{0Xcde (=3294)} + \\ + + \bitbox[]{5}{} & + \bitbox[]{8}{} & \bitbox[l]{12}{\small Osoite sivun sisällä.} + \\ + + \bitbox[]{5}{} & + \bitbox[]{8}{\small Indeksi sivutaulun riviin.} & + \bitbox[l]{12}{\small (Pysyy samana fyysisellä Sivulla.)} + + \end{bytefield} + \fi % FIXME: Palauta bytefield sitten kun on toimiva LaTeX kaikilla tiimissä :) +% FIXME: Päivitä nyt, pretty please! \caption{\label{fig:leikkiosoite} Leikkiesimerkki prosessin virtuaalimuistiosoitteesta 20-bittisellä @@ -625,7 +667,184 @@ käyttötarkoituksesta. %(kuva: AMD64 manual, Vol 2, p. 18) \begin{figure} \centering - \includegraphics[width=.95\textwidth]{AMD64_long_mode_address_split} + % \includegraphics[width=.95\textwidth]{AMD64_long_mode_address_split} + \iffalse % harmaasävyt + \begin{bytefield}[leftcurly=.,rightcurly=.,bitwidth=0.6em]{70} + + \bitbox[]{6}{0x} + \bitboxes[]{4}{00000000004009f5} + \\ + + \bitbox[]{6}{Bitit:} & + \bitbox{4}[bgcolor=gray!40]{0000} & + \bitbox{4}[bgcolor=gray!40]{0011} & + \bitbox{4}[bgcolor=gray!40]{1100} & + \bitbox{4}[bgcolor=gray!40]{1101} & + + \bitbox{4}[bgcolor=gray!20]{0000} & + + \bitbox{4}[bgcolor=gray!20]{0000} & + + \bitbox[tbl]{1}[bgcolor=gray!20]{0} & + \bitbox[tb]{1}[bgcolor=gray!40]{0} & + \bitbox[tb]{1}[bgcolor=gray!40]{0} & + \bitbox[tbr]{1}[bgcolor=gray!40]{0} & + + \bitbox{4}[bgcolor=gray!40]{1100} & + + \bitbox[tbl]{1}[bgcolor=gray!40]{0} & + \bitbox[tb]{1}[bgcolor=gray!40]{0} & + \bitbox[tb]{1}[bgcolor=gray!20]{0} & + \bitbox[tbr]{1}[bgcolor=gray!20]{0} & + + \bitbox{4}[bgcolor=gray!20]{0000} & + + \bitbox[tbl]{1}[bgcolor=gray!20]{0} & + \bitbox[tb]{1}[bgcolor=gray!20]{1} & + \bitbox[tb]{1}[bgcolor=gray!20]{0} & + \bitbox[tbr]{1}[bgcolor=gray!40]{0} & + + \bitbox{4}[bgcolor=gray!40]{0000} & + + \bitbox{4}[bgcolor=gray!40]{0000} & + + \bitbox{4}[bgcolor=gray!20]{1001} & + + \bitbox{4}[bgcolor=gray!20]{1111} & + + \bitbox{4}[bgcolor=gray!20]{0101} & + \\ + + \bitbox[]{6}{Osiot:} & + \bitbox[]{16}[bgcolor=gray!40]{Bitit 63…48} & + \bitbox[]{ 9}[bgcolor=gray!20]{47…39} & + \bitbox[]{ 9}[bgcolor=gray!40]{38…30} & + \bitbox[]{ 9}[bgcolor=gray!20]{29…21} & + \bitbox[]{ 9}[bgcolor=gray!40]{20…12} & + \bitbox[]{12}[bgcolor=gray!20]{11…0} & + \\ + + \bitbox[]{6}{} & + \bitbox[]{16}[bgcolor=gray!40]{\tiny (16 bittiä)} & + \bitbox[]{ 9}[bgcolor=gray!20]{\tiny (9 bittiä)} & + \bitbox[]{ 9}[bgcolor=gray!40]{\tiny (9 bittiä)} & + \bitbox[]{ 9}[bgcolor=gray!20]{\tiny (9 bittiä)} & + \bitbox[]{ 9}[bgcolor=gray!40]{\tiny (9 bittiä)} & + \bitbox[]{12}[bgcolor=gray!20]{\tiny (12 bittiä)} & + \\ + + \bitbox[]{6}{Indeksit:} & + \bitbox[]{16}[bgcolor=gray!40]{} & + \bitbox[]{ 9}[bgcolor=gray!20]{0} & + \bitbox[]{ 9}[bgcolor=gray!40]{0} & + \bitbox[]{ 9}[bgcolor=gray!20]{2} & + \bitbox[]{ 9}[bgcolor=gray!40]{0} & + \bitbox[]{12}[bgcolor=gray!20]{\small 0X9f5 (=2549)} & + \\ + \\ + \\ + + \bitbox[]{6}{} & + \bitbox[]{16}{\raggedright \footnotesize Tulee olla samoja kuin bitti 47 nykyisessä arkkitehtuurissa} & + \bitbox[]{ 9}{\raggedright \footnotesize Indeksi nel\-jännen tason sivu\-kar\-tan riviin} & + \bitbox[]{ 9}{\raggedright \footnotesize Indeksi sivuhakemisto"-osoitintaulukon riviin} & + \bitbox[]{ 9}{\raggedright \footnotesize Indeksi sivuhakemiston riviin} & + \bitbox[]{ 9}{\raggedright \footnotesize Indeksi sivutaulun riviin} & + \bitbox[]{12}{\raggedright \footnotesize Osoite sivun sisällä.\\ (Pysyy samana fyysisellä sivulla.)} & + \\ + + \end{bytefield} + + \else % vanhentunut bytefield + + \begin{bytefield}[leftcurly=.,rightcurly=.,bitwidth=0.6em]{71} + + \bitbox[]{7}{0x} + \bitboxes[]{4}{00000000004009f5} + \\ + + \bitbox[]{7}{Bitit:} & + \bitbox{4}{0000} & + \bitbox{4}{0011} & + \bitbox{4}{1100} & + \bitbox{4}{1101} & + + \bitbox{4}{0000} & + + \bitbox{4}{0000} & + + \bitbox[tbl]{1}{0} & + \bitbox[tb]{1}{0} & + \bitbox[tb]{1}{0} & + \bitbox[tbr]{1}{0} & + + \bitbox{4}{1100} & + + \bitbox[tbl]{1}{0} & + \bitbox[tb]{1}{0} & + \bitbox[tb]{1}{0} & + \bitbox[tbr]{1}{0} & + + \bitbox{4}{0000} & + + \bitbox[tbl]{1}{0} & + \bitbox[tb]{1}{1} & + \bitbox[tb]{1}{0} & + \bitbox[tbr]{1}{0} & + + \bitbox{4}{0000} & + + \bitbox{4}{0000} & + + \bitbox{4}{1001} & + + \bitbox{4}{1111} & + + \bitbox{4}{0101} & + \\ + + \bitbox[]{7}{Osiot:} & + \bitbox[lr]{16}{Bitit 63…48} & + \bitbox[r]{ 9}{47…39} & + \bitbox[r]{ 9}{38…30} & + \bitbox[r]{ 9}{29…21} & + \bitbox[r]{ 9}{20…12} & + \bitbox[r]{12}{11…0} & + \\ + + \bitbox[]{7}{} & + \bitbox[lr]{16}{\tiny (16 bittiä)} & + \bitbox[r]{ 9}{\tiny (9 bittiä)} & + \bitbox[r]{ 9}{\tiny (9 bittiä)} & + \bitbox[r]{ 9}{\tiny (9 bittiä)} & + \bitbox[r]{ 9}{\tiny (9 bittiä)} & + \bitbox[r]{12}{\tiny (12 bittiä)} & + \\ + + \bitbox[]{7}{Indeksit:} & + \bitbox[lrb]{16}{} & + \bitbox[rb]{ 9}{0} & + \bitbox[rb]{ 9}{0} & + \bitbox[rb]{ 9}{2} & + \bitbox[rb]{ 9}{0} & + \bitbox[rb]{12}{\small 0X9f5 (=2549)} & + \\ + \\ + \\ + + \bitbox[]{7}{} & + \bitbox[]{16}{\raggedright \footnotesize Tulee olla samoja kuin bitti 47 nykyisessä arkkitehtuurissa} & + \bitbox[]{ 9}{\raggedright \footnotesize Indeksi nel\-jännen tason sivu\-kar\-tan riviin} & + \bitbox[]{ 9}{\raggedright \footnotesize Indeksi sivuhakemisto"-osoitintaulukon riviin} & + \bitbox[]{ 9}{\raggedright \footnotesize Indeksi sivuhakemiston riviin} & + \bitbox[]{ 9}{\raggedright \footnotesize Indeksi sivutaulun riviin} & + \bitbox[]{12}{\raggedright \footnotesize Osoite sivun sisällä.\\ (Pysyy samana fyysisellä sivulla.)} & + \\ + + \end{bytefield} + + \fi + \caption{\label{fig:amd64page} Nelitasoinen osoitteenmuunnos AMD64-prosessorissa (alkuperäinen x86-64). Arkkitehtuuri tukee muutamaa isompaa sivukokoa, mutta tässä on esimerkki