├── .gitignore ├── .vscode └── settings.json ├── Images ├── image-1.tikz ├── image-10.tikz ├── image-11.tikz ├── image-12.tikz ├── image-13.tikz ├── image-14.tikz ├── image-15.tikz ├── image-16.tikz ├── image-17.tikz ├── image-18.tikz ├── image-19.tikz ├── image-2.tikz ├── image-20.tikz ├── image-21.tikz ├── image-22.tikz ├── image-23.tikz ├── image-24.tikz ├── image-25.tikz ├── image-26.tikz ├── image-27.tikz ├── image-28.tikz ├── image-29.tikz ├── image-3.tikz ├── image-30.tikz ├── image-31.tikz ├── image-32.tikz ├── image-33.tikz ├── image-34.tikz ├── image-35.tikz ├── image-36.tikz ├── image-37.tikz ├── image-38.tikz ├── image-39.tikz ├── image-4.tikz ├── image-40.tikz ├── image-41.tikz ├── image-42.tikz ├── image-43.tikz ├── image-44.tikz ├── image-45.tikz ├── image-46.tikz ├── image-47.tikz ├── image-48.tikz ├── image-49.tikz ├── image-5.tikz ├── image-50.tikz ├── image-51.tikz ├── image-52.tikz ├── image-53.tikz ├── image-54.tikz ├── image-55.tikz ├── image-56.tikz ├── image-57.tikz ├── image-58.tikz ├── image-59.tikz ├── image-6.tikz ├── image-60.tikz ├── image-61.tikz ├── image-62.tikz ├── image-63.tikz ├── image-64.tikz ├── image-65.tikz ├── image-66.tikz ├── image-67.tikz ├── image-68.tikz ├── image-7.tikz ├── image-8.tikz └── image-9.tikz ├── LICENSE.md ├── README.md ├── advanced-computer-architectures.pdf ├── advanced-computer-architectures.tex ├── envsetup.py ├── logo.png ├── notestemplate.sty ├── tikzit.tikzstyles ├── tikzstyle.tikzstyles └── tikztemp └── .placeholder /.gitignore: -------------------------------------------------------------------------------- 1 | tikztemp/* 2 | !tikztemp/.placeholder 3 | 4 | *.aux* 5 | *.log 6 | *.out 7 | *.toc 8 | *.synctex* -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "latex-workshop.latex.recipes": [ 3 | { 4 | "name": "build with externalized images", 5 | "tools": ["cleanstyles", "pdflatex", "pdflatex"] 6 | }, 7 | { 8 | "name": "clean and build with externalized images", 9 | "tools": ["cleanfiles", "cleanstyles", "pdflatex", "pdflatex"] 10 | } 11 | ], 12 | "latex-workshop.latex.tools": [ 13 | { 14 | "name": "cleanstyles", 15 | "command": "python3", 16 | "args": ["envsetup.py", "clean"], 17 | "env": {} 18 | }, 19 | { 20 | "name": "cleanfiles", 21 | "command": "python3", 22 | "args": ["envsetup.py", "delete"], 23 | "env": {} 24 | }, 25 | { 26 | "name": "pdflatex", 27 | "command": "pdflatex", 28 | "args": [ 29 | "-shell-escape", 30 | "-synctex=1", 31 | "-interaction=nonstopmode", 32 | "-file-line-error", 33 | "%DOC%" 34 | ], 35 | "env": {} 36 | } 37 | ], 38 | "latex-workshop.latex.recipe.default": "build with externalized images", 39 | "latex-workshop.latex.autoBuild.interval": 5000, 40 | "latex-workshop.message.warning.show": false, 41 | "latex-workshop.message.error.show": false, 42 | "latex-workshop.view.outline.sections": [ 43 | "part", 44 | "chapter", 45 | "section", 46 | "subsection", 47 | "subsubsection", 48 | "paragraph" 49 | ], 50 | "latex-workshop.latexindent.args": [ 51 | "-c", 52 | "%DIR%/", 53 | "%TMPFILE%", 54 | "-y=defaultIndent: '%INDENT%'", 55 | "-m" 56 | ], 57 | "[latex]": { 58 | "editor.formatOnSave": false 59 | }, 60 | "cSpell.words": [ 61 | "ADDV", 62 | "Almasi", 63 | "analyzed", 64 | "andi", 65 | "Antidependence", 66 | "auxlock", 67 | "bgtz", 68 | "BNEZ", 69 | "cleantikz", 70 | "Conficconi", 71 | "CUDA", 72 | "DADDIU", 73 | "DSUBIU", 74 | "freelist", 75 | "hlines", 76 | "Hyperblock", 77 | "latexpdf", 78 | "maskable", 79 | "MFLOPS", 80 | "MISD", 81 | "mispredict", 82 | "mispredicted", 83 | "mult", 84 | "nonmaskable", 85 | "pipelining", 86 | "restartability", 87 | "Sciuto", 88 | "setvlr", 89 | "SIMT", 90 | "SISD", 91 | "Speedup", 92 | "speedups", 93 | "strided", 94 | "stripmining", 95 | "Superblock", 96 | "tikz", 97 | "tikzit", 98 | "tikzstyle", 99 | "tikzstyles", 100 | "tikzsyles", 101 | "tikztemp", 102 | "Tomasulo", 103 | "vectorizable", 104 | "vfadd", 105 | "vfsgts", 106 | "VLIW", 107 | "VMIPS", 108 | "VMMAs", 109 | "writable", 110 | "writeback", 111 | "writebacks" 112 | ], 113 | "grammarly.selectors": [ 114 | { 115 | "language": "latex", 116 | "scheme": "file", 117 | "pattern": "advanced-computer-architectures.tex" 118 | } 119 | ] 120 | } 121 | -------------------------------------------------------------------------------- /Images/image-1.tikz: -------------------------------------------------------------------------------- 1 | \begin{tikzpicture} 2 | \begin{pgfonlayer}{nodelayer} 3 | \node [style=none] (1) at (2, 1) {}; 4 | \node [style=none] (2) at (-1, -2) {}; 5 | \node [style=none] (3) at (2, -2) {}; 6 | \node [style=none] (4) at (-4, -2) {}; 7 | \node [style=none] (5) at (-4, 1) {}; 8 | \node [style=none] (6) at (-4, 4) {}; 9 | \node [style=none] (7) at (-1, 4) {}; 10 | \node [style=none] (8) at (2, 4) {}; 11 | \node [style=none] (9) at (-2.5, 2.5) {\textit{SISD}}; 12 | \node [style=none] (10) at (0.5, 2.5) {\textit{MISD}}; 13 | \node [style=none] (11) at (-2.5, -0.5) {\textit{SIMD}}; 14 | \node [style=none] (12) at (0.5, -0.5) {\textit{MIMD}}; 15 | \node [style=none] (14) at (3, 5) {}; 16 | \node [style=none] (15) at (-5, -3) {}; 17 | \node [style=left align] (16) at (3, 5.5) {instructions}; 18 | \node [style=left align, rotate=90, anchor=west] (17) at (-5.5, -3) {data}; 19 | \node [style=none] (18) at (-5.5, 5) {}; 20 | \node [style=none] (19) at (-5, 5.5) {}; 21 | \end{pgfonlayer} 22 | \begin{pgfonlayer}{edgelayer} 23 | \draw [style=big] (4.center) to (3.center); 24 | \draw [style=big] (3.center) to (8.center); 25 | \draw [style=big] (8.center) to (6.center); 26 | \draw [style=big] (6.center) to (4.center); 27 | \draw [style=solid] (5.center) to (1.center); 28 | \draw [style=solid] (2.center) to (7.center); 29 | \draw [style=solid arrow] (18.center) to (14.center); 30 | \draw [style=solid arrow] (19.center) to (15.center); 31 | \end{pgfonlayer} 32 | \end{tikzpicture} 33 | -------------------------------------------------------------------------------- /Images/image-11.tikz: -------------------------------------------------------------------------------- 1 | \begin{tikzpicture} 2 | \begin{pgfonlayer}{nodelayer} 3 | \node [style=none] (0) at (0, 0) {}; 4 | \node [style=none] (1) at (0, -1) {}; 5 | \node [style=none] (2) at (2, -1) {}; 6 | \node [style=none] (3) at (2, 0) {}; 7 | \node [style=none] (4) at (4, 0) {}; 8 | \node [style=none] (5) at (4, -1) {}; 9 | \node [style=none] (6) at (6, -1) {}; 10 | \node [style=none] (7) at (6, 0) {}; 11 | \node [style=none] (8) at (8, 0) {}; 12 | \node [style=none] (9) at (8, -1) {}; 13 | \node [style=none] (10) at (10, -1) {}; 14 | \node [style=none] (11) at (10, 0) {}; 15 | \node [style=none] (12) at (2, -1) {}; 16 | \node [style=none] (13) at (2, -2) {}; 17 | \node [style=none] (14) at (4, -2) {}; 18 | \node [style=none] (15) at (4, -1) {}; 19 | \node [style=none] (16) at (6, -1) {}; 20 | \node [style=none] (17) at (6, -2) {}; 21 | \node [style=none] (18) at (8, -2) {}; 22 | \node [style=none] (19) at (8, -1) {}; 23 | \node [style=none] (20) at (10, -1) {}; 24 | \node [style=none] (21) at (10, -2) {}; 25 | \node [style=none] (22) at (12, -2) {}; 26 | \node [style=none] (23) at (12, -1) {}; 27 | \node [style=none] (24) at (4, -2) {}; 28 | \node [style=none] (25) at (4, -3) {}; 29 | \node [style=none] (26) at (6, -3) {}; 30 | \node [style=none] (27) at (6, -2) {}; 31 | \node [style=none] (28) at (8, -2) {}; 32 | \node [style=none] (29) at (8, -3) {}; 33 | \node [style=none] (30) at (10, -3) {}; 34 | \node [style=none] (31) at (10, -2) {}; 35 | \node [style=none] (32) at (12, -2) {}; 36 | \node [style=none] (33) at (12, -3) {}; 37 | \node [style=none] (34) at (14, -3) {}; 38 | \node [style=none] (35) at (14, -2) {}; 39 | \node [style=none] (36) at (6, -3) {}; 40 | \node [style=none] (37) at (6, -4) {}; 41 | \node [style=none] (38) at (8, -4) {}; 42 | \node [style=none] (39) at (8, -3) {}; 43 | \node [style=none] (40) at (10, -3) {}; 44 | \node [style=none] (41) at (10, -4) {}; 45 | \node [style=none] (42) at (12, -4) {}; 46 | \node [style=none] (43) at (12, -3) {}; 47 | \node [style=none] (44) at (14, -3) {}; 48 | \node [style=none] (45) at (14, -4) {}; 49 | \node [style=none] (46) at (16, -4) {}; 50 | \node [style=none] (47) at (16, -3) {}; 51 | \node [style=none] (48) at (8, -4) {}; 52 | \node [style=none] (49) at (8, -5) {}; 53 | \node [style=none] (50) at (10, -5) {}; 54 | \node [style=none] (51) at (10, -4) {}; 55 | \node [style=none] (52) at (12, -4) {}; 56 | \node [style=none] (53) at (12, -5) {}; 57 | \node [style=none] (54) at (14, -5) {}; 58 | \node [style=none] (55) at (14, -4) {}; 59 | \node [style=none] (56) at (16, -4) {}; 60 | \node [style=none] (57) at (16, -5) {}; 61 | \node [style=none] (58) at (18, -5) {}; 62 | \node [style=none] (59) at (18, -4) {}; 63 | \node [style=none] (60) at (1, -0.5) {\texttt{IF}}; 64 | \node [style=none] (61) at (3, -0.5) {\texttt{ID}}; 65 | \node [style=none] (62) at (5, -0.5) {\texttt{EX}}; 66 | \node [style=none] (63) at (7, -0.5) {\texttt{ME}}; 67 | \node [style=none] (64) at (9, -0.5) {\texttt{WB}}; 68 | \node [style=none] (65) at (9, -4.5) {\texttt{IF}}; 69 | \node [style=none] (66) at (11, -4.5) {\texttt{ID}}; 70 | \node [style=none] (67) at (13, -4.5) {\texttt{EX}}; 71 | \node [style=none] (68) at (15, -4.5) {\texttt{ME}}; 72 | \node [style=none] (69) at (17, -4.5) {\texttt{WB}}; 73 | \node [style=none] (70) at (3, -1.5) {\texttt{IF}}; 74 | \node [style=none] (71) at (5, -1.5) {\texttt{ID}}; 75 | \node [style=none] (72) at (7, -1.5) {\texttt{EX}}; 76 | \node [style=none] (73) at (9, -1.5) {\texttt{ME}}; 77 | \node [style=none] (74) at (11, -1.5) {\texttt{WB}}; 78 | \node [style=none] (75) at (5, -2.5) {\texttt{IF}}; 79 | \node [style=none] (76) at (7, -2.5) {\texttt{ID}}; 80 | \node [style=none] (77) at (9, -2.5) {\texttt{EX}}; 81 | \node [style=none] (78) at (11, -2.5) {\texttt{ME}}; 82 | \node [style=none] (79) at (13, -2.5) {\texttt{WB}}; 83 | \node [style=none] (80) at (7, -3.5) {\texttt{IF}}; 84 | \node [style=none] (81) at (9, -3.5) {\texttt{ID}}; 85 | \node [style=none] (82) at (11, -3.5) {\texttt{EX}}; 86 | \node [style=none] (83) at (13, -3.5) {\texttt{ME}}; 87 | \node [style=none] (84) at (15, -3.5) {\texttt{WB}}; 88 | \node [style=right align] (85) at (-0.5, -0.5) {\texttt{untaken branch}}; 89 | \node [style=right align] (88) at (-0.5, -4.5) {\texttt{instruction i+4}}; 90 | \node [style=right align] (89) at (-0.5, -3.5) {\texttt{instruction i+3}}; 91 | \node [style=right align] (90) at (-0.5, -2.5) {\texttt{instruction i+2}}; 92 | \node [style=right align] (91) at (-0.5, -1.5) {\texttt{instruction i+1}}; 93 | \end{pgfonlayer} 94 | \begin{pgfonlayer}{edgelayer} 95 | \draw [style=light fill] (0.center) 96 | to (1.center) 97 | to (10.center) 98 | to (11.center) 99 | to cycle; 100 | \draw [style=solid] (3.center) to (2.center); 101 | \draw [style=solid] (4.center) to (5.center); 102 | \draw [style=solid] (7.center) to (6.center); 103 | \draw [style=solid] (8.center) to (9.center); 104 | \draw [style=light fill] (12.center) 105 | to (13.center) 106 | to (22.center) 107 | to (23.center) 108 | to cycle; 109 | \draw [style=solid] (15.center) to (14.center); 110 | \draw [style=solid] (16.center) to (17.center); 111 | \draw [style=solid] (19.center) to (18.center); 112 | \draw [style=solid] (20.center) to (21.center); 113 | \draw [style=light fill] (24.center) 114 | to (25.center) 115 | to (34.center) 116 | to (35.center) 117 | to cycle; 118 | \draw [style=solid] (27.center) to (26.center); 119 | \draw [style=solid] (28.center) to (29.center); 120 | \draw [style=solid] (31.center) to (30.center); 121 | \draw [style=solid] (32.center) to (33.center); 122 | \draw [style=light fill] (36.center) 123 | to (37.center) 124 | to (46.center) 125 | to (47.center) 126 | to cycle; 127 | \draw [style=solid] (39.center) to (38.center); 128 | \draw [style=solid] (40.center) to (41.center); 129 | \draw [style=solid] (43.center) to (42.center); 130 | \draw [style=solid] (44.center) to (45.center); 131 | \draw [style=light fill] (48.center) 132 | to (49.center) 133 | to (58.center) 134 | to (59.center) 135 | to cycle; 136 | \draw [style=solid] (51.center) to (50.center); 137 | \draw [style=solid] (52.center) to (53.center); 138 | \draw [style=solid] (55.center) to (54.center); 139 | \draw [style=solid] (56.center) to (57.center); 140 | \end{pgfonlayer} 141 | \end{tikzpicture} 142 | -------------------------------------------------------------------------------- /Images/image-12.tikz: -------------------------------------------------------------------------------- 1 | \begin{tikzpicture} 2 | \begin{pgfonlayer}{nodelayer} 3 | \node [style=none] (0) at (0, 0) {}; 4 | \node [style=none] (1) at (0, -1) {}; 5 | \node [style=none] (2) at (2, -1) {}; 6 | \node [style=none] (3) at (2, 0) {}; 7 | \node [style=none] (4) at (4, 0) {}; 8 | \node [style=none] (5) at (4, -1) {}; 9 | \node [style=none] (6) at (6, -1) {}; 10 | \node [style=none] (7) at (6, 0) {}; 11 | \node [style=none] (8) at (8, 0) {}; 12 | \node [style=none] (9) at (8, -1) {}; 13 | \node [style=none] (10) at (10, -1) {}; 14 | \node [style=none] (11) at (10, 0) {}; 15 | \node [style=none] (14) at (4, -2) {}; 16 | \node [style=none] (15) at (4, -1) {}; 17 | \node [style=none] (16) at (6, -1) {}; 18 | \node [style=none] (17) at (6, -2) {}; 19 | \node [style=none] (18) at (8, -2) {}; 20 | \node [style=none] (19) at (8, -1) {}; 21 | \node [style=none] (20) at (10, -1) {}; 22 | \node [style=none] (21) at (10, -2) {}; 23 | \node [style=none] (26) at (6, -3) {}; 24 | \node [style=none] (27) at (6, -2) {}; 25 | \node [style=none] (28) at (8, -2) {}; 26 | \node [style=none] (29) at (8, -3) {}; 27 | \node [style=none] (30) at (10, -3) {}; 28 | \node [style=none] (31) at (10, -2) {}; 29 | \node [style=none] (32) at (12, -2) {}; 30 | \node [style=none] (33) at (12, -3) {}; 31 | \node [style=none] (36) at (6, -3) {}; 32 | \node [style=none] (37) at (6, -4) {}; 33 | \node [style=none] (38) at (8, -4) {}; 34 | \node [style=none] (39) at (8, -3) {}; 35 | \node [style=none] (40) at (10, -3) {}; 36 | \node [style=none] (41) at (10, -4) {}; 37 | \node [style=none] (42) at (12, -4) {}; 38 | \node [style=none] (43) at (12, -3) {}; 39 | \node [style=none] (44) at (14, -3) {}; 40 | \node [style=none] (45) at (14, -4) {}; 41 | \node [style=none] (46) at (16, -4) {}; 42 | \node [style=none] (47) at (16, -3) {}; 43 | \node [style=none] (48) at (8, -4) {}; 44 | \node [style=none] (49) at (8, -5) {}; 45 | \node [style=none] (50) at (10, -5) {}; 46 | \node [style=none] (51) at (10, -4) {}; 47 | \node [style=none] (52) at (12, -4) {}; 48 | \node [style=none] (53) at (12, -5) {}; 49 | \node [style=none] (54) at (14, -5) {}; 50 | \node [style=none] (55) at (14, -4) {}; 51 | \node [style=none] (56) at (16, -4) {}; 52 | \node [style=none] (57) at (16, -5) {}; 53 | \node [style=none] (58) at (18, -5) {}; 54 | \node [style=none] (59) at (18, -4) {}; 55 | \node [style=none] (60) at (1, -0.5) {\texttt{IF}}; 56 | \node [style=none] (61) at (3, -0.5) {\texttt{ID}}; 57 | \node [style=none] (62) at (5, -0.5) {\texttt{EX}}; 58 | \node [style=none] (63) at (7, -0.5) {\texttt{ME}}; 59 | \node [style=none] (64) at (9, -0.5) {\texttt{WB}}; 60 | \node [style=none] (65) at (9, -4.5) {\texttt{IF}}; 61 | \node [style=none] (66) at (11, -4.5) {\texttt{ID}}; 62 | \node [style=none] (67) at (13, -4.5) {\texttt{EX}}; 63 | \node [style=none] (68) at (15, -4.5) {\texttt{ME}}; 64 | \node [style=none] (69) at (17, -4.5) {\texttt{WB}}; 65 | \node [style=none, text=white] (70) at (3, -1.5) {\texttt{IF}}; 66 | \node [style=none, text=white] (71) at (5, -1.5) {\texttt{idle}}; 67 | \node [style=none, text=white] (72) at (7, -1.5) {\texttt{idle}}; 68 | \node [style=none, text=white] (73) at (9, -1.5) {\texttt{idle}}; 69 | \node [style=none, text=white] (74) at (11, -1.5) {\texttt{idle}}; 70 | \node [style=none, text=white] (75) at (5, -2.5) {\texttt{IF}}; 71 | \node [style=none, text=white] (76) at (7, -2.5) {\texttt{ID}}; 72 | \node [style=none, text=white] (77) at (9, -2.5) {\texttt{EX}}; 73 | \node [style=none, text=white] (78) at (11, -2.5) {\texttt{ME}}; 74 | \node [style=none, text=white] (79) at (13, -2.5) {\texttt{WB}}; 75 | \node [style=none] (80) at (7, -3.5) {\texttt{IF}}; 76 | \node [style=none] (81) at (9, -3.5) {\texttt{ID}}; 77 | \node [style=none] (82) at (11, -3.5) {\texttt{EX}}; 78 | \node [style=none] (83) at (13, -3.5) {\texttt{ME}}; 79 | \node [style=none] (84) at (15, -3.5) {\texttt{WB}}; 80 | \node [style=right align] (85) at (-0.5, -0.5) {\texttt{taken branch}}; 81 | \node [style=right align] (88) at (-0.5, -4.5) {\texttt{branch target+2}}; 82 | \node [style=right align] (89) at (-0.5, -3.5) {\texttt{branch target+1}}; 83 | \node [style=right align] (90) at (-0.5, -2.5) {\texttt{branch target}}; 84 | \node [style=right align] (91) at (-0.5, -1.5) {\texttt{instruction i+1}}; 85 | \node [style=none] (93) at (4.5, -2.5) {}; 86 | \node [style=none] (94) at (3, -0.75) {}; 87 | \node [style=none] (95) at (2, -2) {}; 88 | \node [style=none] (96) at (12, -1) {}; 89 | \node [style=none] (97) at (4, -3) {}; 90 | \node [style=none] (98) at (14, -2) {}; 91 | \end{pgfonlayer} 92 | \begin{pgfonlayer}{edgelayer} 93 | \draw [style=light fill] (0.center) 94 | to (1.center) 95 | to (10.center) 96 | to (11.center) 97 | to cycle; 98 | \draw [style=solid] (3.center) to (2.center); 99 | \draw [style=solid] (4.center) to (5.center); 100 | \draw [style=solid] (7.center) to (6.center); 101 | \draw [style=solid] (8.center) to (9.center); 102 | \draw [style=solid] (16.center) to (17.center); 103 | \draw [style=solid] (19.center) to (18.center); 104 | \draw [style=solid] (20.center) to (21.center); 105 | \draw [style=solid] (28.center) to (29.center); 106 | \draw [style=solid] (31.center) to (30.center); 107 | \draw [style=solid] (32.center) to (33.center); 108 | \draw [style=light fill] (47.center) 109 | to (36.center) 110 | to (37.center) 111 | to (46.center) 112 | to cycle; 113 | \draw [style=solid] (39.center) to (38.center); 114 | \draw [style=solid] (40.center) to (41.center); 115 | \draw [style=solid] (43.center) to (42.center); 116 | \draw [style=solid] (44.center) to (45.center); 117 | \draw [style=light fill] (48.center) 118 | to (49.center) 119 | to (58.center) 120 | to (59.center) 121 | to cycle; 122 | \draw [style=solid] (51.center) to (50.center); 123 | \draw [style=solid] (52.center) to (53.center); 124 | \draw [style=solid] (55.center) to (54.center); 125 | \draw [style=solid] (56.center) to (57.center); 126 | \draw [style=red fill] (15.center) 127 | to (2.center) 128 | to (95.center) 129 | to (14.center) 130 | to cycle; 131 | \draw [style=red fill] (16.center) to (27.center); 132 | \draw [style=red fill] (15.center) 133 | to (14.center) 134 | to (27.center) 135 | to (16.center) 136 | to cycle; 137 | \draw [style=red fill] (16.center) 138 | to (27.center) 139 | to (28.center) 140 | to (19.center) 141 | to cycle; 142 | \draw [style=red fill] (19.center) 143 | to (20.center) 144 | to (31.center) 145 | to (28.center) 146 | to cycle; 147 | \draw [style=red fill] (31.center) 148 | to (20.center) 149 | to (96.center) 150 | to (32.center) 151 | to cycle; 152 | \draw [style=green fill] (97.center) 153 | to (36.center) 154 | to (27.center) 155 | to (14.center) 156 | to cycle; 157 | \draw [style=green fill] (28.center) 158 | to (27.center) 159 | to (36.center) 160 | to (39.center); 161 | \draw [style=green fill] (39.center) to (28.center); 162 | \draw [style=green fill] (39.center) 163 | to (28.center) 164 | to (31.center) 165 | to (40.center) 166 | to cycle; 167 | \draw [style=green fill] (31.center) 168 | to (40.center) 169 | to (43.center) 170 | to (32.center) 171 | to cycle; 172 | \draw [style=green fill] (43.center) 173 | to (44.center) 174 | to (98.center) 175 | to (32.center) 176 | to cycle; 177 | \end{pgfonlayer} 178 | \end{tikzpicture} 179 | -------------------------------------------------------------------------------- /Images/image-13.tikz: -------------------------------------------------------------------------------- 1 | \begin{tikzpicture} 2 | \begin{pgfonlayer}{nodelayer} 3 | \node [style=none] (0) at (0, 0) {}; 4 | \node [style=none] (1) at (0, -1) {}; 5 | \node [style=none] (2) at (2, -1) {}; 6 | \node [style=none] (3) at (2, 0) {}; 7 | \node [style=none] (4) at (4, 0) {}; 8 | \node [style=none] (5) at (4, -1) {}; 9 | \node [style=none] (6) at (6, -1) {}; 10 | \node [style=none] (7) at (6, 0) {}; 11 | \node [style=none] (8) at (8, 0) {}; 12 | \node [style=none] (9) at (8, -1) {}; 13 | \node [style=none] (10) at (10, -1) {}; 14 | \node [style=none] (11) at (10, 0) {}; 15 | \node [style=none] (14) at (4, -2) {}; 16 | \node [style=none] (15) at (4, -1) {}; 17 | \node [style=none] (16) at (6, -1) {}; 18 | \node [style=none] (17) at (6, -2) {}; 19 | \node [style=none] (18) at (8, -2) {}; 20 | \node [style=none] (19) at (8, -1) {}; 21 | \node [style=none] (20) at (10, -1) {}; 22 | \node [style=none] (21) at (10, -2) {}; 23 | \node [style=none] (24) at (4, -2) {}; 24 | \node [style=none] (25) at (4, -3) {}; 25 | \node [style=none] (26) at (6, -3) {}; 26 | \node [style=none] (27) at (6, -2) {}; 27 | \node [style=none] (28) at (8, -2) {}; 28 | \node [style=none] (29) at (8, -3) {}; 29 | \node [style=none] (30) at (10, -3) {}; 30 | \node [style=none] (31) at (10, -2) {}; 31 | \node [style=none] (32) at (12, -2) {}; 32 | \node [style=none] (33) at (12, -3) {}; 33 | \node [style=none] (34) at (14, -3) {}; 34 | \node [style=none] (35) at (14, -2) {}; 35 | \node [style=none] (36) at (6, -3) {}; 36 | \node [style=none] (37) at (6, -4) {}; 37 | \node [style=none] (38) at (8, -4) {}; 38 | \node [style=none] (39) at (8, -3) {}; 39 | \node [style=none] (40) at (10, -3) {}; 40 | \node [style=none] (41) at (10, -4) {}; 41 | \node [style=none] (42) at (12, -4) {}; 42 | \node [style=none] (43) at (12, -3) {}; 43 | \node [style=none] (44) at (14, -3) {}; 44 | \node [style=none] (45) at (14, -4) {}; 45 | \node [style=none] (46) at (16, -4) {}; 46 | \node [style=none] (47) at (16, -3) {}; 47 | \node [style=none] (48) at (8, -4) {}; 48 | \node [style=none] (49) at (8, -5) {}; 49 | \node [style=none] (50) at (10, -5) {}; 50 | \node [style=none] (51) at (10, -4) {}; 51 | \node [style=none] (52) at (12, -4) {}; 52 | \node [style=none] (53) at (12, -5) {}; 53 | \node [style=none] (54) at (14, -5) {}; 54 | \node [style=none] (55) at (14, -4) {}; 55 | \node [style=none] (56) at (16, -4) {}; 56 | \node [style=none] (57) at (16, -5) {}; 57 | \node [style=none] (58) at (18, -5) {}; 58 | \node [style=none] (59) at (18, -4) {}; 59 | \node [style=none] (60) at (1, -0.5) {\texttt{IF}}; 60 | \node [style=none] (61) at (3, -0.5) {\texttt{ID}}; 61 | \node [style=none] (62) at (5, -0.5) {\texttt{EX}}; 62 | \node [style=none] (63) at (7, -0.5) {\texttt{ME}}; 63 | \node [style=none] (64) at (9, -0.5) {\texttt{WB}}; 64 | \node [style=none] (65) at (9, -4.5) {\texttt{IF}}; 65 | \node [style=none] (66) at (11, -4.5) {\texttt{ID}}; 66 | \node [style=none] (67) at (13, -4.5) {\texttt{EX}}; 67 | \node [style=none] (68) at (15, -4.5) {\texttt{ME}}; 68 | \node [style=none] (69) at (17, -4.5) {\texttt{WB}}; 69 | \node [style=none, color=white] (70) at (3, -1.5) {\texttt{IF}}; 70 | \node [style=none, color=white] (71) at (5, -1.5) {\texttt{ID}}; 71 | \node [style=none, color=white] (72) at (7, -1.5) {\texttt{EX}}; 72 | \node [style=none, color=white] (73) at (9, -1.5) {\texttt{ME}}; 73 | \node [style=none, color=white] (74) at (11, -1.5) {\texttt{WB}}; 74 | \node [style=none] (75) at (5, -2.5) {\texttt{IF}}; 75 | \node [style=none] (76) at (7, -2.5) {\texttt{ID}}; 76 | \node [style=none] (77) at (9, -2.5) {\texttt{EX}}; 77 | \node [style=none] (78) at (11, -2.5) {\texttt{ME}}; 78 | \node [style=none] (79) at (13, -2.5) {\texttt{WB}}; 79 | \node [style=none] (80) at (7, -3.5) {\texttt{IF}}; 80 | \node [style=none] (81) at (9, -3.5) {\texttt{ID}}; 81 | \node [style=none] (82) at (11, -3.5) {\texttt{EX}}; 82 | \node [style=none] (83) at (13, -3.5) {\texttt{ME}}; 83 | \node [style=none] (84) at (15, -3.5) {\texttt{WB}}; 84 | \node [style=right align] (85) at (-0.5, -0.5) {\texttt{beq \$1, \$2, L1}}; 85 | \node [style=right align] (91) at (-0.5, -1.5) {\texttt{add \$4, \$5, \$6}}; 86 | \node [style=right align] (90) at (-0.5, -2.5) {\texttt{lw \$3, 300(\$0)}}; 87 | \node [style=right align] (89) at (-0.5, -3.5) {\texttt{lw \$7, 400(\$0)}}; 88 | \node [style=right align] (88) at (-0.5, -4.5) {\texttt{lw \$8, 300(\$0)}}; 89 | \node [style=none] (93) at (12.5, -1.5) {}; 90 | \node [style=left align] (94) at (15, -1.5) {branch delay}; 91 | \node [style=none] (95) at (2, -2) {}; 92 | \node [style=none] (96) at (12, -1) {}; 93 | \end{pgfonlayer} 94 | \begin{pgfonlayer}{edgelayer} 95 | \draw [style=light fill] (0.center) 96 | to (1.center) 97 | to (10.center) 98 | to (11.center) 99 | to cycle; 100 | \draw [style=solid] (3.center) to (2.center); 101 | \draw [style=solid] (4.center) to (5.center); 102 | \draw [style=solid] (7.center) to (6.center); 103 | \draw [style=solid] (8.center) to (9.center); 104 | \draw [style=light fill] (24.center) 105 | to (25.center) 106 | to (34.center) 107 | to (35.center) 108 | to cycle; 109 | \draw [style=solid] (27.center) to (26.center); 110 | \draw [style=solid] (28.center) to (29.center); 111 | \draw [style=solid] (31.center) to (30.center); 112 | \draw [style=solid] (32.center) to (33.center); 113 | \draw [style=light fill] (36.center) 114 | to (37.center) 115 | to (46.center) 116 | to (47.center) 117 | to cycle; 118 | \draw [style=solid] (39.center) to (38.center); 119 | \draw [style=solid] (40.center) to (41.center); 120 | \draw [style=solid] (43.center) to (42.center); 121 | \draw [style=solid] (44.center) to (45.center); 122 | \draw [style=light fill] (48.center) 123 | to (49.center) 124 | to (58.center) 125 | to (59.center) 126 | to cycle; 127 | \draw [style=solid] (51.center) to (50.center); 128 | \draw [style=solid] (52.center) to (53.center); 129 | \draw [style=solid] (55.center) to (54.center); 130 | \draw [style=solid] (56.center) to (57.center); 131 | \draw [style=red arrow] (94) to (93.center); 132 | \draw [style=red fill] (95.center) 133 | to (2.center) 134 | to (15.center) 135 | to (24.center) 136 | to cycle; 137 | \draw [style=red fill] (24.center) 138 | to (27.center) 139 | to (16.center) 140 | to (15.center) 141 | to cycle; 142 | \draw [style=red fill] (16.center) 143 | to (19.center) 144 | to (28.center) 145 | to (27.center) 146 | to cycle; 147 | \draw [style=red fill] (19.center) 148 | to (20.center) 149 | to (31.center) 150 | to (28.center) 151 | to cycle; 152 | \draw [style=red fill] (31.center) 153 | to (32.center) 154 | to (96.center) 155 | to (20.center) 156 | to cycle; 157 | \end{pgfonlayer} 158 | \end{tikzpicture} 159 | -------------------------------------------------------------------------------- /Images/image-14.tikz: -------------------------------------------------------------------------------- 1 | \begin{tikzpicture} 2 | \begin{pgfonlayer}{nodelayer} 3 | \node [style=left align, text={rgb,255: red,255; green,117; blue,56}] (0) at (0.25, -1) {\texttt{add \$1, \$2, \$3}}; 4 | \node [style=left align] (1) at (0.25, -2) {\texttt{if \$2 == 0 then }}; 5 | \node [style=left align, text={rgb,255: red,191; green,0; blue,64}] (2) at (0.25, -3) {\texttt{branch delay slot}}; 6 | \node [style=none] (4) at (0, 0) {}; 7 | \node [style=none] (5) at (0, -5) {}; 8 | \node [style=none] (6) at (9, -5) {}; 9 | \node [style=none] (7) at (9, 0) {}; 10 | \node [style=none] (8) at (8.5, -2) {}; 11 | \node [style=none] (9) at (8.5, -4) {}; 12 | \node [style=none] (11) at (7.5, -2) {}; 13 | \node [style=none] (12) at (5, -4) {}; 14 | \node [style=left align, text={rgb,255: red,191; green,0; blue,64}] (13) at (0.5, -4) {\(\ldots\)}; 15 | \node [style=none] (14) at (9.5, -2.5) {}; 16 | \node [style=none] (15) at (13.5, -2.5) {}; 17 | \node [style=left align, text={rgb,255: red,255; green,117; blue,56}] (16) at (14.25, -2) {\texttt{add \$1, \$2, \$3}}; 18 | \node [style=left align] (17) at (14.25, -1) {\texttt{if \$2 == 0 then }}; 19 | \node [style=none] (19) at (14, 0) {}; 20 | \node [style=none] (20) at (14, -5) {}; 21 | \node [style=none] (21) at (23, -5) {}; 22 | \node [style=none] (22) at (23, 0) {}; 23 | \node [style=none] (23) at (22.5, -1) {}; 24 | \node [style=none] (24) at (22.5, -3) {}; 25 | \node [style=none] (25) at (21.5, -1) {}; 26 | \node [style=none] (26) at (17, -3) {}; 27 | \node [style=left align, text={rgb,255: red,191; green,0; blue,64}] (27) at (14.5, -3) {\(\ldots\)}; 28 | \node [style=left align, text={rgb,255: red,191; green,0; blue,64}] (28) at (14.5, -4) {\(\ldots\)}; 29 | \end{pgfonlayer} 30 | \begin{pgfonlayer}{edgelayer} 31 | \draw [style=solid] (5.center) to (6.center); 32 | \draw [style=solid] (6.center) to (7.center); 33 | \draw [style=solid] (7.center) to (4.center); 34 | \draw [style=solid] (4.center) to (5.center); 35 | \draw [style=red line] (11.center) to (8.center); 36 | \draw [style=red line] (9.center) to (8.center); 37 | \draw [style=red arrow] (9.center) to (12.center); 38 | \draw [style=big arrow] (14.center) to (15.center); 39 | \draw [style=solid] (20.center) to (21.center); 40 | \draw [style=solid] (21.center) to (22.center); 41 | \draw [style=solid] (22.center) to (19.center); 42 | \draw [style=solid] (19.center) to (20.center); 43 | \draw [style=red line] (25.center) to (23.center); 44 | \draw [style=red line] (24.center) to (23.center); 45 | \draw [style=red arrow] (24.center) to (26.center); 46 | \end{pgfonlayer} 47 | \end{tikzpicture} 48 | -------------------------------------------------------------------------------- /Images/image-15.tikz: -------------------------------------------------------------------------------- 1 | \begin{tikzpicture} 2 | \begin{pgfonlayer}{nodelayer} 3 | \node [style=left align, text={rgb,255: red,255; green,117; blue,56}] (0) at (0.25, -2) {\texttt{sub \$4, \$5, \$6}}; 4 | \node [style=left align] (1) at (0.25, -5) {\texttt{if \$1 == 0 then }}; 5 | \node [style=left align, text={rgb,255: red,191; green,0; blue,64}] (2) at (0.25, -6) {\texttt{branch delay slot}}; 6 | \node [style=none] (3) at (0, 0) {}; 7 | \node [style=none] (4) at (0, -7) {}; 8 | \node [style=none] (5) at (9, -7) {}; 9 | \node [style=none] (6) at (9, 0) {}; 10 | \node [style=none] (7) at (8.5, -1) {}; 11 | \node [style=none] (8) at (8.5, -5) {}; 12 | \node [style=none] (9) at (7, -1) {}; 13 | \node [style=none] (10) at (7.5, -5) {}; 14 | \node [style=left align, text={rgb,255: red,191; green,0; blue,64}] (11) at (0.5, -3) {\(\ldots\)}; 15 | \node [style=none] (12) at (9.5, -3.5) {}; 16 | \node [style=none] (13) at (13.5, -3.5) {}; 17 | \node [style=left align] (26) at (0.25, -4) {\texttt{add \$1, \$2, \$3}}; 18 | \node [style=left align, text={rgb,255: red,191; green,0; blue,64}] (27) at (0.5, -1) {\(\ldots\)}; 19 | \node [style=left align, text={rgb,255: red,255; green,117; blue,56}] (28) at (14.25, -6) {\texttt{sub \$4, \$5, \$6}}; 20 | \node [style=left align] (29) at (14.25, -5) {\texttt{if \$1 == 0 then }}; 21 | \node [style=none] (31) at (14, 0) {}; 22 | \node [style=none] (32) at (14, -7) {}; 23 | \node [style=none] (33) at (23, -7) {}; 24 | \node [style=none] (34) at (23, 0) {}; 25 | \node [style=none] (35) at (22.5, -2) {}; 26 | \node [style=none] (36) at (22.5, -5) {}; 27 | \node [style=none] (37) at (18, -2) {}; 28 | \node [style=none] (38) at (21.5, -5) {}; 29 | \node [style=left align, text={rgb,255: red,191; green,0; blue,64}] (39) at (14.5, -3) {\(\ldots\)}; 30 | \node [style=left align] (40) at (14.25, -4) {\texttt{add \$1, \$2, \$3}}; 31 | \node [style=left align, text={rgb,255: red,191; green,0; blue,64}] (41) at (14.5, -2) {\(\ldots\)}; 32 | \node [style=left align, text={rgb,255: red,255; green,117; blue,56}] (42) at (14.25, -1) {\texttt{sub \$4, \$5, \$6}}; 33 | \end{pgfonlayer} 34 | \begin{pgfonlayer}{edgelayer} 35 | \draw [style=red arrow] (7.center) to (9.center); 36 | \draw [style=solid] (4.center) to (5.center); 37 | \draw [style=solid] (5.center) to (6.center); 38 | \draw [style=solid] (6.center) to (3.center); 39 | \draw [style=solid] (3.center) to (4.center); 40 | \draw [style=red line] (8.center) to (7.center); 41 | \draw [style=big arrow] (12.center) to (13.center); 42 | \draw [style=red line] (10.center) to (8.center); 43 | \draw [style=red arrow] (35.center) to (37.center); 44 | \draw [style=solid] (32.center) to (33.center); 45 | \draw [style=solid] (33.center) to (34.center); 46 | \draw [style=solid] (34.center) to (31.center); 47 | \draw [style=solid] (31.center) to (32.center); 48 | \draw [style=red line] (36.center) to (35.center); 49 | \draw [style=red line] (38.center) to (36.center); 50 | \end{pgfonlayer} 51 | \end{tikzpicture} 52 | -------------------------------------------------------------------------------- /Images/image-16.tikz: -------------------------------------------------------------------------------- 1 | \begin{tikzpicture} 2 | \begin{pgfonlayer}{nodelayer} 3 | \node [style=left align] (0) at (0.25, -1) {\texttt{add \$1, \$2, \$3}}; 4 | \node [style=left align] (1) at (0.25, -2) {\texttt{if \$1 == 0 then }}; 5 | \node [style=left align, text={rgb,255: red,191; green,0; blue,64}] (2) at (0.25, -3) {\texttt{branch delay slot}}; 6 | \node [style=none] (3) at (0, 0) {}; 7 | \node [style=none] (4) at (0, -7) {}; 8 | \node [style=none] (5) at (9, -7) {}; 9 | \node [style=none] (6) at (9, 0) {}; 10 | \node [style=none] (7) at (8.5, -2) {}; 11 | \node [style=none] (8) at (8.5, -5) {}; 12 | \node [style=none] (9) at (7.5, -2) {}; 13 | \node [style=none] (10) at (5, -5) {}; 14 | \node [style=left align, text={rgb,255: red,191; green,0; blue,64}] (11) at (0.5, -5) {\(\ldots\)}; 15 | \node [style=none] (12) at (9.5, -3.5) {}; 16 | \node [style=none] (13) at (13.5, -3.5) {}; 17 | \node [style=left align, text={rgb,255: red,255; green,117; blue,56}] (14) at (0.25, -4) {\texttt{or \$7, \$8, \$9}}; 18 | \node [style=none] (18) at (14, 0) {}; 19 | \node [style=none] (19) at (14, -7) {}; 20 | \node [style=none] (20) at (23, -7) {}; 21 | \node [style=none] (21) at (23, 0) {}; 22 | \node [style=none] (22) at (22.5, -2) {}; 23 | \node [style=none] (23) at (22.5, -5) {}; 24 | \node [style=none] (24) at (21.5, -2) {}; 25 | \node [style=none] (25) at (21, -5) {}; 26 | \node [style=left align] (30) at (0.25, -6) {\texttt{sub \$4, \$5, \$6}}; 27 | \node [style=left align] (31) at (14.25, -1) {\texttt{add \$1, \$2, \$3}}; 28 | \node [style=left align] (32) at (14.25, -2) {\texttt{if \$1 == 0 then }}; 29 | \node [style=left align, text={rgb,255: red,255; green,117; blue,56}] (33) at (14.25, -3) {\texttt{or \$7, \$8, \$9}}; 30 | \node [style=left align, text={rgb,255: red,191; green,0; blue,64}] (34) at (14.25, -4) {\(\ldots\)}; 31 | \node [style=left align] (35) at (14.25, -5) {\texttt{sub \$4, \$5, \$6}}; 32 | \node [style=left align, text={rgb,255: red,191; green,0; blue,64}] (36) at (14.25, -6) {\(\ldots\)}; 33 | \end{pgfonlayer} 34 | \begin{pgfonlayer}{edgelayer} 35 | \draw [style=red line] (7.center) to (9.center); 36 | \draw [style=solid] (4.center) to (5.center); 37 | \draw [style=solid] (5.center) to (6.center); 38 | \draw [style=solid] (6.center) to (3.center); 39 | \draw [style=solid] (3.center) to (4.center); 40 | \draw [style=red line] (8.center) to (7.center); 41 | \draw [style=big arrow] (12.center) to (13.center); 42 | \draw [style=red line] (22.center) to (24.center); 43 | \draw [style=solid] (19.center) to (20.center); 44 | \draw [style=solid] (20.center) to (21.center); 45 | \draw [style=solid] (21.center) to (18.center); 46 | \draw [style=solid] (18.center) to (19.center); 47 | \draw [style=red line] (23.center) to (22.center); 48 | \draw [style=red arrow] (23.center) to (25.center); 49 | \draw [style=red arrow] (8.center) to (10.center); 50 | \end{pgfonlayer} 51 | \end{tikzpicture} 52 | -------------------------------------------------------------------------------- /Images/image-17.tikz: -------------------------------------------------------------------------------- 1 | \begin{tikzpicture} 2 | \begin{pgfonlayer}{nodelayer} 3 | \node [style=none] (0) at (0, 0) {}; 4 | \node [style=none] (1) at (0, -1.5) {}; 5 | \node [style=none] (4) at (5.5, -0.75) {address of a branch instruction}; 6 | \node [style=none] (5) at (11, 0) {}; 7 | \node [style=none] (6) at (11, -1.5) {}; 8 | \node [style=none] (7) at (21, -1.5) {}; 9 | \node [style=none] (8) at (21, 0) {}; 10 | \node [style=none] (9) at (16, -0.75) {predicted destination address}; 11 | \end{pgfonlayer} 12 | \begin{pgfonlayer}{edgelayer} 13 | \draw [style=light fill] (1.center) 14 | to (6.center) 15 | to (5.center) 16 | to (0.center) 17 | to cycle; 18 | \draw [style=light fill] (5.center) 19 | to (6.center) 20 | to (7.center) 21 | to (8.center) 22 | to cycle; 23 | \end{pgfonlayer} 24 | \end{tikzpicture} 25 | -------------------------------------------------------------------------------- /Images/image-18.tikz: -------------------------------------------------------------------------------- 1 | \begin{tikzpicture} 2 | \begin{pgfonlayer}{nodelayer} 3 | \node [style=none] (94) at (20, -14.5) {}; 4 | \node [style=none] (95) at (20, -17.5) {}; 5 | \node [style=none] (96) at (36, -17.5) {}; 6 | \node [style=none] (97) at (36, -14.5) {}; 7 | \node [style=none] (65) at (12, -6) {}; 8 | \node [style=none] (66) at (36, -6) {}; 9 | \node [style=none] (67) at (36, 0) {}; 10 | \node [style=none] (68) at (12, 0) {}; 11 | \node [style=none] (69) at (22, -6) {}; 12 | \node [style=none] (70) at (22, 0) {}; 13 | \node [style=none] (71) at (29, 0.5) {predicted target \texttt{PC}}; 14 | \node [style=none] (72) at (16.75, 0.5) {\texttt{LSB} of the \texttt{PC}}; 15 | \node [style=none] (73) at (16, -6) {}; 16 | \node [style=none] (74) at (16, -9.25) {}; 17 | \node [style=none] (79) at (5, -0.5) {\texttt{PC} of the branch instruction}; 18 | \node [style=none] (80) at (10, -1) {}; 19 | \node [style=none] (81) at (10, 0) {}; 20 | \node [style=none] (82) at (0, -1) {}; 21 | \node [style=none] (83) at (0, 0) {}; 22 | \node [style=none] (84) at (7.5, -10.5) {}; 23 | \node [style=none] (85) at (14.75, -10.5) {}; 24 | \node [style=none] (86) at (16, -10.5) {\(=\)}; 25 | \node [style=none] (88) at (19.75, -10.5) {}; 26 | \node [style=none] (90) at (16, -15.75) {}; 27 | \node [style=right align] (91) at (19.25, -15.25) {\texttt{NO}}; 28 | \node [style=left align] (93) at (20.5, -16.5) {proceed normally}; 29 | \node [style=left align] (98) at (20.5, -15.5) {the instruction is not predicted to be a branch, }; 30 | \node [style=none] (100) at (20, -9) {}; 31 | \node [style=none] (101) at (20, -12) {}; 32 | \node [style=none] (102) at (36, -12) {}; 33 | \node [style=none] (103) at (36, -9) {}; 34 | \node [style=left align] (104) at (20.5, -11) {the new \texttt{PC} is going to be used}; 35 | \node [style=left align] (105) at (20.5, -10) {the instruction is predicted to be a branch,}; 36 | \node [style=none] (106) at (19.75, -15.75) {}; 37 | \node [style=right align] (107) at (19.25, -10) {\texttt{YES}}; 38 | \node [style=none] (111) at (17, -10.5) {}; 39 | \node [style=none] (112) at (16, -9.5) {}; 40 | \node [style=none] (114) at (16, -11.5) {}; 41 | \node [style=none] (115) at (15, -10.5) {}; 42 | \node [style=none] (116) at (7.5, -1.5) {}; 43 | \node [style=none] (117) at (10, -1.25) {}; 44 | \node [style=none] (118) at (10, -1.5) {}; 45 | \node [style=none] (119) at (5, -1.5) {}; 46 | \node [style=none] (120) at (5, -1.25) {}; 47 | \node [style=left align] (121) at (8, -10) {\(k\) \textit{LSBs}}; 48 | \node [style=none] (122) at (12, -1) {}; 49 | \node [style=none] (123) at (12, -2) {}; 50 | \node [style=none] (124) at (12, -3) {}; 51 | \node [style=none] (125) at (12, -4) {}; 52 | \node [style=none] (126) at (12, -5) {}; 53 | \node [style=none] (127) at (36, -1) {}; 54 | \node [style=none] (128) at (36, -2) {}; 55 | \node [style=none] (129) at (36, -3) {}; 56 | \node [style=none] (130) at (36, -4) {}; 57 | \node [style=none] (131) at (36, -5) {}; 58 | \node [style=none] (132) at (29, -6) {}; 59 | \node [style=none] (133) at (29, -8.75) {}; 60 | \end{pgfonlayer} 61 | \begin{pgfonlayer}{edgelayer} 62 | \draw [style=light fill] (96.center) 63 | to (95.center) 64 | to (94.center) 65 | to (97.center) 66 | to cycle; 67 | \draw [style=light fill] (68.center) 68 | to (65.center) 69 | to (66.center) 70 | to (67.center); 71 | \draw [style=big arrow] (73.center) to (74.center); 72 | \draw [style=light fill] (83.center) 73 | to (82.center) 74 | to (80.center) 75 | to (81.center) 76 | to cycle; 77 | \draw [style=big arrow] (84.center) to (85.center); 78 | \draw [style=light fill] (102.center) 79 | to (101.center) 80 | to (100.center) 81 | to (103.center) 82 | to cycle; 83 | \draw [style=green arrow] (90.center) to (106.center); 84 | \draw [style=light fill] (115.center) 85 | to [bend left=45] (112.center) 86 | to [bend left=45] (111.center) 87 | to [bend left=45] (114.center) 88 | to [bend left=45] cycle; 89 | \draw [style=big] (84.center) to (116.center); 90 | \draw [style=big] (120.center) to (119.center); 91 | \draw [style=big] (119.center) to (118.center); 92 | \draw [style=big] (118.center) to (117.center); 93 | \draw [style=solid] (70.center) to (69.center); 94 | \draw [style=solid] (122.center) to (127.center); 95 | \draw [style=solid] (128.center) to (123.center); 96 | \draw [style=solid] (124.center) to (129.center); 97 | \draw [style=solid] (130.center) to (125.center); 98 | \draw [style=solid] (131.center) to (126.center); 99 | \draw [style=solid] (68.center) to (67.center); 100 | \draw [style=green line, in=90, out=-90] (114.center) to (90.center); 101 | \draw [style=red arrow, in=180, out=0] (111.center) to (88.center); 102 | \draw [style=big arrow] (132.center) to (133.center); 103 | \end{pgfonlayer} 104 | \end{tikzpicture} 105 | -------------------------------------------------------------------------------- /Images/image-19.tikz: -------------------------------------------------------------------------------- 1 | \begin{tikzpicture} 2 | \begin{pgfonlayer}{nodelayer} 3 | \node [style=none] (48) at (3.5, -0.5) {\(n\)-bits branch address}; 4 | \node [style=none] (0) at (11, 0) {}; 5 | \node [style=none] (1) at (13, 0) {}; 6 | \node [style=none] (2) at (13, -1) {}; 7 | \node [style=none] (3) at (11, -1) {}; 8 | \node [style=none] (4) at (12, -0.5) {\texttt{0}}; 9 | \node [style=none] (5) at (11, -1) {}; 10 | \node [style=none] (6) at (13, -1) {}; 11 | \node [style=none] (7) at (13, -2) {}; 12 | \node [style=none] (8) at (11, -2) {}; 13 | \node [style=none] (9) at (12, -1.5) {\texttt{0}}; 14 | \node [style=none] (10) at (11, -2) {}; 15 | \node [style=none] (11) at (13, -2) {}; 16 | \node [style=none] (12) at (13, -3) {}; 17 | \node [style=none] (13) at (11, -3) {}; 18 | \node [style=none] (14) at (12, -2.5) {\texttt{1}}; 19 | \node [style=none] (15) at (11, -3) {}; 20 | \node [style=none] (16) at (13, -3) {}; 21 | \node [style=none] (17) at (13, -4) {}; 22 | \node [style=none] (18) at (11, -4) {}; 23 | \node [style=none] (19) at (12, -3.5) {\texttt{0}}; 24 | \node [style=none] (20) at (13, -4) {}; 25 | \node [style=none] (21) at (11, -4) {}; 26 | \node [style=none] (22) at (11, -4) {}; 27 | \node [style=none] (23) at (13, -4) {}; 28 | \node [style=none] (24) at (13, -5) {}; 29 | \node [style=none] (25) at (11, -5) {}; 30 | \node [style=none] (26) at (12, -4.5) {\texttt{1}}; 31 | \node [style=none] (27) at (11, -5) {}; 32 | \node [style=none] (28) at (13, -5) {}; 33 | \node [style=none] (29) at (13, -6) {}; 34 | \node [style=none] (30) at (11, -6) {}; 35 | \node [style=none] (31) at (12, -5.5) {\texttt{1}}; 36 | \node [style=none] (32) at (11, -6) {}; 37 | \node [style=none] (33) at (13, -6) {}; 38 | \node [style=none] (34) at (13, -7) {}; 39 | \node [style=none] (35) at (11, -7) {}; 40 | \node [style=none] (36) at (12, -6.5) {\texttt{1}}; 41 | \node [style=none] (37) at (12, 0.75) {1-\textit{BHT}}; 42 | \node [style=none] (38) at (14, -6.75) {}; 43 | \node [style=none] (39) at (14, -0.25) {}; 44 | \node [style=right align] (40) at (14, -3.5) {\(2^k\) entries}; 45 | \node [style=none] (41) at (13, -5.5) {}; 46 | \node [style=none] (42) at (17.5, -5.5) {}; 47 | \node [style=right align] (43) at (18, -5.5) {\texttt{T/NT}}; 48 | \node [style=none] (44) at (0, -1) {}; 49 | \node [style=none] (45) at (7, -1) {}; 50 | \node [style=none] (46) at (7, 0) {}; 51 | \node [style=none] (47) at (0, 0) {}; 52 | \node [style=none] (50) at (4, -1.25) {}; 53 | \node [style=none] (51) at (5.5, -1.5) {}; 54 | \node [style=none] (53) at (4, -1.5) {}; 55 | \node [style=none] (55) at (5.5, -5.5) {}; 56 | \node [style=none] (56) at (10.75, -5.5) {}; 57 | \node [style=right align] (57) at (6, -5) {\(k\) \textit{LSBs}}; 58 | \node [style=none] (58) at (7, -1.5) {}; 59 | \node [style=none] (59) at (7, -1.25) {}; 60 | \node [style=none] (60) at (14, -7) {}; 61 | \node [style=none] (61) at (14, 0) {}; 62 | \end{pgfonlayer} 63 | \begin{pgfonlayer}{edgelayer} 64 | \draw [style=light fill] (0.center) 65 | to (1.center) 66 | to (2.center) 67 | to (3.center) 68 | to cycle; 69 | \draw [style=light fill] (5.center) 70 | to (6.center) 71 | to (7.center) 72 | to (8.center) 73 | to cycle; 74 | \draw [style=light fill] (10.center) 75 | to (11.center) 76 | to (12.center) 77 | to (13.center) 78 | to cycle; 79 | \draw [style=light fill] (18.center) 80 | to (15.center) 81 | to (16.center) 82 | to (17.center) 83 | to cycle; 84 | \draw [style=light fill] (20.center) to (21.center); 85 | \draw [style=light fill] (22.center) 86 | to (23.center) 87 | to (24.center) 88 | to (25.center) 89 | to cycle; 90 | \draw [style=light fill] (27.center) 91 | to (28.center) 92 | to (29.center) 93 | to (30.center) 94 | to cycle; 95 | \draw [style=light fill] (35.center) 96 | to (32.center) 97 | to (33.center) 98 | to (34.center) 99 | to cycle; 100 | \draw [style=double arrow] (38.center) to (39.center); 101 | \draw [style=green arrow] (41.center) to (42.center); 102 | \draw [style=light fill] (47.center) 103 | to (44.center) 104 | to (45.center) 105 | to (46.center) 106 | to cycle; 107 | \draw [style=big] (59.center) 108 | to (58.center) 109 | to (53.center) 110 | to (50.center); 111 | \draw [style=big arrow] (55.center) to (56.center); 112 | \draw [style=big] (55.center) to (51.center); 113 | \draw [style=dashed] (60.center) to (34.center); 114 | \draw [style=dashed] (61.center) to (1.center); 115 | \end{pgfonlayer} 116 | \end{tikzpicture} 117 | -------------------------------------------------------------------------------- /Images/image-2.tikz: -------------------------------------------------------------------------------- 1 | \begin{tikzpicture} 2 | \begin{pgfonlayer}{nodelayer} 3 | \node [style=none] (0) at (0, 3) {}; 4 | \node [style=none] (11) at (-3, 0) {}; 5 | \node [style=left align, text={rgb,255: red,191; green,0; blue,64}] (12) at (-2.75, 2.25) {evaluate}; 6 | \node [style=right align, text={rgb,255: red,0; green,128; blue,128}] (13) at (2.75, 2.25) {simulate}; 7 | \node [style=none] (17) at (3, 0) {}; 8 | \node [style=none] (18) at (0, -3) {}; 9 | \node [style=none] (19) at (3, 0) {}; 10 | \node [style=right align, text={rgb,255: red,31; green,117; blue,254}] (20) at (2.75, -2.25) {implement}; 11 | \node [style=left align, text={rgb,255: red,255; green,117; blue,56}] (21) at (-2.75, -2.25) {repeat}; 12 | \node [style=none] (22) at (-3, 0) {}; 13 | \end{pgfonlayer} 14 | \begin{pgfonlayer}{edgelayer} 15 | \draw [style=red arrow, in=180, out=90] (11.center) to (0.center); 16 | \draw [style=green arrow, in=90, out=0] (0.center) to (17.center); 17 | \draw [style=blue arrow, in=0, out=-90] (19.center) to (18.center); 18 | \draw [style=orange arrow, in=-90, out=180] (18.center) to (22.center); 19 | \end{pgfonlayer} 20 | \end{tikzpicture} 21 | -------------------------------------------------------------------------------- /Images/image-20.tikz: -------------------------------------------------------------------------------- 1 | \begin{tikzpicture} 2 | \begin{pgfonlayer}{nodelayer} 3 | \node [style=none] (0) at (-2, 5) {}; 4 | \node [style=none] (1) at (0, 5) {}; 5 | \node [style=none] (2) at (-2, 4) {}; 6 | \node [style=none] (3) at (0, 4) {}; 7 | \node [style=none] (4) at (-2, 4) {}; 8 | \node [style=none] (5) at (0, 4) {}; 9 | \node [style=none] (6) at (-2, 3) {}; 10 | \node [style=none] (7) at (0, 3) {}; 11 | \node [style=none] (8) at (-2, 3) {}; 12 | \node [style=none] (9) at (0, 3) {}; 13 | \node [style=none] (10) at (-2, 2) {}; 14 | \node [style=none] (11) at (0, 2) {}; 15 | \node [style=none] (12) at (-2, 2) {}; 16 | \node [style=none] (13) at (0, 2) {}; 17 | \node [style=none] (14) at (-2, 1) {}; 18 | \node [style=none] (15) at (0, 1) {}; 19 | \node [style=none] (16) at (-2, 1) {}; 20 | \node [style=none] (17) at (0, 1) {}; 21 | \node [style=none] (18) at (-2, 0) {}; 22 | \node [style=none] (19) at (0, 0) {}; 23 | \node [style=none] (20) at (-2, 0) {}; 24 | \node [style=none] (21) at (0, 0) {}; 25 | \node [style=none] (22) at (-2, -1) {}; 26 | \node [style=none] (23) at (0, -1) {}; 27 | \node [style=none] (24) at (2, 5) {}; 28 | \node [style=none] (25) at (4, 5) {}; 29 | \node [style=none] (26) at (2, 4) {}; 30 | \node [style=none] (27) at (4, 4) {}; 31 | \node [style=none] (38) at (2, 1) {}; 32 | \node [style=none] (39) at (4, 1) {}; 33 | \node [style=none] (40) at (2, 1) {}; 34 | \node [style=none] (41) at (4, 1) {}; 35 | \node [style=none] (42) at (2, 0) {}; 36 | \node [style=none] (43) at (4, 0) {}; 37 | \node [style=none] (44) at (2, 0) {}; 38 | \node [style=none] (45) at (4, 0) {}; 39 | \node [style=none] (46) at (2, -1) {}; 40 | \node [style=none] (47) at (4, -1) {}; 41 | \node [style=none] (48) at (2, 1) {}; 42 | \node [style=none] (49) at (4, 1) {}; 43 | \node [style=none] (50) at (2, 2) {}; 44 | \node [style=none] (51) at (4, 2) {}; 45 | \node [style=none] (52) at (2, 3) {}; 46 | \node [style=none] (53) at (2, 2) {}; 47 | \node [style=none] (54) at (4, 2) {}; 48 | \node [style=none] (55) at (4, 3) {}; 49 | \node [style=none] (56) at (2, 4) {}; 50 | \node [style=none] (57) at (2, 3) {}; 51 | \node [style=none] (58) at (4, 3) {}; 52 | \node [style=none] (59) at (4, 4) {}; 53 | \node [style=none] (60) at (-1, 5.5) {\texttt{T0}}; 54 | \node [style=none] (61) at (3, 5.5) {\texttt{T1}}; 55 | \node [style=none] (62) at (-2.5, 8) {}; 56 | \node [style=none] (63) at (4.5, 8) {}; 57 | \node [style=none] (64) at (4.5, 9) {}; 58 | \node [style=none] (65) at (-2.5, 9) {}; 59 | \node [style=none] (66) at (1, 8.5) {\(k\)-bits branch address}; 60 | \node [style=none] (67) at (1, 8) {}; 61 | \node [style=none] (69) at (-2.25, 1.5) {}; 62 | \node [style=none] (70) at (1, 9) {}; 63 | \node [style=none] (71) at (5, 1.5) {}; 64 | \node [style=none] (74) at (4.25, 1.5) {}; 65 | \node [style=none] (75) at (-1, -1) {}; 66 | \node [style=none] (76) at (-1, -2.75) {}; 67 | \node [style=none] (77) at (3, -1) {}; 68 | \node [style=none] (78) at (3, -2.75) {}; 69 | \node [style=none] (79) at (-2, -3) {}; 70 | \node [style=none] (80) at (4, -3) {}; 71 | \node [style=none] (81) at (-0.5, -5) {}; 72 | \node [style=none] (82) at (2.5, -5) {}; 73 | \node [style=none] (83) at (1, -5) {}; 74 | \node [style=none] (84) at (1, -6.75) {}; 75 | \node [style=none] (89) at (1, -7.25) {\texttt{T/NT} branch prediction}; 76 | \node [style=none] (90) at (-1.75, -4) {}; 77 | \node [style=right align] (92) at (-7.25, -4) {last branch result}; 78 | \node [style=none] (93) at (-3, 1.5) {}; 79 | \node [style=none] (94) at (1, 8) {}; 80 | \node [style=none] (95) at (1, 6.5) {}; 81 | \node [style=none] (96) at (-3, 6.5) {}; 82 | \node [style=none] (97) at (5, 6.5) {}; 83 | \node [style=right align] (98) at (-5.25, 5) {\textit{if last branch not taken}}; 84 | \node [style=right align] (99) at (-5.25, 5.75) {Branch History Table}; 85 | \node [style=none] (100) at (-5, 6.5) {}; 86 | \node [style=none] (101) at (-5, 4.25) {}; 87 | \node [style=none] (102) at (-13, 4.25) {}; 88 | \node [style=none] (103) at (-13, 6.5) {}; 89 | \node [style=none] (104) at (-5, 5.5) {}; 90 | \node [style=none] (105) at (-1.75, 5.5) {}; 91 | \node [style=left align] (106) at (7.25, 5) {\textit{if last branch taken}}; 92 | \node [style=left align] (107) at (7.25, 5.75) {Branch History Table}; 93 | \node [style=none] (108) at (14.5, 6.5) {}; 94 | \node [style=none] (109) at (14.5, 4.25) {}; 95 | \node [style=none] (110) at (7, 4.25) {}; 96 | \node [style=none] (111) at (7, 6.5) {}; 97 | \node [style=none] (112) at (3.75, 5.5) {}; 98 | \node [style=none] (113) at (7, 5.5) {}; 99 | \node [style=none] (114) at (-4, -3.5) {}; 100 | \node [style=none] (115) at (-7, -3.5) {}; 101 | \node [style=none] (116) at (-7, -4.5) {}; 102 | \node [style=none] (117) at (-4, -4.5) {}; 103 | \node [style=none] (118) at (-4, -4) {}; 104 | \node [style=none] (119) at (-5.5, -4) {\texttt{NT/T}}; 105 | \end{pgfonlayer} 106 | \begin{pgfonlayer}{edgelayer} 107 | \draw [style=light fill] (3.center) 108 | to (2.center) 109 | to (0.center) 110 | to (1.center) 111 | to cycle; 112 | \draw [style=light fill] (7.center) 113 | to (6.center) 114 | to (4.center) 115 | to (5.center) 116 | to cycle; 117 | \draw [style=light fill] (11.center) 118 | to (10.center) 119 | to (8.center) 120 | to (9.center) 121 | to cycle; 122 | \draw [style=light fill] (15.center) 123 | to (14.center) 124 | to (12.center) 125 | to (13.center) 126 | to cycle; 127 | \draw [style=light fill] (16.center) 128 | to [in=180, out=0] (17.center) 129 | to (19.center) 130 | to (18.center) 131 | to cycle; 132 | \draw [style=light fill] (23.center) 133 | to (22.center) 134 | to (20.center) 135 | to [in=180, out=0] (21.center) 136 | to cycle; 137 | \draw [style=light fill] (27.center) 138 | to (26.center) 139 | to (24.center) 140 | to (25.center) 141 | to cycle; 142 | \draw [style=light fill] (39.center) to (38.center); 143 | \draw [style=light fill] (40.center) 144 | to [in=180, out=0] (41.center) 145 | to (43.center) 146 | to (42.center) 147 | to cycle; 148 | \draw [style=light fill] (47.center) 149 | to (46.center) 150 | to (44.center) 151 | to [in=180, out=0] (45.center) 152 | to cycle; 153 | \draw [style=light fill] (48.center) 154 | to (49.center) 155 | to (51.center) 156 | to (50.center) 157 | to cycle; 158 | \draw [style=light fill] (53.center) 159 | to (52.center) 160 | to (55.center) 161 | to (54.center) 162 | to cycle; 163 | \draw [style=light fill] (57.center) 164 | to (56.center) 165 | to (59.center) 166 | to (58.center) 167 | to cycle; 168 | \draw [style=light fill] (65.center) 169 | to (62.center) 170 | to (63.center) 171 | to (64.center) 172 | to cycle; 173 | \draw [style=big arrow] (71.center) to (74.center); 174 | \draw [style=big arrow] (75.center) to (76.center); 175 | \draw [style=big arrow] (77.center) to (78.center); 176 | \draw [style=light fill] (81.center) 177 | to [in=180, out=0] (82.center) 178 | to (80.center) 179 | to [in=360, out=180] (79.center) 180 | to cycle; 181 | \draw [style=green arrow] (83.center) to (84.center); 182 | \draw [style=big arrow] (93.center) to (69.center); 183 | \draw [style=big] (96.center) to (93.center); 184 | \draw [style=big] (95.center) to (96.center); 185 | \draw [style=big] (95.center) to (97.center); 186 | \draw [style=big] (97.center) to (71.center); 187 | \draw [style=big] (95.center) to (94.center); 188 | \draw [style=big] (101.center) 189 | to (100.center) 190 | to (103.center) 191 | to (102.center) 192 | to cycle; 193 | \draw [style=dashed arrow] (104.center) to (105.center); 194 | \draw [style=big] (110.center) 195 | to (109.center) 196 | to (108.center) 197 | to (111.center) 198 | to cycle; 199 | \draw [style=dashed arrow] (113.center) to (112.center); 200 | \draw [style=light fill] (117.center) 201 | to (116.center) 202 | to (115.center) 203 | to (114.center) 204 | to cycle; 205 | \draw [style=big arrow] (118.center) to (90.center); 206 | \end{pgfonlayer} 207 | \end{tikzpicture} 208 | -------------------------------------------------------------------------------- /Images/image-22.tikz: -------------------------------------------------------------------------------- 1 | \begin{tikzpicture} 2 | \begin{pgfonlayer}{nodelayer} 3 | \node [style=none] (0) at (0, 0) {}; 4 | \node [style=none] (1) at (2, 0) {}; 5 | \node [style=none] (46) at (0, -1) {}; 6 | \node [style=none] (47) at (2, -1) {}; 7 | \node [style=none] (48) at (0, -1) {}; 8 | \node [style=none] (49) at (2, -1) {}; 9 | \node [style=none] (50) at (0, -2) {}; 10 | \node [style=none] (51) at (2, -2) {}; 11 | \node [style=none] (52) at (0, -2) {}; 12 | \node [style=none] (53) at (2, -2) {}; 13 | \node [style=none] (54) at (0, -3) {}; 14 | \node [style=none] (55) at (2, -3) {}; 15 | \node [style=none] (56) at (0, -3) {}; 16 | \node [style=none] (57) at (2, -3) {}; 17 | \node [style=none] (58) at (0, -4) {}; 18 | \node [style=none] (59) at (2, -4) {}; 19 | \node [style=none] (60) at (0, -4) {}; 20 | \node [style=none] (61) at (2, -4) {}; 21 | \node [style=none] (62) at (0, -5) {}; 22 | \node [style=none] (63) at (2, -5) {}; 23 | \node [style=none] (64) at (0, -5) {}; 24 | \node [style=none] (65) at (2, -5) {}; 25 | \node [style=none] (66) at (0, -6) {}; 26 | \node [style=none] (67) at (2, -6) {}; 27 | \node [style=none] (68) at (0, -6) {}; 28 | \node [style=none] (69) at (2, -6) {}; 29 | \node [style=none] (70) at (0, -7) {}; 30 | \node [style=none] (71) at (2, -7) {}; 31 | \node [style=none] (72) at (0, -7) {}; 32 | \node [style=none] (73) at (2, -7) {}; 33 | \node [style=none] (74) at (0, -8) {}; 34 | \node [style=none] (75) at (2, -8) {}; 35 | \node [style=none] (76) at (15, 0) {}; 36 | \node [style=none] (77) at (17, 0) {}; 37 | \node [style=none] (78) at (15, -1) {}; 38 | \node [style=none] (79) at (17, -1) {}; 39 | \node [style=none] (80) at (15, -1) {}; 40 | \node [style=none] (81) at (17, -1) {}; 41 | \node [style=none] (82) at (15, -2) {}; 42 | \node [style=none] (83) at (17, -2) {}; 43 | \node [style=none] (84) at (15, -2) {}; 44 | \node [style=none] (85) at (17, -2) {}; 45 | \node [style=none] (86) at (15, -3) {}; 46 | \node [style=none] (87) at (17, -3) {}; 47 | \node [style=none] (88) at (15, -3) {}; 48 | \node [style=none] (89) at (17, -3) {}; 49 | \node [style=none] (90) at (15, -4) {}; 50 | \node [style=none] (91) at (17, -4) {}; 51 | \node [style=none] (92) at (15, -4) {}; 52 | \node [style=none] (93) at (17, -4) {}; 53 | \node [style=none] (94) at (15, -5) {}; 54 | \node [style=none] (95) at (17, -5) {}; 55 | \node [style=none] (96) at (15, -5) {}; 56 | \node [style=none] (97) at (17, -5) {}; 57 | \node [style=none] (98) at (15, -6) {}; 58 | \node [style=none] (99) at (17, -6) {}; 59 | \node [style=none] (100) at (15, -6) {}; 60 | \node [style=none] (101) at (17, -6) {}; 61 | \node [style=none] (102) at (15, -7) {}; 62 | \node [style=none] (103) at (17, -7) {}; 63 | \node [style=none] (104) at (15, -7) {}; 64 | \node [style=none] (105) at (17, -7) {}; 65 | \node [style=none] (106) at (15, -8) {}; 66 | \node [style=none] (107) at (17, -8) {}; 67 | \node [style=none] (108) at (1, 0.5) {\textit{BHT}}; 68 | \node [style=none] (109) at (16, 0.5) {\textit{PHT}}; 69 | \node [style=none] (110) at (-3, 0) {}; 70 | \node [style=none] (111) at (-3, 0.5) {\(k\)-bit \texttt{PC}}; 71 | \node [style=none] (112) at (-3, -3.5) {}; 72 | \node [style=none] (113) at (-0.5, -3.5) {}; 73 | \node [style=none] (114) at (-0.25, -3.5) {}; 74 | \node [style=none] (115) at (2.25, -3.5) {}; 75 | \node [style=none] (116) at (4.75, -3.5) {}; 76 | \node [style=left align] (117) at (4.75, -3.5) {\texttt{T/NT}}; 77 | \node [style=none] (118) at (-1.25, 0) {}; 78 | \node [style=none] (119) at (-1.25, 1) {}; 79 | \node [style=none] (121) at (-4.75, 0) {}; 80 | \node [style=none] (122) at (-4.75, 1) {}; 81 | \node [style=none] (123) at (9, -3) {}; 82 | \node [style=none] (124) at (9, -4) {}; 83 | \node [style=none] (125) at (10, -4) {}; 84 | \node [style=none] (126) at (10, -3) {}; 85 | \node [style=none] (127) at (11, -3) {}; 86 | \node [style=none] (128) at (11, -4) {}; 87 | \node [style=none] (129) at (12, -4) {}; 88 | \node [style=none] (130) at (12, -3) {}; 89 | \node [style=none] (131) at (9.5, -3.5) {\texttt{NT}}; 90 | \node [style=none] (132) at (10.5, -3.5) {\texttt{NT}}; 91 | \node [style=none] (133) at (11.5, -3.5) {\texttt{T}}; 92 | \node [style=none] (134) at (8, -3) {}; 93 | \node [style=none] (135) at (8, -4) {}; 94 | \node [style=none] (136) at (8.5, -3.5) {\texttt{T}}; 95 | \node [style=none] (137) at (14.75, -3.5) {}; 96 | \node [style=none] (138) at (12.25, -3.5) {}; 97 | \node [style=none] (139) at (10, -2.5) {BHR}; 98 | \node [style=none] (140) at (17.25, -3.5) {}; 99 | \node [style=none] (141) at (19.75, -3.5) {}; 100 | \node [style=left align] (142) at (19.75, -3.5) {\texttt{T/NT}}; 101 | \end{pgfonlayer} 102 | \begin{pgfonlayer}{edgelayer} 103 | \draw [style=light fill] (46.center) 104 | to (47.center) 105 | to (1.center) 106 | to (0.center) 107 | to cycle; 108 | \draw [style=light fill] (50.center) 109 | to (51.center) 110 | to (49.center) 111 | to (48.center) 112 | to cycle; 113 | \draw [style=light fill] (54.center) 114 | to (55.center) 115 | to (53.center) 116 | to (52.center) 117 | to cycle; 118 | \draw [style=light fill] (58.center) 119 | to (59.center) 120 | to (57.center) 121 | to (56.center) 122 | to cycle; 123 | \draw [style=light fill] (62.center) 124 | to (63.center) 125 | to (61.center) 126 | to (60.center) 127 | to cycle; 128 | \draw [style=light fill] (66.center) 129 | to (67.center) 130 | to (65.center) 131 | to (64.center) 132 | to cycle; 133 | \draw [style=light fill] (70.center) 134 | to (71.center) 135 | to (69.center) 136 | to (68.center) 137 | to cycle; 138 | \draw [style=light fill] (74.center) 139 | to (75.center) 140 | to (73.center) 141 | to (72.center) 142 | to cycle; 143 | \draw [style=light fill] (78.center) 144 | to (79.center) 145 | to (77.center) 146 | to (76.center) 147 | to cycle; 148 | \draw [style=light fill] (82.center) 149 | to (83.center) 150 | to (81.center) 151 | to (80.center) 152 | to cycle; 153 | \draw [style=light fill] (86.center) 154 | to (87.center) 155 | to (85.center) 156 | to (84.center) 157 | to cycle; 158 | \draw [style=light fill] (90.center) 159 | to (91.center) 160 | to (89.center) 161 | to (88.center) 162 | to cycle; 163 | \draw [style=light fill] (94.center) 164 | to (95.center) 165 | to (93.center) 166 | to (92.center) 167 | to cycle; 168 | \draw [style=light fill] (98.center) 169 | to (99.center) 170 | to (97.center) 171 | to (96.center) 172 | to cycle; 173 | \draw [style=light fill] (102.center) 174 | to (103.center) 175 | to (101.center) 176 | to (100.center) 177 | to cycle; 178 | \draw [style=light fill] (106.center) 179 | to (107.center) 180 | to (105.center) 181 | to (104.center) 182 | to cycle; 183 | \draw [style=big] (110.center) to (112.center); 184 | \draw [style=big arrow] (112.center) to (114.center); 185 | \draw [style=green arrow, in=180, out=0] (115.center) to (116.center); 186 | \draw [style=light fill] (118.center) 187 | to (119.center) 188 | to (122.center) 189 | to (121.center) 190 | to cycle; 191 | \draw [style=light fill] (135.center) 192 | to (134.center) 193 | to (130.center) 194 | to (129.center) 195 | to cycle; 196 | \draw [style=light fill] (124.center) to (123.center); 197 | \draw [style=light fill] (126.center) to (125.center); 198 | \draw [style=light fill] (127.center) to (128.center); 199 | \draw [style=big arrow] (138.center) to (137.center); 200 | \draw [style=green arrow, in=180, out=0] (140.center) to (141.center); 201 | \end{pgfonlayer} 202 | \end{tikzpicture} 203 | -------------------------------------------------------------------------------- /Images/image-23.tikz: -------------------------------------------------------------------------------- 1 | \begin{tikzpicture} 2 | \begin{pgfonlayer}{nodelayer} 3 | \node [style=none] (0) at (0, 0) {}; 4 | \node [style=none] (1) at (2, 0) {}; 5 | \node [style=none] (2) at (0, -1) {}; 6 | \node [style=none] (3) at (2, -1) {}; 7 | \node [style=none] (4) at (0, -1) {}; 8 | \node [style=none] (5) at (2, -1) {}; 9 | \node [style=none] (6) at (0, -2) {}; 10 | \node [style=none] (7) at (2, -2) {}; 11 | \node [style=none] (8) at (0, -2) {}; 12 | \node [style=none] (9) at (2, -2) {}; 13 | \node [style=none] (10) at (0, -3) {}; 14 | \node [style=none] (11) at (2, -3) {}; 15 | \node [style=none] (12) at (0, -3) {}; 16 | \node [style=none] (13) at (2, -3) {}; 17 | \node [style=none] (14) at (0, -4) {}; 18 | \node [style=none] (15) at (2, -4) {}; 19 | \node [style=none] (16) at (0, -4) {}; 20 | \node [style=none] (17) at (2, -4) {}; 21 | \node [style=none] (18) at (0, -5) {}; 22 | \node [style=none] (19) at (2, -5) {}; 23 | \node [style=none] (20) at (0, -5) {}; 24 | \node [style=none] (21) at (2, -5) {}; 25 | \node [style=none] (22) at (0, -6) {}; 26 | \node [style=none] (23) at (2, -6) {}; 27 | \node [style=none] (24) at (0, -6) {}; 28 | \node [style=none] (25) at (2, -6) {}; 29 | \node [style=none] (26) at (0, -7) {}; 30 | \node [style=none] (27) at (2, -7) {}; 31 | \node [style=none] (28) at (0, -7) {}; 32 | \node [style=none] (29) at (2, -7) {}; 33 | \node [style=none] (30) at (0, -8) {}; 34 | \node [style=none] (31) at (2, -8) {}; 35 | \node [style=none] (32) at (1, 0.5) {\textit{PHT}}; 36 | \node [style=none] (33) at (-11, -3) {}; 37 | \node [style=none] (34) at (-11, -4) {}; 38 | \node [style=none] (35) at (-10, -4) {}; 39 | \node [style=none] (36) at (-10, -3) {}; 40 | \node [style=none] (37) at (-9, -3) {}; 41 | \node [style=none] (38) at (-9, -4) {}; 42 | \node [style=none] (39) at (-8, -4) {}; 43 | \node [style=none] (40) at (-8, -3) {}; 44 | \node [style=none] (41) at (-10.5, -3.5) {\texttt{NT}}; 45 | \node [style=none] (42) at (-9.5, -3.5) {\texttt{NT}}; 46 | \node [style=none] (43) at (-8.5, -3.5) {\texttt{T}}; 47 | \node [style=none] (44) at (-12, -3) {}; 48 | \node [style=none] (45) at (-12, -4) {}; 49 | \node [style=none] (46) at (-11.5, -3.5) {\texttt{T}}; 50 | \node [style=none] (47) at (-0.25, -3.5) {}; 51 | \node [style=none] (48) at (-3, -3.5) {}; 52 | \node [style=none] (49) at (-10, -2.5) {\textit{BHR}}; 53 | \node [style=none] (50) at (2.25, -3.5) {}; 54 | \node [style=none] (51) at (4.75, -3.5) {}; 55 | \node [style=left align] (52) at (4.75, -3.5) {\texttt{T/NT}}; 56 | \node [style=none] (53) at (-4, -2.5) {}; 57 | \node [style=none] (54) at (-4, -1) {}; 58 | \node [style=none] (55) at (-4, -0.5) {\(k\)-bit \texttt{PC}}; 59 | \node [style=none] (56) at (-8, -3.5) {}; 60 | \node [style=none] (57) at (-5, -3.5) {}; 61 | \node [style=none] (58) at (-3.25, -3.5) {}; 62 | \node [style=none] (59) at (-4, -2.75) {}; 63 | \node [style=none] (60) at (-4, -4.25) {}; 64 | \node [style=none] (61) at (-4.75, -3.5) {}; 65 | \node [style=none] (62) at (-4, -3.5) {\texttt{XOR}}; 66 | \node [style=none] (63) at (-6, -1) {}; 67 | \node [style=none] (64) at (-2, -1) {}; 68 | \node [style=none] (65) at (-2, 0) {}; 69 | \node [style=none] (66) at (-6, 0) {}; 70 | \end{pgfonlayer} 71 | \begin{pgfonlayer}{edgelayer} 72 | \draw [style=light fill] (2.center) 73 | to (3.center) 74 | to (1.center) 75 | to (0.center) 76 | to cycle; 77 | \draw [style=light fill] (6.center) 78 | to (7.center) 79 | to (5.center) 80 | to (4.center) 81 | to cycle; 82 | \draw [style=light fill] (10.center) 83 | to (11.center) 84 | to (9.center) 85 | to (8.center) 86 | to cycle; 87 | \draw [style=light fill] (14.center) 88 | to (15.center) 89 | to (13.center) 90 | to (12.center) 91 | to cycle; 92 | \draw [style=light fill] (18.center) 93 | to (19.center) 94 | to (17.center) 95 | to (16.center) 96 | to cycle; 97 | \draw [style=light fill] (22.center) 98 | to (23.center) 99 | to (21.center) 100 | to (20.center) 101 | to cycle; 102 | \draw [style=light fill] (26.center) 103 | to (27.center) 104 | to (25.center) 105 | to (24.center) 106 | to cycle; 107 | \draw [style=light fill] (30.center) 108 | to (31.center) 109 | to (29.center) 110 | to (28.center) 111 | to cycle; 112 | \draw [style=light fill] (45.center) 113 | to (44.center) 114 | to (40.center) 115 | to (39.center) 116 | to cycle; 117 | \draw [style=light fill] (34.center) to (33.center); 118 | \draw [style=light fill] (36.center) to (35.center); 119 | \draw [style=light fill] (37.center) to (38.center); 120 | \draw [style=big arrow] (48.center) to (47.center); 121 | \draw [style=green arrow, in=180, out=0] (50.center) to (51.center); 122 | \draw [style=big arrow] (54.center) to (53.center); 123 | \draw [style=big arrow] (56.center) to (57.center); 124 | \draw [style=light fill] (61.center) 125 | to [bend left=45] (59.center) 126 | to [bend left=45] (58.center) 127 | to [bend left=45] (60.center) 128 | to [bend left=45] cycle; 129 | \draw [style=light fill] (64.center) 130 | to (65.center) 131 | to (66.center) 132 | to (63.center) 133 | to cycle; 134 | \end{pgfonlayer} 135 | \end{tikzpicture} 136 | -------------------------------------------------------------------------------- /Images/image-24.tikz: -------------------------------------------------------------------------------- 1 | \begin{tikzpicture} 2 | \begin{pgfonlayer}{nodelayer} 3 | \node [style=none] (4) at (11, 0) {}; 4 | \node [style=none] (5) at (11, -1) {}; 5 | \node [style=none] (6) at (17, -1) {}; 6 | \node [style=none] (8) at (23, 0) {}; 7 | \node [style=none] (9) at (23, -1) {}; 8 | \node [style=none] (13) at (11, -1) {}; 9 | \node [style=none] (14) at (17, -1) {}; 10 | \node [style=none] (15) at (23, -1) {}; 11 | \node [style=none] (18) at (5, -0.5) {\texttt{ID}}; 12 | \node [style=none] (19) at (14, -0.5) {\texttt{EX}}; 13 | \node [style=none] (21) at (20, -0.5) {\texttt{WB}}; 14 | \node [style=none] (22) at (-1, -2) {}; 15 | \node [style=none] (24) at (11, -2) {}; 16 | \node [style=none] (25) at (17, -2) {}; 17 | \node [style=none] (26) at (5, -1) {}; 18 | \node [style=none] (27) at (5, -2) {}; 19 | \node [style=none] (28) at (23, -2) {}; 20 | \node [style=none] (29) at (2, -1.5) {\textit{issue}}; 21 | \node [style=none] (30) at (8, -1.5) {\textit{read operands}}; 22 | \node [style=none] (31) at (-1, 0) {}; 23 | \node [style=none] (32) at (-1, -1) {}; 24 | \node [style=none] (7) at (17, 0) {}; 25 | \node [style=none] (33) at (14, -1.5) {\textit{execution}}; 26 | \node [style=none] (34) at (20, -1.5) {\textit{write back}}; 27 | \end{pgfonlayer} 28 | \begin{pgfonlayer}{edgelayer} 29 | \draw [style=solid] (27.center) to (26.center); 30 | \draw [style=solid] (24.center) to (13.center); 31 | \draw [style=solid] (25.center) to (14.center); 32 | \draw [style=solid] (28.center) to (15.center); 33 | \draw [style=solid] (28.center) to (22.center); 34 | \draw [style=solid] (32.center) to (22.center); 35 | \draw [style=light fill] (8.center) 36 | to (31.center) 37 | to (32.center) 38 | to (15.center) 39 | to cycle; 40 | \draw [style=solid] (4.center) to (5.center); 41 | \draw [style=solid] (7.center) to (6.center); 42 | \end{pgfonlayer} 43 | \end{tikzpicture} 44 | -------------------------------------------------------------------------------- /Images/image-28.tikz: -------------------------------------------------------------------------------- 1 | \begin{tikzpicture} 2 | \begin{pgfonlayer}{nodelayer} 3 | \node [style=none] (0) at (0, 0) {}; 4 | \node [style=none] (1) at (3, -3) {}; 5 | \node [style=none] (2) at (0, -3) {}; 6 | \node [style=none] (3) at (3, 0) {}; 7 | \node [style=none] (4) at (1, -6) {}; 8 | \node [style=none] (5) at (-2, -6) {}; 9 | \node [style=none] (6) at (-2, -10) {}; 10 | \node [style=none] (7) at (1, -10) {}; 11 | \node [style=none] (8) at (6, -6) {}; 12 | \node [style=none] (9) at (3, -6) {}; 13 | \node [style=none] (10) at (3, -8) {}; 14 | \node [style=none] (11) at (6, -8) {}; 15 | \node [style=none] (12) at (3, -13) {}; 16 | \node [style=none] (13) at (0, -13) {}; 17 | \node [style=none] (14) at (0, -16) {}; 18 | \node [style=none] (15) at (3, -16) {}; 19 | \node [style=none] (16) at (1, -12.75) {}; 20 | \node [style=none] (17) at (2, -12.75) {}; 21 | \node [style=none] (18) at (-0.5, -10) {}; 22 | \node [style=none] (19) at (4.5, -8) {}; 23 | \node [style=none] (20) at (-0.5, -5.75) {}; 24 | \node [style=none] (21) at (4.5, -5.75) {}; 25 | \node [style=none] (22) at (1, -3) {}; 26 | \node [style=none] (23) at (2, -3) {}; 27 | \node [style=none] (24) at (1, -16) {}; 28 | \node [style=none] (25) at (2, -16) {}; 29 | \node [style=none] (26) at (5, -19) {}; 30 | \node [style=none] (27) at (2, -19) {}; 31 | \node [style=none] (28) at (2, -23) {}; 32 | \node [style=none] (29) at (5, -23) {}; 33 | \node [style=none] (30) at (1, -19) {}; 34 | \node [style=none] (31) at (-2, -19) {}; 35 | \node [style=none] (32) at (-2, -22) {}; 36 | \node [style=none] (33) at (1, -22) {}; 37 | \node [style=none] (34) at (-0.5, -18.75) {}; 38 | \node [style=none] (35) at (3.5, -18.75) {}; 39 | \node [style=none] (36) at (-0.5, -22) {}; 40 | \node [style=none] (37) at (1, -25) {}; 41 | \node [style=none] (40) at (3.5, -23) {}; 42 | \node [style=none] (41) at (2, -25) {}; 43 | \node [style=none] (42) at (1.5, -1.5) {\large \texttt{BB}}; 44 | \node [style=none] (43) at (4.5, -7) {\large \texttt{BB}}; 45 | \node [style=none] (44) at (-0.5, -8) {\large \texttt{BB}}; 46 | \node [style=none] (45) at (1.5, -14.5) {\large \texttt{BB}}; 47 | \node [style=none] (46) at (3.5, -21) {\large \texttt{BB}}; 48 | \node [style=none] (47) at (-0.5, -20.5) {\large \texttt{BB}}; 49 | \end{pgfonlayer} 50 | \begin{pgfonlayer}{edgelayer} 51 | \draw [style=light fill] (1.center) 52 | to (3.center) 53 | to (0.center) 54 | to (2.center) 55 | to cycle; 56 | \draw [style=light fill] (4.center) 57 | to (5.center) 58 | to (6.center) 59 | to (7.center) 60 | to cycle; 61 | \draw [style=light fill] (8.center) 62 | to (9.center) 63 | to (10.center) 64 | to (11.center) 65 | to cycle; 66 | \draw [style=light fill] (12.center) 67 | to (13.center) 68 | to (14.center) 69 | to (15.center) 70 | to cycle; 71 | \draw [style=light fill] (26.center) 72 | to (27.center) 73 | to (28.center) 74 | to (29.center) 75 | to cycle; 76 | \draw [style=light fill] (30.center) 77 | to (31.center) 78 | to (32.center) 79 | to (33.center) 80 | to cycle; 81 | \draw [style=solid arrow] (22.center) to (20.center); 82 | \draw [style=solid arrow] (23.center) to (21.center); 83 | \draw [style=solid arrow] (18.center) to (16.center); 84 | \draw [style=solid arrow] (19.center) to (17.center); 85 | \draw [style=solid arrow] (24.center) to (34.center); 86 | \draw [style=solid arrow] (25.center) to (35.center); 87 | \draw [style=dashed] (36.center) to (37.center); 88 | \draw [style=dashed] (41.center) to (40.center); 89 | \end{pgfonlayer} 90 | \end{tikzpicture} 91 | -------------------------------------------------------------------------------- /Images/image-29.tikz: -------------------------------------------------------------------------------- 1 | \begin{tikzpicture} 2 | \begin{pgfonlayer}{nodelayer} 3 | \node [style=none] (0) at (0, 0) {}; 4 | \node [style=none] (1) at (3, -3) {}; 5 | \node [style=none] (2) at (0, -3) {}; 6 | \node [style=none] (3) at (3, 0) {}; 7 | \node [style=none] (4) at (1, -6) {}; 8 | \node [style=none] (5) at (-2, -6) {}; 9 | \node [style=none] (6) at (-2, -10) {}; 10 | \node [style=none] (7) at (1, -10) {}; 11 | \node [style=none] (8) at (6, -6) {}; 12 | \node [style=none] (9) at (3, -6) {}; 13 | \node [style=none] (10) at (3, -8) {}; 14 | \node [style=none] (11) at (6, -8) {}; 15 | \node [style=none] (12) at (3, -13) {}; 16 | \node [style=none] (13) at (0, -13) {}; 17 | \node [style=none] (14) at (0, -16) {}; 18 | \node [style=none] (15) at (3, -16) {}; 19 | \node [style=none] (16) at (1, -12.75) {}; 20 | \node [style=none] (17) at (2, -12.75) {}; 21 | \node [style=none] (18) at (-0.5, -10) {}; 22 | \node [style=none] (19) at (4.5, -8) {}; 23 | \node [style=none] (20) at (-0.5, -5.75) {}; 24 | \node [style=none] (21) at (4.5, -5.75) {}; 25 | \node [style=none] (22) at (1, -3) {}; 26 | \node [style=none] (23) at (2, -3) {}; 27 | \node [style=none] (24) at (1, -16) {}; 28 | \node [style=none] (25) at (2, -16) {}; 29 | \node [style=none] (26) at (6, -19) {}; 30 | \node [style=none] (27) at (3, -19) {}; 31 | \node [style=none] (28) at (3, -23) {}; 32 | \node [style=none] (29) at (6, -23) {}; 33 | \node [style=none] (30) at (1, -19) {}; 34 | \node [style=none] (31) at (-2, -19) {}; 35 | \node [style=none] (32) at (-2, -22) {}; 36 | \node [style=none] (33) at (1, -22) {}; 37 | \node [style=none] (34) at (-0.5, -18.75) {}; 38 | \node [style=none] (35) at (4.5, -18.75) {}; 39 | \node [style=none] (36) at (-0.5, -22) {}; 40 | \node [style=none] (37) at (1, -25) {}; 41 | \node [style=none] (40) at (4.5, -23) {}; 42 | \node [style=none] (41) at (2, -25) {}; 43 | \node [style=none] (42) at (1.5, -1.5) {\large \color{white} \texttt{BB}}; 44 | \node [style=none] (43) at (4.5, -7) {\large \color{white} \texttt{BB}}; 45 | \node [style=none] (44) at (-0.5, -8) {\large \texttt{BB}}; 46 | \node [style=none] (45) at (1.5, -14.5) {\large \color{white} \texttt{BB}}; 47 | \node [style=none] (46) at (4.5, -21) {\large\texttt{BB}}; 48 | \node [style=none] (47) at (-0.5, -20.5) {\large \color{white} \texttt{BB}}; 49 | \end{pgfonlayer} 50 | \begin{pgfonlayer}{edgelayer} 51 | \draw [style=green fill] (1.center) 52 | to (3.center) 53 | to (0.center) 54 | to (2.center) 55 | to cycle; 56 | \draw [style=light fill] (4.center) 57 | to (5.center) 58 | to (6.center) 59 | to (7.center) 60 | to cycle; 61 | \draw [style=green fill] (8.center) 62 | to (9.center) 63 | to (10.center) 64 | to (11.center) 65 | to cycle; 66 | \draw [style=green fill] (12.center) 67 | to (13.center) 68 | to (14.center) 69 | to (15.center) 70 | to cycle; 71 | \draw [style=light fill] (26.center) 72 | to (27.center) 73 | to (28.center) 74 | to (29.center) 75 | to cycle; 76 | \draw [style=green fill] (30.center) 77 | to (31.center) 78 | to (32.center) 79 | to (33.center) 80 | to cycle; 81 | \draw [style=solid arrow] (22.center) to (20.center); 82 | \draw [style=green arrow] (23.center) to (21.center); 83 | \draw [style=solid arrow] (18.center) to (16.center); 84 | \draw [style=green arrow] (19.center) to (17.center); 85 | \draw [style=green arrow] (24.center) to (34.center); 86 | \draw [style=solid arrow] (25.center) to (35.center); 87 | \draw [style=dashed] (36.center) to (37.center); 88 | \draw [style=dashed] (41.center) to (40.center); 89 | \end{pgfonlayer} 90 | \end{tikzpicture} 91 | -------------------------------------------------------------------------------- /Images/image-3.tikz: -------------------------------------------------------------------------------- 1 | \begin{tikzpicture} 2 | \begin{pgfonlayer}{nodelayer} 3 | \node [style=none] (0) at (10, -1) {}; 4 | \node [style=none] (1) at (10, -12) {}; 5 | \node [style=none] (3) at (1, -6) {}; 6 | \node [style=none] (4) at (19, -6) {}; 7 | \node [style=none] (107) at (2, -7) {}; 8 | \node [style=none] (108) at (5, -7) {}; 9 | \node [style=none] (109) at (5, -10) {}; 10 | \node [style=none] (110) at (2, -10) {}; 11 | \node [style=none] (116) at (6, -7) {}; 12 | \node [style=none] (117) at (9, -7) {}; 13 | \node [style=none] (118) at (9, -10) {}; 14 | \node [style=none] (119) at (6, -10) {}; 15 | \node [style=none] (125) at (4, -2) {}; 16 | \node [style=none] (126) at (7, -2) {}; 17 | \node [style=none] (127) at (7, -5) {}; 18 | \node [style=none] (128) at (4, -5) {}; 19 | \node [style=left align] (218) at (19.75, -0.5) {threads}; 20 | \node [style=none] (222) at (13, -2) {}; 21 | \node [style=none] (223) at (16, -2) {}; 22 | \node [style=none] (224) at (16, -5) {}; 23 | \node [style=none] (225) at (13, -5) {}; 24 | \node [style=none] (226) at (11, -7) {}; 25 | \node [style=none] (227) at (14, -7) {}; 26 | \node [style=none] (228) at (14, -10) {}; 27 | \node [style=none] (229) at (11, -10) {}; 28 | \node [style=none] (230) at (15, -7) {}; 29 | \node [style=none] (231) at (18, -7) {}; 30 | \node [style=none] (232) at (18, -10) {}; 31 | \node [style=none] (233) at (15, -10) {}; 32 | \node [style=none] (234) at (5.25, -2.5) {}; 33 | \node [style=none] (235) at (5.75, -2.5) {}; 34 | \node [style=none] (236) at (5.75, -4.5) {}; 35 | \node [style=none] (237) at (5.25, -4.5) {}; 36 | \node [style=none] (238) at (13.5, -2.5) {}; 37 | \node [style=none] (239) at (14, -2.5) {}; 38 | \node [style=none] (240) at (14, -4.5) {}; 39 | \node [style=none] (241) at (13.5, -4.5) {}; 40 | \node [style=none] (242) at (14.25, -2.5) {}; 41 | \node [style=none] (243) at (14.75, -2.5) {}; 42 | \node [style=none] (244) at (14.75, -4.5) {}; 43 | \node [style=none] (245) at (14.25, -4.5) {}; 44 | \node [style=none] (246) at (15, -2.5) {}; 45 | \node [style=none] (247) at (15.5, -2.5) {}; 46 | \node [style=none] (248) at (15.5, -4.5) {}; 47 | \node [style=none] (249) at (15, -4.5) {}; 48 | \node [style=none] (250) at (11.5, -7.5) {}; 49 | \node [style=none] (251) at (12, -7.5) {}; 50 | \node [style=none] (252) at (12, -9.5) {}; 51 | \node [style=none] (253) at (11.5, -9.5) {}; 52 | \node [style=none] (254) at (12.25, -7.5) {}; 53 | \node [style=none] (255) at (12.75, -7.5) {}; 54 | \node [style=none] (256) at (12.75, -9.5) {}; 55 | \node [style=none] (257) at (12.25, -9.5) {}; 56 | \node [style=none] (258) at (13, -7.5) {}; 57 | \node [style=none] (259) at (13.5, -7.5) {}; 58 | \node [style=none] (260) at (13.5, -9.5) {}; 59 | \node [style=none] (261) at (13, -9.5) {}; 60 | \node [style=none] (263) at (15.5, -7.5) {}; 61 | \node [style=none] (264) at (16, -7.5) {}; 62 | \node [style=none] (265) at (16, -9.5) {}; 63 | \node [style=none] (266) at (15.5, -9.5) {}; 64 | \node [style=none] (267) at (16.25, -7.5) {}; 65 | \node [style=none] (268) at (16.75, -7.5) {}; 66 | \node [style=none] (269) at (16.75, -9.5) {}; 67 | \node [style=none] (270) at (16.25, -9.5) {}; 68 | \node [style=none] (271) at (17, -7.5) {}; 69 | \node [style=none] (272) at (17.5, -7.5) {}; 70 | \node [style=none] (273) at (17.5, -9.5) {}; 71 | \node [style=none] (274) at (17, -9.5) {}; 72 | \node [style=none] (275) at (3.25, -7.5) {}; 73 | \node [style=none] (276) at (3.75, -7.5) {}; 74 | \node [style=none] (277) at (3.75, -9.5) {}; 75 | \node [style=none] (278) at (3.25, -9.5) {}; 76 | \node [style=none] (279) at (7.25, -7.5) {}; 77 | \node [style=none] (280) at (7.75, -7.5) {}; 78 | \node [style=none] (281) at (7.75, -9.5) {}; 79 | \node [style=none] (282) at (7.25, -9.5) {}; 80 | \node [style=none] (283) at (1, -13) {}; 81 | \node [style=none] (284) at (1, 0) {}; 82 | \node [style=none] (285) at (20, -1) {}; 83 | \node [style=none] (286) at (0, -1) {}; 84 | \node [style=none] (288) at (5.5, -0.5) {}; 85 | \node [style=none] (289) at (14.5, -0.5) {}; 86 | \node [style=none] (290) at (14.5, -1) {}; 87 | \node [style=none] (291) at (5.5, -1) {}; 88 | \node [style=none] (292) at (5.5, 0) {\(1\)}; 89 | \node [style=none] (293) at (14.5, 0) {\(n\)}; 90 | \node [style=none] (294) at (1, -3.5) {}; 91 | \node [style=none] (295) at (0.5, -3.5) {}; 92 | \node [style=none] (296) at (1, -8.5) {}; 93 | \node [style=none] (297) at (0.5, -8.5) {}; 94 | \node [style=none, rotate=-90] (298) at (0, -3.5) {\(1\)}; 95 | \node [style=none, rotate=-90] (299) at (0, -8.5) {\(n\)}; 96 | \node [style=left align, anchor=west, rotate=90] (300) at (0.5, -12.75) {processes}; 97 | \end{pgfonlayer} 98 | \begin{pgfonlayer}{edgelayer} 99 | \draw [style=dashed] (110.center) 100 | to (107.center) 101 | to (108.center) 102 | to (109.center) 103 | to cycle; 104 | \draw [style=dashed] (119.center) 105 | to (116.center) 106 | to (117.center) 107 | to (118.center) 108 | to cycle; 109 | \draw [style=dashed] (128.center) 110 | to (125.center) 111 | to (126.center) 112 | to (127.center) 113 | to cycle; 114 | \draw [style=dashed] (225.center) 115 | to (222.center) 116 | to (223.center) 117 | to (224.center) 118 | to cycle; 119 | \draw [style=dashed] (229.center) 120 | to (226.center) 121 | to (227.center) 122 | to (228.center) 123 | to [in=360, out=180] cycle; 124 | \draw [style=dashed] (233.center) 125 | to (230.center) 126 | to (231.center) 127 | to (232.center) 128 | to cycle; 129 | \draw [style=green fill] (236.center) 130 | to (237.center) 131 | to [in=-90, out=90] (234.center) 132 | to (235.center) 133 | to [in=90, out=270] cycle; 134 | \draw [style=green fill] (240.center) 135 | to (241.center) 136 | to [in=-90, out=90] (238.center) 137 | to (239.center) 138 | to [in=90, out=270] cycle; 139 | \draw [style=green fill] (244.center) 140 | to (245.center) 141 | to [in=-90, out=90] (242.center) 142 | to (243.center) 143 | to [in=90, out=270] cycle; 144 | \draw [style=green fill] (248.center) 145 | to (249.center) 146 | to [in=-90, out=90] (246.center) 147 | to (247.center) 148 | to [in=90, out=270] cycle; 149 | \draw [style=green fill] (253.center) 150 | to [in=-90, out=90] (250.center) 151 | to (251.center) 152 | to [in=90, out=270] (252.center) 153 | to cycle; 154 | \draw [style=green fill] (257.center) 155 | to [in=-90, out=90] (254.center) 156 | to (255.center) 157 | to [in=90, out=270] (256.center) 158 | to cycle; 159 | \draw [style=green fill] (261.center) 160 | to [in=-90, out=90] (258.center) 161 | to (259.center) 162 | to [in=90, out=270] (260.center) 163 | to cycle; 164 | \draw [style=green fill] (266.center) 165 | to [in=-90, out=90] (263.center) 166 | to (264.center) 167 | to [in=90, out=270] (265.center) 168 | to cycle; 169 | \draw [style=green fill] (270.center) 170 | to [in=-90, out=90] (267.center) 171 | to (268.center) 172 | to [in=90, out=270] (269.center) 173 | to cycle; 174 | \draw [style=green fill] (274.center) 175 | to [in=-90, out=90] (271.center) 176 | to (272.center) 177 | to [in=90, out=270] (273.center) 178 | to cycle; 179 | \draw [style=green fill] (277.center) 180 | to (278.center) 181 | to [in=-90, out=90] (275.center) 182 | to (276.center) 183 | to [in=90, out=270] cycle; 184 | \draw [style=green fill] (281.center) 185 | to (282.center) 186 | to [in=-90, out=90] (279.center) 187 | to (280.center) 188 | to [in=90, out=270] cycle; 189 | \draw [style=big arrow] (286.center) to (285.center); 190 | \draw [style=big arrow] (284.center) to (283.center); 191 | \draw [style=big, in=270, out=90] (290.center) to (289.center); 192 | \draw [style=big] (291.center) to (288.center); 193 | \draw [style=big] (295.center) to (294.center); 194 | \draw [style=big] (297.center) to (296.center); 195 | \draw [style=thin] (3.center) to (4.center); 196 | \draw [style=thin] (1.center) to (0.center); 197 | \end{pgfonlayer} 198 | \end{tikzpicture} 199 | -------------------------------------------------------------------------------- /Images/image-30.tikz: -------------------------------------------------------------------------------- 1 | \begin{tikzpicture} 2 | \begin{pgfonlayer}{nodelayer} 3 | \node [style=none] (0) at (0, 0) {}; 4 | \node [style=none] (1) at (2, 0) {}; 5 | \node [style=none] (2) at (0, -1) {}; 6 | \node [style=none] (3) at (2, -1) {}; 7 | \node [style=none] (4) at (0, -1) {}; 8 | \node [style=none] (5) at (2, -1) {}; 9 | \node [style=none] (6) at (0, -2) {}; 10 | \node [style=none] (7) at (2, -2) {}; 11 | \node [style=none] (8) at (0, -2) {}; 12 | \node [style=none] (9) at (2, -2) {}; 13 | \node [style=none] (10) at (0, -3) {}; 14 | \node [style=none] (11) at (2, -3) {}; 15 | \node [style=none] (12) at (0, -3) {}; 16 | \node [style=none] (13) at (2, -3) {}; 17 | \node [style=none] (14) at (0, -4) {}; 18 | \node [style=none] (15) at (2, -4) {}; 19 | \node [style=none] (16) at (0, -4) {}; 20 | \node [style=none] (17) at (2, -4) {}; 21 | \node [style=none] (18) at (0, -5) {}; 22 | \node [style=none] (19) at (2, -5) {}; 23 | \node [style=none] (20) at (0, -5) {}; 24 | \node [style=none] (21) at (2, -5) {}; 25 | \node [style=none] (22) at (0, -6) {}; 26 | \node [style=none] (23) at (2, -6) {}; 27 | \node [style=none] (24) at (0, -6) {}; 28 | \node [style=none] (25) at (2, -6) {}; 29 | \node [style=none] (33) at (-14, -3) {}; 30 | \node [style=none] (34) at (-14, -4) {}; 31 | \node [style=none] (35) at (-12, -4) {}; 32 | \node [style=none] (36) at (-12, -3) {}; 33 | \node [style=none] (37) at (-10, -3) {}; 34 | \node [style=none] (38) at (-10, -4) {}; 35 | \node [style=none] (47) at (-0.25, -3.5) {}; 36 | \node [style=none] (48) at (-3, -3.5) {}; 37 | \node [style=top align] (49) at (-12, -2) {\(n\) registers}; 38 | \node [style=none] (53) at (-4, -2.5) {}; 39 | \node [style=none] (54) at (-4, -1) {}; 40 | \node [style=none] (55) at (-4, -0.5) {\texttt{RRB}}; 41 | \node [style=none] (56) at (-8, -3.5) {}; 42 | \node [style=none] (57) at (-5, -3.5) {}; 43 | \node [style=none] (58) at (-3.25, -3.5) {}; 44 | \node [style=none] (59) at (-4, -2.75) {}; 45 | \node [style=none] (60) at (-4, -4.25) {}; 46 | \node [style=none] (61) at (-4.75, -3.5) {}; 47 | \node [style=none] (62) at (-4, -3.5) {\texttt{+}}; 48 | \node [style=none] (63) at (-8, -3) {}; 49 | \node [style=none] (64) at (-8, -4) {}; 50 | \node [style=none] (65) at (-16, -3) {}; 51 | \node [style=none] (66) at (-16, -4) {}; 52 | \node [style=none] (67) at (-15, -3.5) {\texttt{R0}}; 53 | \node [style=none] (68) at (-13, -3.5) {\texttt{R1}}; 54 | \node [style=none] (69) at (-9, -3.5) {\texttt{RN}}; 55 | \node [style=none] (70) at (-11, -3.5) { \texttt{\dots}}; 56 | \node [style=none] (73) at (-8.25, -2) {}; 57 | \node [style=none] (74) at (-15.75, -2) {}; 58 | \node [style=none] (75) at (1, -0.5) {\texttt{P0}}; 59 | \node [style=none] (76) at (1, -1.5) {\texttt{P1}}; 60 | \node [style=none] (77) at (1, -2.5) {\texttt{P2}}; 61 | \node [style=none] (79) at (1, -4.5) { \texttt{\dots}}; 62 | \node [style=none] (80) at (1, -3.5) {\texttt{P3}}; 63 | \node [style=none] (81) at (1, -5.5) {\texttt{PN}}; 64 | \node [style=none] (82) at (-5, -1) {}; 65 | \node [style=none] (83) at (-3, -1) {}; 66 | \node [style=none] (84) at (-5, 0) {}; 67 | \node [style=none] (85) at (-3, 0) {}; 68 | \node [style=none] (86) at (-8, -2) {}; 69 | \node [style=none] (87) at (-16, -2) {}; 70 | \end{pgfonlayer} 71 | \begin{pgfonlayer}{edgelayer} 72 | \draw [style=light fill] (2.center) 73 | to (3.center) 74 | to (1.center) 75 | to (0.center) 76 | to cycle; 77 | \draw [style=light fill] (6.center) 78 | to (7.center) 79 | to (5.center) 80 | to (4.center) 81 | to cycle; 82 | \draw [style=light fill] (10.center) 83 | to (11.center) 84 | to (9.center) 85 | to (8.center) 86 | to cycle; 87 | \draw [style=light fill] (14.center) 88 | to (15.center) 89 | to (13.center) 90 | to (12.center) 91 | to cycle; 92 | \draw [style=light fill] (18.center) 93 | to (19.center) 94 | to (17.center) 95 | to (16.center) 96 | to cycle; 97 | \draw [style=light fill] (22.center) 98 | to (23.center) 99 | to (21.center) 100 | to (20.center) 101 | to cycle; 102 | \draw [style=light fill] (25.center) to (24.center); 103 | \draw [style=big arrow] (48.center) to (47.center); 104 | \draw [style=big arrow] (54.center) to (53.center); 105 | \draw [style=big arrow] (56.center) to (57.center); 106 | \draw [style=light fill] (61.center) 107 | to [bend left=45] (59.center) 108 | to [bend left=45] (58.center) 109 | to [bend left=45] (60.center) 110 | to [bend left=45] cycle; 111 | \draw [style=light fill] (63.center) 112 | to (65.center) 113 | to (66.center) 114 | to (64.center); 115 | \draw [style=light fill] (64.center) to (63.center); 116 | \draw [style=double arrow] (74.center) to (73.center); 117 | \draw [style=light fill] (34.center) to (33.center); 118 | \draw [style=light fill] (36.center) to (35.center); 119 | \draw [style=light fill] (37.center) to (38.center); 120 | \draw [style=light fill] (82.center) 121 | to (83.center) 122 | to (85.center) 123 | to (84.center) 124 | to cycle; 125 | \draw [style=dashed] (87.center) to (65.center); 126 | \draw [style=dashed] (86.center) to (63.center); 127 | \end{pgfonlayer} 128 | \end{tikzpicture} 129 | -------------------------------------------------------------------------------- /Images/image-31.tikz: -------------------------------------------------------------------------------- 1 | \begin{tikzpicture} 2 | \begin{pgfonlayer}{nodelayer} 3 | \node [style=none] (43) at (20, 0) {}; 4 | \node [style=none] (44) at (22, 0) {}; 5 | \node [style=none] (45) at (18, -4) {}; 6 | \node [style=none] (46) at (24, -4) {}; 7 | \node [style=none] (55) at (14, 0) {}; 8 | \node [style=none] (56) at (16, 0) {}; 9 | \node [style=none] (57) at (12, -4) {}; 10 | \node [style=none] (58) at (18, -4) {}; 11 | \node [style=none] (51) at (8, 0) {}; 12 | \node [style=none] (52) at (10, 0) {}; 13 | \node [style=none] (53) at (6, -4) {}; 14 | \node [style=none] (54) at (12, -4) {}; 15 | \node [style=none] (47) at (2, 0) {}; 16 | \node [style=none] (48) at (4, 0) {}; 17 | \node [style=none] (49) at (0, -4) {}; 18 | \node [style=none] (50) at (6, -4) {}; 19 | \node [style=none] (1) at (0, -4) {}; 20 | \node [style=none] (2) at (2, 0) {}; 21 | \node [style=none] (3) at (4, 0) {}; 22 | \node [style=none] (4) at (6, -4) {}; 23 | \node [style=none] (5) at (2, -4) {}; 24 | \node [style=none] (6) at (4, -4) {}; 25 | \node [style=none] (7) at (6, -4) {}; 26 | \node [style=none] (8) at (8, 0) {}; 27 | \node [style=none] (9) at (10, 0) {}; 28 | \node [style=none] (10) at (12, -4) {}; 29 | \node [style=none] (11) at (8, -4) {}; 30 | \node [style=none] (12) at (10, -4) {}; 31 | \node [style=none] (13) at (12, -4) {}; 32 | \node [style=none] (14) at (14, 0) {}; 33 | \node [style=none] (15) at (16, 0) {}; 34 | \node [style=none] (16) at (18, -4) {}; 35 | \node [style=none] (17) at (14, -4) {}; 36 | \node [style=none] (18) at (16, -4) {}; 37 | \node [style=none] (19) at (0, 1) {}; 38 | \node [style=none] (20) at (0, 1) {}; 39 | \node [style=none] (21) at (25, -4) {}; 40 | \node [style=none] (22) at (0, -4.75) {}; 41 | \node [style=none] (23) at (6, -4.75) {}; 42 | \node [style=none] (24) at (3, -5.5) {loop iteration}; 43 | \node [style=none] (25) at (6, 2.5) {startup overhead}; 44 | \node [style=none] (26) at (6, -1) {}; 45 | \node [style=none] (27) at (18, 2.5) {wind down overhead}; 46 | \node [style=left align] (29) at (25, -4) {\textit{time}}; 47 | \node [style=right align, rotate=90] (30) at (-0.75, 0.75) {\textit{performance}}; 48 | \node [style=none] (31) at (6, 2) {}; 49 | \node [style=none] (33) at (7, -1) {}; 50 | \node [style=none] (34) at (17, -1) {}; 51 | \node [style=none] (35) at (18, -1) {}; 52 | \node [style=none] (36) at (18, 2) {}; 53 | \node [style=none] (37) at (18, -4) {}; 54 | \node [style=none] (38) at (20, 0) {}; 55 | \node [style=none] (39) at (22, 0) {}; 56 | \node [style=none] (40) at (24, -4) {}; 57 | \node [style=none] (41) at (20, -4) {}; 58 | \node [style=none] (42) at (22, -4) {}; 59 | \end{pgfonlayer} 60 | \begin{pgfonlayer}{edgelayer} 61 | \draw [style=light fill] (43.center) 62 | to (45.center) 63 | to (46.center) 64 | to (44.center) 65 | to cycle; 66 | \draw [style=light fill] (55.center) 67 | to (57.center) 68 | to [in=180, out=0] (58.center) 69 | to (56.center) 70 | to cycle; 71 | \draw [style=light fill] (51.center) 72 | to (53.center) 73 | to (54.center) 74 | to (52.center) 75 | to cycle; 76 | \draw [style=light fill] (47.center) 77 | to (49.center) 78 | to (50.center) 79 | to (48.center) 80 | to [in=360, out=180] cycle; 81 | \draw [style=red fill] (1.center) 82 | to (5.center) 83 | to (2.center) 84 | to cycle; 85 | \draw [style=red fill] (6.center) 86 | to (4.center) 87 | to (3.center) 88 | to cycle; 89 | \draw [style=green fill] (7.center) 90 | to (11.center) 91 | to (8.center) 92 | to cycle; 93 | \draw [style=green fill] (12.center) 94 | to (10.center) 95 | to (9.center) 96 | to cycle; 97 | \draw [style=orange fill] (13.center) 98 | to (17.center) 99 | to (14.center) 100 | to cycle; 101 | \draw [style=orange fill] (16.center) 102 | to (15.center) 103 | to (18.center) 104 | to cycle; 105 | \draw [style=big arrow] (1.center) to (20.center); 106 | \draw [style=double arrow] (22.center) to (23.center); 107 | \draw [style=green line] (31.center) to (26.center); 108 | \draw [style=green arrow] (26.center) to (33.center); 109 | \draw [style=orange arrow] (35.center) to (34.center); 110 | \draw [style=orange line] (35.center) to (36.center); 111 | \draw [style=yellow fill] (37.center) 112 | to (41.center) 113 | to (38.center) 114 | to cycle; 115 | \draw [style=yellow fill] (40.center) 116 | to (39.center) 117 | to (42.center) 118 | to cycle; 119 | \draw [style=big arrow] (1.center) to (21.center); 120 | \end{pgfonlayer} 121 | \end{tikzpicture} 122 | -------------------------------------------------------------------------------- /Images/image-32.tikz: -------------------------------------------------------------------------------- 1 | \begin{tikzpicture} 2 | \begin{pgfonlayer}{nodelayer} 3 | \node [style=none] (41) at (2, -4) {}; 4 | \node [style=none] (42) at (12, -4) {}; 5 | \node [style=none] (43) at (12, 0) {}; 6 | \node [style=none] (44) at (2, 0) {}; 7 | \node [style=none] (1) at (0, -4) {}; 8 | \node [style=none] (2) at (2, 0) {}; 9 | \node [style=none] (3) at (4, 0) {}; 10 | \node [style=none] (4) at (6, -4) {}; 11 | \node [style=none] (5) at (2, -4) {}; 12 | \node [style=none] (6) at (4, -4) {}; 13 | \node [style=none] (7) at (2, -4) {}; 14 | \node [style=none] (8) at (4, 0) {}; 15 | \node [style=none] (9) at (6, 0) {}; 16 | \node [style=none] (10) at (8, -4) {}; 17 | \node [style=none] (11) at (4, -4) {}; 18 | \node [style=none] (12) at (6, -4) {}; 19 | \node [style=none] (13) at (6, -4) {}; 20 | \node [style=none] (14) at (8, 0) {}; 21 | \node [style=none] (15) at (10, 0) {}; 22 | \node [style=none] (16) at (12, -4) {}; 23 | \node [style=none] (17) at (8, -4) {}; 24 | \node [style=none] (18) at (10, -4) {}; 25 | \node [style=none] (19) at (0, 1) {}; 26 | \node [style=none] (20) at (0, 1) {}; 27 | \node [style=none] (21) at (15, -4) {}; 28 | \node [style=none] (22) at (0, -4.75) {}; 29 | \node [style=none] (23) at (4, -4.75) {}; 30 | \node [style=none] (24) at (2, -5.5) {prologue}; 31 | \node [style=left align] (29) at (15, -4) {\textit{time}}; 32 | \node [style=right align, rotate=90] (30) at (-0.75, 0.75) {\textit{performance}}; 33 | \node [style=none] (31) at (8, -4) {}; 34 | \node [style=none] (32) at (10, 0) {}; 35 | \node [style=none] (33) at (12, 0) {}; 36 | \node [style=none] (34) at (14, -4) {}; 37 | \node [style=none] (35) at (10, -4) {}; 38 | \node [style=none] (36) at (12, -4) {}; 39 | \node [style=none] (37) at (10, -4.75) {}; 40 | \node [style=none] (38) at (14, -4.75) {}; 41 | \node [style=none] (39) at (12, -5.5) {epilogue}; 42 | \node [style=none] (40) at (7, -5.5) {loop iterations}; 43 | \end{pgfonlayer} 44 | \begin{pgfonlayer}{edgelayer} 45 | \draw [style=light fill] (44.center) 46 | to (41.center) 47 | to (42.center) 48 | to (43.center) 49 | to cycle; 50 | \draw [style=big arrow] (1.center) to (21.center); 51 | \draw [style=red fill] (1.center) 52 | to (5.center) 53 | to (2.center) 54 | to cycle; 55 | \draw [style=red fill] (6.center) 56 | to (4.center) 57 | to (3.center) 58 | to cycle; 59 | \draw [style=green fill] (7.center) 60 | to (11.center) 61 | to (8.center) 62 | to cycle; 63 | \draw [style=green fill] (12.center) 64 | to (10.center) 65 | to (9.center) 66 | to cycle; 67 | \draw [style=orange fill] (13.center) 68 | to (17.center) 69 | to (14.center) 70 | to cycle; 71 | \draw [style=orange fill] (16.center) 72 | to (15.center) 73 | to (18.center) 74 | to cycle; 75 | \draw [style=big arrow] (1.center) to (20.center); 76 | \draw [style=double arrow] (22.center) to (23.center); 77 | \draw [style=yellow fill] (31.center) 78 | to (35.center) 79 | to (32.center) 80 | to cycle; 81 | \draw [style=yellow fill] (34.center) 82 | to (33.center) 83 | to (36.center) 84 | to cycle; 85 | \draw [style=double arrow] (37.center) to (38.center); 86 | \draw [style=double arrow] (23.center) to (37.center); 87 | \end{pgfonlayer} 88 | \end{tikzpicture} 89 | -------------------------------------------------------------------------------- /Images/image-33.tikz: -------------------------------------------------------------------------------- 1 | \begin{tikzpicture} 2 | \begin{pgfonlayer}{nodelayer} 3 | \node [style=none] (0) at (2, -1) {}; 4 | \node [style=none] (6) at (18, -1) {}; 5 | \node [style=none] (7) at (2, -5) {}; 6 | \node [style=none] (8) at (18, -5) {}; 7 | \node [style=none] (9) at (4, -1) {}; 8 | \node [style=none] (10) at (4, -5) {}; 9 | \node [style=none] (11) at (6, -1) {}; 10 | \node [style=none] (12) at (6, -5) {}; 11 | \node [style=none] (13) at (8, -1) {}; 12 | \node [style=none] (14) at (8, -5) {}; 13 | \node [style=none] (15) at (10, -1) {}; 14 | \node [style=none] (16) at (10, -5) {}; 15 | \node [style=none] (19) at (16, -1) {}; 16 | \node [style=none] (20) at (16, -5) {}; 17 | \node [style=none] (22) at (12, -5) {}; 18 | \node [style=none] (24) at (5, -0.75) {}; 19 | \node [style=none] (25) at (5, 0.5) {}; 20 | \node [style=none] (26) at (11, -0.75) {}; 21 | \node [style=none] (27) at (11, 0.5) {}; 22 | \node [style=none] (28) at (5, 1.25) {head pointer}; 23 | \node [style=none] (29) at (11, 1.25) {tail pointer}; 24 | \node [style=none] (30) at (18, -3) {}; 25 | \node [style=none] (31) at (20, -3) {}; 26 | \node [style=none] (32) at (0, -3) {}; 27 | \node [style=none] (33) at (1.75, -3) {}; 28 | \node [style=none] (34) at (20, -8) {}; 29 | \node [style=none] (35) at (0, -8) {}; 30 | \node [style=none] (56) at (12, -1) {}; 31 | \node [style=none] (57) at (14, -1) {}; 32 | \node [style=none] (58) at (14, -5) {}; 33 | \node [style=none] (59) at (12, -5.25) {}; 34 | \node [style=none] (60) at (12, -5.5) {}; 35 | \node [style=none] (61) at (18, -5.25) {}; 36 | \node [style=none] (62) at (18, -5.5) {}; 37 | \node [style=none] (63) at (15, -6) {free space}; 38 | \node [style=none] (64) at (2, -5.25) {}; 39 | \node [style=none] (65) at (2, -5.5) {}; 40 | \node [style=none] (66) at (4, -5.5) {}; 41 | \node [style=none] (67) at (4, -5.25) {}; 42 | \node [style=none] (68) at (3, -6) {free space}; 43 | \end{pgfonlayer} 44 | \begin{pgfonlayer}{edgelayer} 45 | \draw [style=light fill] (8.center) 46 | to (7.center) 47 | to (0.center) 48 | to (6.center) 49 | to cycle; 50 | \draw [style=light fill] (20.center) to (19.center); 51 | \draw [style=green fill] (22.center) 52 | to (56.center) 53 | to (9.center) 54 | to (10.center) 55 | to cycle; 56 | \draw [style=green fill] (11.center) to (12.center); 57 | \draw [style=green fill] (14.center) to (13.center); 58 | \draw [style=green fill] (16.center) to (15.center); 59 | \draw [style=green arrow] (25.center) to (24.center); 60 | \draw [style=green arrow] (27.center) to (26.center); 61 | \draw [style=dashed] (30.center) to (31.center); 62 | \draw [style=dashed] (31.center) to (34.center); 63 | \draw [style=dashed] (34.center) to (35.center); 64 | \draw [style=dashed] (35.center) to (32.center); 65 | \draw [style=dashed arrow] (32.center) to (33.center); 66 | \draw [style=light fill] (57.center) to (58.center); 67 | \draw [style=solid] (59.center) to (60.center); 68 | \draw [style=solid] (60.center) to (62.center); 69 | \draw [style=solid, in=270, out=90] (62.center) to (61.center); 70 | \draw [style=solid] (64.center) to (65.center); 71 | \draw [style=solid] (65.center) to (66.center); 72 | \draw [style=solid] (66.center) to (67.center); 73 | \end{pgfonlayer} 74 | \end{tikzpicture} 75 | -------------------------------------------------------------------------------- /Images/image-34.tikz: -------------------------------------------------------------------------------- 1 | \begin{tikzpicture} 2 | \begin{pgfonlayer}{nodelayer} 3 | \node [style=none] (35) at (14, 0) {}; 4 | \node [style=none] (36) at (14, -1) {}; 5 | \node [style=none] (37) at (16, 0) {}; 6 | \node [style=none] (38) at (16, -1) {}; 7 | \node [style=none] (39) at (15, -0.5) {\small\texttt{TAG}}; 8 | \node [style=none] (0) at (0, 0) {}; 9 | \node [style=none] (1) at (0, -1) {}; 10 | \node [style=none] (2) at (1, 0) {}; 11 | \node [style=none] (3) at (1, -1) {}; 12 | \node [style=none] (4) at (0.5, -0.5) {\small\texttt{V}}; 13 | \node [style=none] (5) at (1, 0) {}; 14 | \node [style=none] (6) at (1, -1) {}; 15 | \node [style=none] (7) at (2, 0) {}; 16 | \node [style=none] (8) at (2, -1) {}; 17 | \node [style=none] (9) at (1.5, -0.5) {\small\texttt{I}}; 18 | \node [style=none] (10) at (3, 0) {}; 19 | \node [style=none] (11) at (3, -1) {}; 20 | \node [style=none] (12) at (6, 0) {}; 21 | \node [style=none] (13) at (6, -1) {}; 22 | \node [style=none] (14) at (4.5, -0.5) {\small\texttt{OPCODE}}; 23 | \node [style=none] (15) at (7, 0) {}; 24 | \node [style=none] (16) at (7, -1) {}; 25 | \node [style=none] (17) at (8, 0) {}; 26 | \node [style=none] (18) at (8, -1) {}; 27 | \node [style=none] (19) at (7.5, -0.5) {\small\texttt{P}}; 28 | \node [style=none] (20) at (8, 0) {}; 29 | \node [style=none] (21) at (8, -1) {}; 30 | \node [style=none] (22) at (10, 0) {}; 31 | \node [style=none] (23) at (10, -1) {}; 32 | \node [style=none] (24) at (9, -0.5) {\small\texttt{TAG}}; 33 | \node [style=none] (25) at (10, 0) {}; 34 | \node [style=none] (26) at (10, -1) {}; 35 | \node [style=none] (27) at (12, 0) {}; 36 | \node [style=none] (28) at (12, -1) {}; 37 | \node [style=none] (29) at (11, -0.5) {\small\texttt{SRC1}}; 38 | \node [style=none] (30) at (13, 0) {}; 39 | \node [style=none] (31) at (13, -1) {}; 40 | \node [style=none] (32) at (14, 0) {}; 41 | \node [style=none] (33) at (14, -1) {}; 42 | \node [style=none] (34) at (13.5, -0.5) {\small\texttt{P}}; 43 | \node [style=none] (40) at (16, 0) {}; 44 | \node [style=none] (41) at (16, -1) {}; 45 | \node [style=none] (42) at (18, 0) {}; 46 | \node [style=none] (43) at (18, -1) {}; 47 | \node [style=none] (44) at (17, -0.5) {\small\texttt{SRC2}}; 48 | \node [style=none] (45) at (19, 0) {}; 49 | \node [style=none] (46) at (19, -1) {}; 50 | \node [style=none] (47) at (20, 0) {}; 51 | \node [style=none] (48) at (20, -1) {}; 52 | \node [style=none] (49) at (19.5, -0.5) {\small\texttt{P}}; 53 | \node [style=none] (50) at (20, 0) {}; 54 | \node [style=none] (51) at (20, -1) {}; 55 | \node [style=none] (52) at (22, 0) {}; 56 | \node [style=none] (53) at (22, -1) {}; 57 | \node [style=none] (54) at (21, -0.5) {\small\texttt{REG}}; 58 | \node [style=none] (55) at (22, 0) {}; 59 | \node [style=none] (56) at (22, -1) {}; 60 | \node [style=none] (57) at (25, 0) {}; 61 | \node [style=none] (58) at (25, -1) {}; 62 | \node [style=none] (59) at (23.5, -0.5) {\small\texttt{RESULT}}; 63 | \node [style=none] (60) at (25, 0) {}; 64 | \node [style=none] (61) at (25, -1) {}; 65 | \node [style=none] (62) at (29, 0) {}; 66 | \node [style=none] (63) at (29, -1) {}; 67 | \node [style=none] (64) at (27, -0.5) {\small\texttt{EXCEPTIONS}}; 68 | \end{pgfonlayer} 69 | \begin{pgfonlayer}{edgelayer} 70 | \draw [style=light fill] (1.center) 71 | to (3.center) 72 | to (2.center) 73 | to (0.center) 74 | to cycle; 75 | \draw [style=light fill] (6.center) 76 | to (8.center) 77 | to (7.center) 78 | to (5.center) 79 | to cycle; 80 | \draw [style=light fill] (11.center) 81 | to (13.center) 82 | to (12.center) 83 | to (10.center) 84 | to cycle; 85 | \draw [style=light fill] (16.center) 86 | to (18.center) 87 | to (17.center) 88 | to (15.center) 89 | to cycle; 90 | \draw [style=light fill] (21.center) 91 | to (23.center) 92 | to (22.center) 93 | to (20.center) 94 | to cycle; 95 | \draw [style=light fill] (26.center) 96 | to (28.center) 97 | to (27.center) 98 | to (25.center) 99 | to cycle; 100 | \draw [style=light fill] (32.center) 101 | to (30.center) 102 | to (31.center) 103 | to (33.center) 104 | to cycle; 105 | \draw [style=light fill] (38.center) 106 | to (37.center) 107 | to (35.center) 108 | to (36.center) 109 | to cycle; 110 | \draw [style=light fill] (40.center) 111 | to (41.center) 112 | to (43.center) 113 | to (42.center) 114 | to cycle; 115 | \draw [style=light fill] (45.center) 116 | to (46.center) 117 | to (48.center) 118 | to (47.center) 119 | to cycle; 120 | \draw [style=light fill] (50.center) 121 | to (51.center) 122 | to (53.center) 123 | to (52.center) 124 | to cycle; 125 | \draw [style=light fill] (55.center) 126 | to (56.center) 127 | to (58.center) 128 | to (57.center) 129 | to cycle; 130 | \draw [style=light fill] (60.center) 131 | to (61.center) 132 | to (63.center) 133 | to (62.center) 134 | to cycle; 135 | \end{pgfonlayer} 136 | \end{tikzpicture} 137 | -------------------------------------------------------------------------------- /Images/image-35.tikz: -------------------------------------------------------------------------------- 1 | \begin{tikzpicture} 2 | \begin{pgfonlayer}{nodelayer} 3 | \node [style=none] (0) at (-1, 0) {}; 4 | \node [style=none] (1) at (2, 0) {}; 5 | \node [style=none] (2) at (-1, -2) {}; 6 | \node [style=none] (3) at (2, -2) {}; 7 | \node [style=none] (4) at (0.5, -1) {\texttt{fetch}}; 8 | \node [style=none] (5) at (3.75, -1) {}; 9 | \node [style=none] (6) at (2, -1) {}; 10 | \node [style=none] (7) at (4, 0) {}; 11 | \node [style=none] (8) at (7, 0) {}; 12 | \node [style=none] (9) at (4, -2) {}; 13 | \node [style=none] (10) at (7, -2) {}; 14 | \node [style=none] (11) at (5.5, -1) {\texttt{decode}}; 15 | \node [style=none] (12) at (9.75, -1) {}; 16 | \node [style=none] (13) at (7, -1) {}; 17 | \node [style=none] (14) at (10, 0) {}; 18 | \node [style=none] (15) at (13, 0) {}; 19 | \node [style=none] (16) at (10, -2) {}; 20 | \node [style=none] (17) at (13, -2) {}; 21 | \node [style=none] (18) at (11.5, -1) {\texttt{ROB}}; 22 | \node [style=none] (19) at (16.75, -1) {}; 23 | \node [style=none] (20) at (13, -1) {}; 24 | \node [style=none] (21) at (17, 0) {}; 25 | \node [style=none] (22) at (21, 0) {}; 26 | \node [style=none] (23) at (17, -2) {}; 27 | \node [style=none] (24) at (21, -2) {}; 28 | \node [style=none] (25) at (19, -1) {\texttt{commit}}; 29 | \node [style=none] (26) at (23, -1) {}; 30 | \node [style=none] (27) at (21, -1) {}; 31 | \node [style=none] (28) at (11, 0) {}; 32 | \node [style=none] (30) at (12, 2) {}; 33 | \node [style=none] (31) at (12, 0.25) {}; 34 | \node [style=none] (32) at (11, 1.75) {}; 35 | \node [style=none] (33) at (10, 4) {}; 36 | \node [style=none] (34) at (13, 4) {}; 37 | \node [style=none] (35) at (13, 2) {}; 38 | \node [style=none] (36) at (10, 2) {}; 39 | \node [style=none] (37) at (11.5, 3) {\small\texttt{execute}}; 40 | \node [style=none] (38) at (15, -1) {}; 41 | \node [style=none] (39) at (15, -4) {}; 42 | \node [style=none] (40) at (16.75, -4) {}; 43 | \node [style=none] (41) at (17, -3) {}; 44 | \node [style=none] (42) at (21, -3) {}; 45 | \node [style=none] (43) at (17, -5) {}; 46 | \node [style=none] (44) at (21, -5) {}; 47 | \node [style=none] (45) at (19, -4) {\texttt{exception}}; 48 | \node [style=none] (46) at (18, -5) {}; 49 | \node [style=none] (47) at (18, -7) {}; 50 | \node [style=none] (49) at (11.5, -7) {}; 51 | \node [style=none] (50) at (11.5, -2.25) {}; 52 | \node [style=none] (51) at (19, -5) {}; 53 | \node [style=none] (52) at (19, -8) {}; 54 | \node [style=none] (53) at (5.5, -8) {}; 55 | \node [style=none] (54) at (5.5, -2.25) {}; 56 | \node [style=none] (55) at (20, -5) {}; 57 | \node [style=none] (56) at (20, -9) {}; 58 | \node [style=none] (57) at (0.5, -9) {}; 59 | \node [style=none] (58) at (0.5, -2.25) {}; 60 | \node [style=none] (62) at (-2, -3) {}; 61 | \node [style=none] (63) at (-2, 1) {}; 62 | \node [style=none] (64) at (8, 1) {}; 63 | \node [style=none] (65) at (8, -3) {}; 64 | \node [style=none] (66) at (3, 1.5) {in order}; 65 | \node [style=none] (67) at (16, -6) {}; 66 | \node [style=none] (68) at (16, 1) {}; 67 | \node [style=none] (69) at (22, 1) {}; 68 | \node [style=none] (71) at (19, 1.5) {in order}; 69 | \node [style=none] (72) at (22, -6) {}; 70 | \node [style=none] (73) at (9, 5) {}; 71 | \node [style=none] (74) at (9, -3) {}; 72 | \node [style=none] (75) at (14, -3) {}; 73 | \node [style=none] (76) at (14, 5) {}; 74 | \node [style=none] (77) at (11.5, 5.5) {out of order}; 75 | \node [style=none, text={rgb,255: red,191; green,0; blue,64}] (79) at (10, -9.5) {\texttt{kill}}; 76 | \node [style=none, text={rgb,255: red,191; green,0; blue,64}] (80) at (15, -7.5) {\texttt{kill}}; 77 | \node [style=none, text={rgb,255: red,191; green,0; blue,64}] (81) at (12.5, -8.5) {\texttt{kill}}; 78 | \end{pgfonlayer} 79 | \begin{pgfonlayer}{edgelayer} 80 | \draw [style=light fill] (1.center) 81 | to (0.center) 82 | to (2.center) 83 | to (3.center) 84 | to cycle; 85 | \draw [style=big arrow] (6.center) to (5.center); 86 | \draw [style=light fill] (8.center) 87 | to (7.center) 88 | to (9.center) 89 | to (10.center) 90 | to cycle; 91 | \draw [style=big arrow] (13.center) to (12.center); 92 | \draw [style=light fill] (15.center) 93 | to (14.center) 94 | to (16.center) 95 | to (17.center) 96 | to cycle; 97 | \draw [style=big arrow] (20.center) to (19.center); 98 | \draw [style=light fill] (22.center) 99 | to (21.center) 100 | to (23.center) 101 | to (24.center) 102 | to cycle; 103 | \draw [style=big arrow] (27.center) to (26.center); 104 | \draw [style=green arrow] (30.center) to (31.center); 105 | \draw [style=green arrow] (28.center) to (32.center); 106 | \draw [style=light fill] (36.center) 107 | to (33.center) 108 | to (34.center) 109 | to (35.center) 110 | to cycle; 111 | \draw [style=big] (38.center) to (39.center); 112 | \draw [style=big arrow] (39.center) to (40.center); 113 | \draw [style=light fill] (43.center) 114 | to (44.center) 115 | to (42.center) 116 | to (41.center) 117 | to cycle; 118 | \draw [style=red line] (46.center) to (47.center); 119 | \draw [style=red arrow] (49.center) to (50.center); 120 | \draw [style=red line] (51.center) to (52.center); 121 | \draw [style=red line] (53.center) to (52.center); 122 | \draw [style=red arrow] (53.center) to (54.center); 123 | \draw [style=red arrow] (57.center) to (58.center); 124 | \draw [style=red line] (57.center) to (56.center); 125 | \draw [style=red line] (56.center) to (55.center); 126 | \draw [style=red line] (47.center) to (49.center); 127 | \draw [style=dashed] (62.center) to (63.center); 128 | \draw [style=dashed] (63.center) to (64.center); 129 | \draw [style=dashed] (64.center) to (65.center); 130 | \draw [style=dashed] (67.center) 131 | to (68.center) 132 | to (69.center) 133 | to (72.center); 134 | \draw [style=dashed] (62.center) to (65.center); 135 | \draw [style=dashed] (72.center) to (67.center); 136 | \draw [style=dashed] (73.center) 137 | to (74.center) 138 | to (75.center) 139 | to (76.center) 140 | to cycle; 141 | \end{pgfonlayer} 142 | \end{tikzpicture} 143 | -------------------------------------------------------------------------------- /Images/image-36.tikz: -------------------------------------------------------------------------------- 1 | \begin{tikzpicture} 2 | \begin{pgfonlayer}{nodelayer} 3 | \node [style=none] (0) at (0, 0) {}; 4 | \node [style=none] (1) at (0, -2) {}; 5 | \node [style=none] (2) at (3, 0) {}; 6 | \node [style=none] (3) at (3, -2) {}; 7 | \node [style=none] (4) at (1.5, -1) {\texttt{fetch}}; 8 | \node [style=none] (5) at (5, 0) {}; 9 | \node [style=none] (6) at (5, -2) {}; 10 | \node [style=none] (7) at (8, 0) {}; 11 | \node [style=none] (8) at (8, -2) {}; 12 | \node [style=none] (9) at (6.5, -0.5) {\texttt{decode}}; 13 | \node [style=none] (10) at (3, -1) {}; 14 | \node [style=none] (11) at (4.75, -1) {}; 15 | \node [style=none] (12) at (10, 0) {}; 16 | \node [style=none] (13) at (10, -2) {}; 17 | \node [style=none] (14) at (13, 0) {}; 18 | \node [style=none] (15) at (13, -2) {}; 19 | \node [style=none] (16) at (11.5, -1) {\small\texttt{execute}}; 20 | \node [style=none] (17) at (8, -1) {}; 21 | \node [style=none] (18) at (9.75, -1) {}; 22 | \node [style=none] (19) at (6.5, -1.5) {\texttt{rename}}; 23 | \node [style=none] (20) at (5, -4) {}; 24 | \node [style=none] (21) at (5, -6) {}; 25 | \node [style=none] (22) at (8, -4) {}; 26 | \node [style=none] (23) at (8, -6) {}; 27 | \node [style=none] (24) at (6.5, -4.75) {\texttt{rename}}; 28 | \node [style=none] (25) at (6.5, -4) {}; 29 | \node [style=none] (26) at (6.5, -5.25) {\texttt{table}}; 30 | \node [style=none] (27) at (11.5, -2) {}; 31 | \node [style=none] (28) at (11.5, -5) {}; 32 | \node [style=none] (29) at (8.25, -5) {}; 33 | \node [style=none] (30) at (6.5, -2.25) {}; 34 | \end{pgfonlayer} 35 | \begin{pgfonlayer}{edgelayer} 36 | \draw [style=light fill] (1.center) 37 | to (3.center) 38 | to (2.center) 39 | to (0.center) 40 | to cycle; 41 | \draw [style=light fill] (6.center) 42 | to (8.center) 43 | to (7.center) 44 | to (5.center) 45 | to cycle; 46 | \draw [style=big arrow] (10.center) to (11.center); 47 | \draw [style=light fill] (13.center) 48 | to (15.center) 49 | to (14.center) 50 | to (12.center) 51 | to cycle; 52 | \draw [style=big arrow] (17.center) to (18.center); 53 | \draw [style=light fill] (21.center) 54 | to (23.center) 55 | to (22.center) 56 | to (20.center) 57 | to cycle; 58 | \draw [style=green arrow] (25.center) to (30.center); 59 | \draw [style=green arrow] (28.center) to (29.center); 60 | \draw [style=green line] (27.center) to (28.center); 61 | \end{pgfonlayer} 62 | \end{tikzpicture} 63 | -------------------------------------------------------------------------------- /Images/image-37.tikz: -------------------------------------------------------------------------------- 1 | \begin{tikzpicture} 2 | \begin{pgfonlayer}{nodelayer} 3 | \node [style=none] (0) at (0, 0) {}; 4 | \node [style=none] (1) at (0, -1.75) {}; 5 | \node [style=none] (2) at (7, -1.75) {}; 6 | \node [style=none] (3) at (7, 0) {}; 7 | \node [style=none] (4) at (3.5, -0.5) {\small\texttt{decode stage}}; 8 | \node [style=none] (5) at (3.5, -1.25) {\small\texttt{register mapping}}; 9 | \node [style=none] (6) at (15, 0) {}; 10 | \node [style=none] (7) at (15, -1.75) {}; 11 | \node [style=none] (8) at (22, -1.75) {}; 12 | \node [style=none] (9) at (22, 0) {}; 13 | \node [style=none] (10) at (18.5, -0.5) {\small\texttt{commit stage}}; 14 | \node [style=none] (11) at (18.5, -1.25) {\small\texttt{register mapping}}; 15 | \node [style=none] (12) at (7.5, -4) {}; 16 | \node [style=none] (13) at (7.5, -5.75) {}; 17 | \node [style=none] (14) at (14.5, -5.75) {}; 18 | \node [style=none] (15) at (14.5, -4) {}; 19 | \node [style=none] (16) at (11, -4.5) {\small\texttt{unified physical}}; 20 | \node [style=none] (17) at (11, -5.25) {\small\texttt{register file}}; 21 | \node [style=none] (18) at (3.5, -1.75) {}; 22 | \node [style=none] (19) at (3.5, -5) {}; 23 | \node [style=none] (20) at (7.25, -5) {}; 24 | \node [style=none] (21) at (14.75, -5) {}; 25 | \node [style=none] (22) at (18.5, -5) {}; 26 | \node [style=none] (23) at (18.5, -1.75) {}; 27 | \node [style=none] (24) at (7.75, -9) {}; 28 | \node [style=none] (25) at (7.75, -10.75) {}; 29 | \node [style=none] (26) at (14.25, -10.75) {}; 30 | \node [style=none] (27) at (14.25, -9) {}; 31 | \node [style=none] (28) at (11, -9.875) {\small\texttt{functional units}}; 32 | \node [style=none] (30) at (9.5, -5.75) {}; 33 | \node [style=none] (31) at (12.5, -9) {}; 34 | \node [style=none] (32) at (12.5, -6) {}; 35 | \node [style=none] (33) at (9.5, -8.75) {}; 36 | \node [style=right align] (34) at (9.25, -7.5) {read operands at issue}; 37 | \node [style=left align] (35) at (12.75, -7.5) {write results at completion}; 38 | \end{pgfonlayer} 39 | \begin{pgfonlayer}{edgelayer} 40 | \draw [style=light fill] (0.center) 41 | to (1.center) 42 | to (2.center) 43 | to (3.center) 44 | to cycle; 45 | \draw [style=light fill] (6.center) 46 | to (7.center) 47 | to (8.center) 48 | to (9.center) 49 | to cycle; 50 | \draw [style=light fill] (12.center) 51 | to (13.center) 52 | to (14.center) 53 | to (15.center) 54 | to cycle; 55 | \draw [style=big] (18.center) to (19.center); 56 | \draw [style=big arrow] (19.center) to (20.center); 57 | \draw [style=big arrow] (22.center) to (21.center); 58 | \draw [style=big] (23.center) to (22.center); 59 | \draw [style=light fill] (24.center) 60 | to (25.center) 61 | to (26.center) 62 | to (27.center) 63 | to cycle; 64 | \draw [style=green arrow] (30.center) to (33.center); 65 | \draw [style=red arrow] (31.center) to (32.center); 66 | \end{pgfonlayer} 67 | \end{tikzpicture} 68 | -------------------------------------------------------------------------------- /Images/image-40.tikz: -------------------------------------------------------------------------------- 1 | \begin{tikzpicture} 2 | \begin{pgfonlayer}{nodelayer} 3 | \node [style=none] (0) at (8, -1) {}; 4 | \node [style=none] (1) at (8, -1.75) {}; 5 | \node [style=none] (2) at (7, -2) {}; 6 | \node [style=none] (3) at (7, -4) {}; 7 | \node [style=none] (4) at (9, -4) {}; 8 | \node [style=none] (5) at (9, -2) {}; 9 | \node [style=none] (6) at (8, -3) {\(\texttt{I}_{i-1}\)}; 10 | \node [style=none] (7) at (7, -6) {}; 11 | \node [style=none] (8) at (7, -8) {}; 12 | \node [style=none] (9) at (9, -8) {}; 13 | \node [style=none] (10) at (9, -6) {}; 14 | \node [style=none] (11) at (8, -7) {\(\texttt{I}_{i}\)}; 15 | \node [style=none] (12) at (7, -10) {}; 16 | \node [style=none] (13) at (7, -12) {}; 17 | \node [style=none] (14) at (9, -12) {}; 18 | \node [style=none] (15) at (9, -10) {}; 19 | \node [style=none] (16) at (8, -11) {\(\texttt{I}_{i+1}\)}; 20 | \node [style=none] (17) at (8, -8) {}; 21 | \node [style=none] (18) at (8, -9.75) {}; 22 | \node [style=none] (19) at (8, -4) {}; 23 | \node [style=none] (20) at (8, -5.75) {}; 24 | \node [style=none] (21) at (0, -7) {}; 25 | \node [style=none] (22) at (6.75, -7) {}; 26 | \node [style=none] (23) at (8, -13) {}; 27 | \node [style=none] (24) at (8, -14) {}; 28 | \node [style=none] (25) at (8, 0) {}; 29 | \node [style=none] (26) at (8, -12) {}; 30 | \node [style=left align, text={rgb,255: red,191; green,0; blue,64}] (27) at (0, -6.5) {\texttt{INTERRUPT EVENT}}; 31 | \node [style=none] (28) at (9, -6.5) {}; 32 | \node [style=none] (29) at (11, -6.5) {}; 33 | \node [style=none] (30) at (11, 0) {}; 34 | \node [style=none] (31) at (14, 0) {}; 35 | \node [style=none] (32) at (14, -1.75) {}; 36 | \node [style=none] (33) at (13, -2) {}; 37 | \node [style=none] (34) at (15, -2) {}; 38 | \node [style=none] (35) at (13, -4) {}; 39 | \node [style=none] (36) at (15, -4) {}; 40 | \node [style=none, text=white] (37) at (14, -3) {\(\texttt{HI}_{1}\)}; 41 | \node [style=none] (38) at (14, -4) {}; 42 | \node [style=none] (39) at (14, -5.75) {}; 43 | \node [style=none] (40) at (13, -6) {}; 44 | \node [style=none] (41) at (15, -6) {}; 45 | \node [style=none] (42) at (13, -8) {}; 46 | \node [style=none] (43) at (15, -8) {}; 47 | \node [style=none, text=white] (44) at (14, -7) {\(\texttt{HI}_{2}\)}; 48 | \node [style=none] (45) at (14, -8.25) {}; 49 | \node [style=none] (46) at (14, -9.75) {}; 50 | \node [style=none] (47) at (13, -10) {}; 51 | \node [style=none] (48) at (15, -10) {}; 52 | \node [style=none] (49) at (13, -12) {}; 53 | \node [style=none] (50) at (15, -12) {}; 54 | \node [style=none, text=white] (51) at (14, -11) {\(\texttt{HI}_{n}\)}; 55 | \node [style=none] (52) at (14, -12) {}; 56 | \node [style=none] (53) at (14, -14) {}; 57 | \node [style=none] (54) at (11, -14) {}; 58 | \node [style=none] (55) at (11, -7.5) {}; 59 | \node [style=none] (56) at (9.25, -7.5) {}; 60 | \node [style=none, rotate=90, text={rgb,255: red,191; green,0; blue,64}] (57) at (15.75, -7) {\texttt{INTERRUPT HANDLER}}; 61 | \end{pgfonlayer} 62 | \begin{pgfonlayer}{edgelayer} 63 | \draw [style=light fill] (2.center) 64 | to (3.center) 65 | to (4.center) 66 | to (5.center) 67 | to cycle; 68 | \draw [style=light fill] (7.center) 69 | to (8.center) 70 | to (9.center) 71 | to (10.center) 72 | to cycle; 73 | \draw [style=light fill] (12.center) 74 | to (13.center) 75 | to (14.center) 76 | to (15.center) 77 | to cycle; 78 | \draw [style=big arrow] (0.center) to (1.center); 79 | \draw [style=big arrow] (19.center) to (20.center); 80 | \draw [style=big arrow] (17.center) to (18.center); 81 | \draw [style=red arrow] (21.center) to (22.center); 82 | \draw [style=big dashed] (23.center) to (24.center); 83 | \draw [style=big dashed] (25.center) to (0.center); 84 | \draw [style=big] (26.center) to (23.center); 85 | \draw [style=red line] (28.center) 86 | to (29.center) 87 | to (30.center) 88 | to (31.center); 89 | \draw [style=red arrow] (31.center) to (32.center); 90 | \draw [style=red fill] (33.center) 91 | to (35.center) 92 | to (36.center) 93 | to (34.center) 94 | to cycle; 95 | \draw [style=red arrow] (38.center) to (39.center); 96 | \draw [style=red fill] (40.center) 97 | to (42.center) 98 | to (43.center) 99 | to (41.center) 100 | to cycle; 101 | \draw [style=dashed, color={rgb,255: red,191; green,0; blue,64}, thick] (45.center) to (46.center); 102 | \draw [style=red fill] (47.center) 103 | to (49.center) 104 | to (50.center) 105 | to (48.center) 106 | to cycle; 107 | \draw [style=red line] (52.center) 108 | to (53.center) 109 | to (54.center) 110 | to (55.center); 111 | \draw [style=red arrow] (55.center) to (56.center); 112 | \end{pgfonlayer} 113 | \end{tikzpicture} 114 | -------------------------------------------------------------------------------- /Images/image-41.tikz: -------------------------------------------------------------------------------- 1 | \begin{tikzpicture} 2 | \begin{pgfonlayer}{nodelayer} 3 | \node [style=none] (51) at (6.5, -4.5) {}; 4 | \node [style=left align] (0) at (0.25, 0.5) {\small\texttt{add r1, r2, r3}}; 5 | \node [style=left align] (1) at (0.25, -0.5) {\small\texttt{subi r4, r1, \#4}}; 6 | \node [style=left align] (2) at (0.25, -1.5) {\small\texttt{slli r4, r4, \#2}}; 7 | \node [style=none] (3) at (6.5, 1) {}; 8 | \node [style=none] (4) at (0, 1) {}; 9 | \node [style=none] (5) at (0, -8) {}; 10 | \node [style=none] (6) at (6.5, -8) {}; 11 | \node [style=left align] (8) at (0.25, -5.5) {\small\texttt{lw r3, 3(r4)}}; 12 | \node [style=left align] (9) at (0.25, -6.5) {\small\texttt{add r2, r2, r3}}; 13 | \node [style=left align] (10) at (0.25, -7.5) {\small\texttt{sw 8(r4), r2}}; 14 | \node [style=none] (13) at (-7, -3.5) {}; 15 | \node [style=none] (14) at (-0.25, -3.5) {}; 16 | \node [style=left align, text={rgb,255: red,191; green,0; blue,64}] (15) at (-7, -3) {\small\texttt{INTERRUPT EVENT}}; 17 | \node [style=none] (16) at (6.5, -3.25) {}; 18 | \node [style=none] (17) at (9, -3.25) {}; 19 | \node [style=none] (18) at (9, 3.5) {}; 20 | \node [style=none] (19) at (18, 3.5) {}; 21 | \node [style=none, text={rgb,255: red,191; green,0; blue,64}] (20) at (13.5, 6) {\small\texttt{PC} is disabled}; 22 | \node [style=none, text={rgb,255: red,191; green,0; blue,64}] (21) at (13.5, 5) {all interrupts are disabled}; 23 | \node [style=none, text={rgb,255: red,191; green,0; blue,64}] (22) at (13.5, 4) {enter supervisor mode}; 24 | \node [style=none] (23) at (18, 1.75) {}; 25 | \node [style=none] (24) at (17, 1.5) {}; 26 | \node [style=none] (25) at (19, 1.5) {}; 27 | \node [style=none] (26) at (17, -0.5) {}; 28 | \node [style=none] (27) at (19, -0.5) {}; 29 | \node [style=none, text=white] (28) at (18, 0.5) {\(\small\texttt{HI}_{1}\)}; 30 | \node [style=none] (29) at (18, -0.5) {}; 31 | \node [style=none] (30) at (18, -2.25) {}; 32 | \node [style=none] (31) at (17, -2.5) {}; 33 | \node [style=none] (32) at (19, -2.5) {}; 34 | \node [style=none] (33) at (17, -4.5) {}; 35 | \node [style=none] (34) at (19, -4.5) {}; 36 | \node [style=none, text=white] (35) at (18, -3.5) {\(\small\texttt{HI}_{2}\)}; 37 | \node [style=none] (36) at (18, -4.75) {}; 38 | \node [style=none] (37) at (18, -6.25) {}; 39 | \node [style=none] (38) at (17, -6.5) {}; 40 | \node [style=none] (39) at (19, -6.5) {}; 41 | \node [style=none] (40) at (17, -8.5) {}; 42 | \node [style=none] (41) at (19, -8.5) {}; 43 | \node [style=none, text=white] (42) at (18, -7.5) {\(\small\texttt{HI}_{n}\)}; 44 | \node [style=none] (43) at (18, -8.5) {}; 45 | \node [style=none, rotate=90, text={rgb,255: red,191; green,0; blue,64}] (44) at (19.75, -3.5) {\small\texttt{INTERRUPT HANDLER}}; 46 | \node [style=none] (45) at (18, -10.5) {}; 47 | \node [style=none] (46) at (9, -10.5) {}; 48 | \node [style=none] (47) at (9, -4) {}; 49 | \node [style=none] (48) at (6.75, -4) {}; 50 | \node [style=none] (49) at (0, -2.5) {}; 51 | \node [style=none] (50) at (0, -4.5) {}; 52 | \node [style=none] (52) at (6.5, -2.5) {}; 53 | \node [style=left align, text=white] (7) at (0.25, -3.5) {\small\texttt{lw r2, 0(r4)}}; 54 | \node [style=none, text={rgb,255: red,191; green,0; blue,64}] (53) at (13.5, -11) {\small\texttt{PC} is restored}; 55 | \node [style=none, text={rgb,255: red,191; green,0; blue,64}] (54) at (13.5, -11.75) {all interrupts are re enabled}; 56 | \node [style=none, text={rgb,255: red,191; green,0; blue,64}] (55) at (13.5, -12.5) {enter user mode}; 57 | \end{pgfonlayer} 58 | \begin{pgfonlayer}{edgelayer} 59 | \draw [style=light fill] (4.center) 60 | to [in=90, out=-90] (5.center) 61 | to (6.center) 62 | to (3.center) 63 | to cycle; 64 | \draw [style=red arrow] (13.center) to (14.center); 65 | \draw [style=red line] (16.center) 66 | to (17.center) 67 | to (18.center) 68 | to [in=180, out=0] (19.center); 69 | \draw [style=red fill] (24.center) 70 | to (26.center) 71 | to (27.center) 72 | to (25.center) 73 | to cycle; 74 | \draw [style=red arrow] (29.center) to (30.center); 75 | \draw [style=red fill] (31.center) 76 | to (33.center) 77 | to (34.center) 78 | to (32.center) 79 | to cycle; 80 | \draw [style=dashed, color={rgb,255: red,191; green,0; blue,64}, thick] (36.center) to (37.center); 81 | \draw [style=red fill] (38.center) 82 | to (40.center) 83 | to (41.center) 84 | to (39.center) 85 | to cycle; 86 | \draw [style=red arrow] (19.center) to (23.center); 87 | \draw [style=red line] (43.center) to (45.center); 88 | \draw [style=red line] (45.center) to (46.center); 89 | \draw [style=red line] (46.center) to (47.center); 90 | \draw [style=red arrow] (47.center) to (48.center); 91 | \draw [style=red fill] (49.center) 92 | to (50.center) 93 | to (51.center) 94 | to (52.center) 95 | to cycle; 96 | \end{pgfonlayer} 97 | \end{tikzpicture} 98 | -------------------------------------------------------------------------------- /Images/image-43.tikz: -------------------------------------------------------------------------------- 1 | \begin{tikzpicture} 2 | \begin{pgfonlayer}{nodelayer} 3 | \node [style=none] (0) at (0, 0) {}; 4 | \node [style=none] (1) at (2, 0) {}; 5 | \node [style=none] (2) at (2, -2) {}; 6 | \node [style=none] (3) at (0, -2) {}; 7 | \node [style=none] (4) at (1, -1) {\texttt{P}}; 8 | \node [style=none] (25) at (4.5, -7) {}; 9 | \node [style=none] (26) at (6.5, -7) {}; 10 | \node [style=none] (27) at (6.5, -9) {}; 11 | \node [style=none] (28) at (4.5, -9) {}; 12 | \node [style=none] (29) at (5.5, -8) {\texttt{M}}; 13 | \node [style=none] (46) at (0, -4) {}; 14 | \node [style=none] (47) at (11, -4) {}; 15 | \node [style=none] (48) at (11, -5) {}; 16 | \node [style=none] (49) at (0, -5) {}; 17 | \node [style=none] (50) at (5.5, -4.5) {\texttt{BUS}}; 18 | \node [style=none] (53) at (3, 0) {}; 19 | \node [style=none] (54) at (5, 0) {}; 20 | \node [style=none] (55) at (5, -2) {}; 21 | \node [style=none] (56) at (3, -2) {}; 22 | \node [style=none] (57) at (4, -1) {\texttt{P}}; 23 | \node [style=none] (58) at (6, 0) {}; 24 | \node [style=none] (59) at (8, 0) {}; 25 | \node [style=none] (60) at (8, -2) {}; 26 | \node [style=none] (61) at (6, -2) {}; 27 | \node [style=none] (62) at (7, -1) {\texttt{P}}; 28 | \node [style=none] (63) at (9, 0) {}; 29 | \node [style=none] (64) at (11, 0) {}; 30 | \node [style=none] (65) at (11, -2) {}; 31 | \node [style=none] (66) at (9, -2) {}; 32 | \node [style=none] (67) at (10, -1) {\texttt{P}}; 33 | \node [style=none] (70) at (1, -2.25) {}; 34 | \node [style=none] (71) at (1, -3.75) {}; 35 | \node [style=none] (72) at (4, -2.25) {}; 36 | \node [style=none] (73) at (4, -3.75) {}; 37 | \node [style=none] (74) at (7, -2.25) {}; 38 | \node [style=none] (75) at (7, -3.75) {}; 39 | \node [style=none] (76) at (10, -2.25) {}; 40 | \node [style=none] (77) at (10, -3.75) {}; 41 | \node [style=none] (78) at (5.5, -5.25) {}; 42 | \node [style=none] (79) at (5.5, -6.75) {}; 43 | \end{pgfonlayer} 44 | \begin{pgfonlayer}{edgelayer} 45 | \draw [style=light fill] (2.center) 46 | to (3.center) 47 | to (0.center) 48 | to (1.center) 49 | to cycle; 50 | \draw [style=light fill] (27.center) 51 | to (28.center) 52 | to (25.center) 53 | to (26.center) 54 | to cycle; 55 | \draw [style=light fill] (47.center) 56 | to (46.center) 57 | to (49.center) 58 | to (48.center) 59 | to cycle; 60 | \draw [style=light fill] (55.center) 61 | to (56.center) 62 | to (53.center) 63 | to (54.center) 64 | to cycle; 65 | \draw [style=light fill] (60.center) 66 | to (61.center) 67 | to (58.center) 68 | to (59.center) 69 | to cycle; 70 | \draw [style=light fill] (65.center) 71 | to (66.center) 72 | to (63.center) 73 | to (64.center) 74 | to cycle; 75 | \draw [style=double arrow] (70.center) to (71.center); 76 | \draw [style=double arrow] (72.center) to (73.center); 77 | \draw [style=double arrow] (74.center) to (75.center); 78 | \draw [style=double arrow] (76.center) to (77.center); 79 | \draw [style=double arrow] (78.center) to (79.center); 80 | \end{pgfonlayer} 81 | \end{tikzpicture} 82 | -------------------------------------------------------------------------------- /Images/image-45.tikz: -------------------------------------------------------------------------------- 1 | \begin{tikzpicture} 2 | \begin{pgfonlayer}{nodelayer} 3 | \node [style=none] (0) at (0, 0) {}; 4 | \node [style=none] (1) at (0, -4) {}; 5 | \node [style=none] (2) at (2, -4) {}; 6 | \node [style=none] (3) at (2, 0) {}; 7 | \node [style=none, rotate=90] (4) at (1, -2) {\texttt{HOST}}; 8 | \node [style=none] (5) at (3, 0) {}; 9 | \node [style=none] (6) at (3, -4) {}; 10 | \node [style=none] (7) at (5, -4) {}; 11 | \node [style=none] (8) at (5, 0) {}; 12 | \node [style=none, rotate=90] (9) at (4, -2) {\texttt{HOST}}; 13 | \node [style=none] (10) at (6, 0) {}; 14 | \node [style=none] (11) at (6, -4) {}; 15 | \node [style=none] (12) at (8, -4) {}; 16 | \node [style=none] (13) at (8, 0) {}; 17 | \node [style=none, rotate=90] (14) at (7, -2) {\texttt{HOST}}; 18 | \node [style=none] (15) at (9, 0) {}; 19 | \node [style=none] (16) at (9, -4) {}; 20 | \node [style=none] (17) at (11, -4) {}; 21 | \node [style=none] (18) at (11, 0) {}; 22 | \node [style=none, rotate=90] (19) at (10, -2) {\texttt{HOST}}; 23 | \node [style=none] (20) at (-2, -6) {}; 24 | \node [style=none] (21) at (13, -6) {}; 25 | \node [style=none] (22) at (15, -6) {}; 26 | \node [style=none] (23) at (-4, -6) {}; 27 | \node [style=none] (24) at (-2, -6) {}; 28 | \node [style=none] (25) at (1, -4.25) {}; 29 | \node [style=none] (26) at (1, -5.75) {}; 30 | \node [style=none] (27) at (4, -4.25) {}; 31 | \node [style=none] (28) at (4, -5.75) {}; 32 | \node [style=none] (29) at (7, -4.25) {}; 33 | \node [style=none] (30) at (7, -5.75) {}; 34 | \node [style=none] (31) at (10, -4.25) {}; 35 | \node [style=none] (32) at (10, -5.75) {}; 36 | \end{pgfonlayer} 37 | \begin{pgfonlayer}{edgelayer} 38 | \draw [style=light fill] (0.center) 39 | to (1.center) 40 | to (2.center) 41 | to (3.center) 42 | to cycle; 43 | \draw [style=light fill] (5.center) 44 | to (6.center) 45 | to (7.center) 46 | to (8.center) 47 | to cycle; 48 | \draw [style=light fill] (10.center) 49 | to (11.center) 50 | to (12.center) 51 | to (13.center) 52 | to cycle; 53 | \draw [style=light fill] (15.center) 54 | to (16.center) 55 | to (17.center) 56 | to (18.center) 57 | to cycle; 58 | \draw [style=big] (20.center) to (21.center); 59 | \draw [style=big dashed] (21.center) to (22.center); 60 | \draw [style=big dashed] (24.center) to (23.center); 61 | \draw [style=double arrow] (25.center) to (26.center); 62 | \draw [style=double arrow] (27.center) to (28.center); 63 | \draw [style=double arrow] (29.center) to (30.center); 64 | \draw [style=double arrow] (31.center) to (32.center); 65 | \end{pgfonlayer} 66 | \end{tikzpicture} 67 | -------------------------------------------------------------------------------- /Images/image-46.tikz: -------------------------------------------------------------------------------- 1 | \begin{tikzpicture} 2 | \begin{pgfonlayer}{nodelayer} 3 | \node [style=none] (0) at (0, 0) {}; 4 | \node [style=none] (1) at (4, 0) {}; 5 | \node [style=none] (2) at (4, -2) {}; 6 | \node [style=none] (3) at (0, -2) {}; 7 | \node [style=none] (4) at (2, -1) {\texttt{M0}}; 8 | \node [style=none] (5) at (0, -2) {}; 9 | \node [style=none] (6) at (4, -2) {}; 10 | \node [style=none] (7) at (4, -4) {}; 11 | \node [style=none] (8) at (0, -4) {}; 12 | \node [style=none] (9) at (2, -3) {\texttt{M1}}; 13 | \node [style=none] (10) at (0, -4) {}; 14 | \node [style=none] (11) at (4, -4) {}; 15 | \node [style=none] (12) at (4, -6) {}; 16 | \node [style=none] (13) at (0, -6) {}; 17 | \node [style=none] (14) at (2, -5) {\texttt{M2}}; 18 | \node [style=none] (15) at (0, -6) {}; 19 | \node [style=none] (16) at (4, -6) {}; 20 | \node [style=none] (17) at (4, -8) {}; 21 | \node [style=none] (18) at (0, -8) {}; 22 | \node [style=none] (19) at (2, -7) {\texttt{M3}}; 23 | \node [style=none] (20) at (4.25, 0) {}; 24 | \node [style=none] (21) at (4.5, 0) {}; 25 | \node [style=none] (22) at (4.25, -8) {}; 26 | \node [style=none] (23) at (4.5, -8) {}; 27 | \node [style=none] (24) at (4.5, -4) {}; 28 | \node [style=left align] (25) at (6, -2.5) {\texttt{P0}}; 29 | \node [style=left align] (26) at (6, -3.5) {\texttt{P1}}; 30 | \node [style=left align] (27) at (6, -4.5) {\texttt{P2}}; 31 | \node [style=left align] (28) at (6, -5.5) {\texttt{P3}}; 32 | \node [style=none] (29) at (6.5, -2) {}; 33 | \node [style=none] (30) at (6, -2) {}; 34 | \node [style=none] (31) at (6, -6) {}; 35 | \node [style=none] (32) at (6.5, -6) {}; 36 | \node [style=none] (33) at (6, -4) {}; 37 | \end{pgfonlayer} 38 | \begin{pgfonlayer}{edgelayer} 39 | \draw [style=light fill] (1.center) 40 | to (0.center) 41 | to (3.center) 42 | to (2.center) 43 | to cycle; 44 | \draw [style=light fill] (6.center) 45 | to (5.center) 46 | to (8.center) 47 | to (7.center) 48 | to cycle; 49 | \draw [style=light fill] (11.center) 50 | to (10.center) 51 | to (13.center) 52 | to (12.center) 53 | to cycle; 54 | \draw [style=light fill] (16.center) 55 | to (15.center) 56 | to (18.center) 57 | to (17.center) 58 | to cycle; 59 | \draw [style=big] (23.center) to (22.center); 60 | \draw [style=big] (23.center) to (21.center); 61 | \draw [style=big] (21.center) to (20.center); 62 | \draw [style=big] (30.center) to (29.center); 63 | \draw [style=big] (30.center) to (31.center); 64 | \draw [style=big] (31.center) to (32.center); 65 | \draw [style=big] (24.center) to (33.center); 66 | \end{pgfonlayer} 67 | \end{tikzpicture} 68 | -------------------------------------------------------------------------------- /Images/image-47.tikz: -------------------------------------------------------------------------------- 1 | \begin{tikzpicture} 2 | \begin{pgfonlayer}{nodelayer} 3 | \node [style=none] (0) at (0, 0) {}; 4 | \node [style=none] (1) at (4, 0) {}; 5 | \node [style=none] (2) at (4, -2) {}; 6 | \node [style=none] (3) at (0, -2) {}; 7 | \node [style=none] (4) at (2, -1) {\texttt{M0}}; 8 | \node [style=none] (5) at (0, -2) {}; 9 | \node [style=none] (6) at (4, -2) {}; 10 | \node [style=none] (7) at (4, -4) {}; 11 | \node [style=none] (8) at (0, -4) {}; 12 | \node [style=none] (9) at (2, -3) {\texttt{M1}}; 13 | \node [style=none] (10) at (0, -4) {}; 14 | \node [style=none] (11) at (4, -4) {}; 15 | \node [style=none] (12) at (4, -6) {}; 16 | \node [style=none] (13) at (0, -6) {}; 17 | \node [style=none] (14) at (2, -5) {\texttt{M2}}; 18 | \node [style=none] (15) at (0, -6) {}; 19 | \node [style=none] (16) at (4, -6) {}; 20 | \node [style=none] (17) at (4, -8) {}; 21 | \node [style=none] (18) at (0, -8) {}; 22 | \node [style=none] (19) at (2, -7) {\texttt{M3}}; 23 | \node [style=none] (20) at (4.25, 0) {}; 24 | \node [style=none] (21) at (4.5, 0) {}; 25 | \node [style=none] (22) at (4.25, -2) {}; 26 | \node [style=none] (23) at (4.5, -2) {}; 27 | \node [style=none] (24) at (4.5, -1) {}; 28 | \node [style=left align] (25) at (6, -1) {\texttt{P0}}; 29 | \node [style=none] (28) at (4.25, -4) {}; 30 | \node [style=none] (29) at (4.5, -4) {}; 31 | \node [style=none] (32) at (4.25, -4) {}; 32 | \node [style=none] (33) at (4.5, -4) {}; 33 | \node [style=none] (34) at (4.25, -6) {}; 34 | \node [style=none] (35) at (4.5, -6) {}; 35 | \node [style=none] (36) at (4.5, -5) {}; 36 | \node [style=left align] (37) at (6, -5) {\texttt{P2}}; 37 | \node [style=none] (38) at (-0.25, -2) {}; 38 | \node [style=none] (39) at (-0.5, -2) {}; 39 | \node [style=none] (40) at (-0.25, -2) {}; 40 | \node [style=none] (41) at (-0.5, -2) {}; 41 | \node [style=none] (42) at (-0.25, -4) {}; 42 | \node [style=none] (43) at (-0.5, -4) {}; 43 | \node [style=none] (44) at (-0.5, -3) {}; 44 | \node [style=right align] (45) at (-2, -3) {\texttt{P1}}; 45 | \node [style=none] (46) at (-0.25, -6) {}; 46 | \node [style=none] (47) at (-0.5, -6) {}; 47 | \node [style=none] (48) at (-0.25, -6) {}; 48 | \node [style=none] (49) at (-0.5, -6) {}; 49 | \node [style=none] (50) at (-0.25, -8) {}; 50 | \node [style=none] (51) at (-0.5, -8) {}; 51 | \node [style=none] (52) at (-0.5, -7) {}; 52 | \node [style=right align] (53) at (-2, -7) {\texttt{P3}}; 53 | \end{pgfonlayer} 54 | \begin{pgfonlayer}{edgelayer} 55 | \draw [style=light fill] (1.center) 56 | to (0.center) 57 | to (3.center) 58 | to (2.center) 59 | to cycle; 60 | \draw [style=light fill] (6.center) 61 | to (5.center) 62 | to (8.center) 63 | to (7.center) 64 | to cycle; 65 | \draw [style=light fill] (11.center) 66 | to (10.center) 67 | to (13.center) 68 | to (12.center) 69 | to cycle; 70 | \draw [style=light fill] (16.center) 71 | to (15.center) 72 | to (18.center) 73 | to (17.center) 74 | to cycle; 75 | \draw [style=big] (23.center) to (22.center); 76 | \draw [style=big] (23.center) to (21.center); 77 | \draw [style=big] (21.center) to (20.center); 78 | \draw [style=big] (24.center) to (25); 79 | \draw [style=big] (29.center) to (28.center); 80 | \draw [style=big] (35.center) to (34.center); 81 | \draw [style=big] (35.center) to (33.center); 82 | \draw [style=big] (33.center) to (32.center); 83 | \draw [style=big] (36.center) to (37); 84 | \draw [style=big] (39.center) to (38.center); 85 | \draw [style=big] (43.center) to (42.center); 86 | \draw [style=big] (43.center) to (41.center); 87 | \draw [style=big] (41.center) to (40.center); 88 | \draw [style=big] (44.center) to (45); 89 | \draw [style=big] (47.center) to (46.center); 90 | \draw [style=big] (51.center) to (50.center); 91 | \draw [style=big] (51.center) to (49.center); 92 | \draw [style=big] (49.center) to (48.center); 93 | \draw [style=big] (52.center) to (53); 94 | \end{pgfonlayer} 95 | \end{tikzpicture} 96 | -------------------------------------------------------------------------------- /Images/image-48.tikz: -------------------------------------------------------------------------------- 1 | \begin{tikzpicture} 2 | \begin{pgfonlayer}{nodelayer} 3 | \node [style=none] (0) at (0, 0) {}; 4 | \node [style=none] (1) at (0, -6.5) {}; 5 | \node [style=none] (2) at (3, -6.5) {}; 6 | \node [style=none] (3) at (3, 0) {}; 7 | \node [style=none] (4) at (0.5, -6) {}; 8 | \node [style=none] (5) at (2.5, -6) {}; 9 | \node [style=none] (6) at (2.5, -4) {}; 10 | \node [style=none] (7) at (0.5, -4) {}; 11 | \node [style=none] (8) at (0.5, -2.5) {}; 12 | \node [style=none] (9) at (2.5, -2.5) {}; 13 | \node [style=none] (10) at (2.5, -0.5) {}; 14 | \node [style=none] (11) at (0.5, -0.5) {}; 15 | \node [style=top align] (12) at (1.5, 0) {\texttt{node}}; 16 | \node [style=none] (13) at (1.5, -1.5) { \texttt{P}}; 17 | \node [style=none] (14) at (1.5, -5) { \footnotesize\texttt{cache}}; 18 | \node [style=none] (15) at (1.5, -2.75) {}; 19 | \node [style=none] (16) at (1.5, -3.75) {}; 20 | \node [style=none] (34) at (9, -5) {}; 21 | \node [style=none] (35) at (11, -5) {}; 22 | \node [style=none] (53) at (0, -9) {}; 23 | \node [style=none] (54) at (0, -10) {}; 24 | \node [style=none] (55) at (15, -9) {}; 25 | \node [style=none] (56) at (15, -10) {}; 26 | \node [style=none] (57) at (7.5, -9.5) {\texttt{interconnection network}}; 27 | \node [style=none] (58) at (9, -2) {}; 28 | \node [style=none] (59) at (11, -2) {}; 29 | \node [style=none] (60) at (1.5, -6.75) {}; 30 | \node [style=none] (61) at (1.5, -8.75) {}; 31 | \node [style=none] (68) at (7.5, -11.75) {}; 32 | \node [style=none] (69) at (4.5, -12) {}; 33 | \node [style=none] (70) at (4.5, -14) {}; 34 | \node [style=none] (71) at (10.5, -14) {}; 35 | \node [style=none] (72) at (10.5, -12) {}; 36 | \node [style=none] (73) at (7.5, -13) {\texttt{main memory}}; 37 | \node [style=none] (74) at (7.5, -10.25) {}; 38 | \node [style=none] (75) at (5, 0) {}; 39 | \node [style=none] (76) at (5, -6.5) {}; 40 | \node [style=none] (77) at (8, -6.5) {}; 41 | \node [style=none] (78) at (8, 0) {}; 42 | \node [style=none] (79) at (5.5, -6) {}; 43 | \node [style=none] (80) at (7.5, -6) {}; 44 | \node [style=none] (81) at (7.5, -4) {}; 45 | \node [style=none] (82) at (5.5, -4) {}; 46 | \node [style=none] (83) at (5.5, -2.5) {}; 47 | \node [style=none] (84) at (7.5, -2.5) {}; 48 | \node [style=none] (85) at (7.5, -0.5) {}; 49 | \node [style=none] (86) at (5.5, -0.5) {}; 50 | \node [style=top align] (87) at (6.5, 0) {\texttt{node}}; 51 | \node [style=none] (88) at (6.5, -1.5) { \texttt{P}}; 52 | \node [style=none] (89) at (6.5, -5) { \footnotesize\texttt{cache}}; 53 | \node [style=none] (90) at (6.5, -2.75) {}; 54 | \node [style=none] (91) at (6.5, -3.75) {}; 55 | \node [style=none] (92) at (6.5, -6.75) {}; 56 | \node [style=none] (93) at (6.5, -8.75) {}; 57 | \node [style=none] (94) at (12, 0) {}; 58 | \node [style=none] (95) at (12, -6.5) {}; 59 | \node [style=none] (96) at (15, -6.5) {}; 60 | \node [style=none] (97) at (15, 0) {}; 61 | \node [style=none] (98) at (12.5, -6) {}; 62 | \node [style=none] (99) at (14.5, -6) {}; 63 | \node [style=none] (100) at (14.5, -4) {}; 64 | \node [style=none] (101) at (12.5, -4) {}; 65 | \node [style=none] (102) at (12.5, -2.5) {}; 66 | \node [style=none] (103) at (14.5, -2.5) {}; 67 | \node [style=none] (104) at (14.5, -0.5) {}; 68 | \node [style=none] (105) at (12.5, -0.5) {}; 69 | \node [style=top align] (106) at (13.5, 0) {\texttt{node}}; 70 | \node [style=none] (107) at (13.5, -1.5) { \texttt{P}}; 71 | \node [style=none] (108) at (13.5, -5) { \footnotesize\texttt{cache}}; 72 | \node [style=none] (109) at (13.5, -2.75) {}; 73 | \node [style=none] (110) at (13.5, -3.75) {}; 74 | \node [style=none] (111) at (13.5, -6.75) {}; 75 | \node [style=none] (112) at (13.5, -8.75) {}; 76 | \end{pgfonlayer} 77 | \begin{pgfonlayer}{edgelayer} 78 | \draw [style=big] (2.center) 79 | to (3.center) 80 | to [in=360, out=180] (0.center) 81 | to (1.center) 82 | to cycle; 83 | \draw [style=light fill] (7.center) 84 | to (4.center) 85 | to (5.center) 86 | to (6.center) 87 | to [in=360, out=180] cycle; 88 | \draw [style=light fill] (11.center) 89 | to (8.center) 90 | to (9.center) 91 | to (10.center) 92 | to cycle; 93 | \draw [style=double arrow] (15.center) to (16.center); 94 | \draw [style=dashed] (34.center) to (35.center); 95 | \draw [style=light fill] (54.center) 96 | to (53.center) 97 | to (55.center) 98 | to (56.center) 99 | to cycle; 100 | \draw [style=dashed] (58.center) to (59.center); 101 | \draw [style=double arrow] (60.center) to (61.center); 102 | \draw [style=light fill] (72.center) 103 | to (71.center) 104 | to (70.center) 105 | to (69.center) 106 | to cycle; 107 | \draw [style=double arrow] (74.center) to (68.center); 108 | \draw [style=big] (77.center) 109 | to (78.center) 110 | to [in=360, out=180] (75.center) 111 | to (76.center) 112 | to cycle; 113 | \draw [style=light fill] (82.center) 114 | to (79.center) 115 | to (80.center) 116 | to (81.center) 117 | to [in=360, out=180] cycle; 118 | \draw [style=light fill] (86.center) 119 | to (83.center) 120 | to (84.center) 121 | to (85.center) 122 | to cycle; 123 | \draw [style=double arrow] (90.center) to (91.center); 124 | \draw [style=double arrow] (92.center) to (93.center); 125 | \draw [style=big] (96.center) 126 | to (97.center) 127 | to [in=360, out=180] (94.center) 128 | to (95.center) 129 | to cycle; 130 | \draw [style=light fill] (101.center) 131 | to (98.center) 132 | to (99.center) 133 | to (100.center) 134 | to cycle; 135 | \draw [style=light fill] (105.center) 136 | to (102.center) 137 | to (103.center) 138 | to (104.center) 139 | to cycle; 140 | \draw [style=double arrow] (109.center) to (110.center); 141 | \draw [style=double arrow] (111.center) to (112.center); 142 | \end{pgfonlayer} 143 | \end{tikzpicture} 144 | -------------------------------------------------------------------------------- /Images/image-49.tikz: -------------------------------------------------------------------------------- 1 | \begin{tikzpicture} 2 | \begin{pgfonlayer}{nodelayer} 3 | \node [style=none] (0) at (0, 0) {}; 4 | \node [style=none] (1) at (0, -10) {}; 5 | \node [style=none] (2) at (3, -10) {}; 6 | \node [style=none] (3) at (3, 0) {}; 7 | \node [style=none] (4) at (0.5, -6) {}; 8 | \node [style=none] (5) at (2.5, -6) {}; 9 | \node [style=none] (6) at (2.5, -4) {}; 10 | \node [style=none] (7) at (0.5, -4) {}; 11 | \node [style=none] (8) at (0.5, -2.5) {}; 12 | \node [style=none] (9) at (2.5, -2.5) {}; 13 | \node [style=none] (10) at (2.5, -0.5) {}; 14 | \node [style=none] (11) at (0.5, -0.5) {}; 15 | \node [style=top align] (12) at (1.5, 0) {\texttt{node}}; 16 | \node [style=none] (13) at (1.5, -1.5) { \texttt{P}}; 17 | \node [style=none] (14) at (1.5, -5) { \scriptsize\texttt{cache}}; 18 | \node [style=none] (15) at (1.5, -2.75) {}; 19 | \node [style=none] (16) at (1.5, -3.75) {}; 20 | \node [style=none] (34) at (9, -5) {}; 21 | \node [style=none] (35) at (11, -5) {}; 22 | \node [style=none] (58) at (9, -2) {}; 23 | \node [style=none] (59) at (11, -2) {}; 24 | \node [style=none] (111) at (0.5, -9.5) {}; 25 | \node [style=none] (112) at (2.5, -9.5) {}; 26 | \node [style=none] (113) at (2.5, -7.5) {}; 27 | \node [style=none] (114) at (0.5, -7.5) {}; 28 | \node [style=none] (115) at (1.5, -6.25) {}; 29 | \node [style=none] (116) at (1.5, -7.25) {}; 30 | \node [style=none] (118) at (1.5, -8.5) {\scriptsize\texttt{memory}}; 31 | \node [style=none] (119) at (5, 0) {}; 32 | \node [style=none] (120) at (5, -10) {}; 33 | \node [style=none] (121) at (8, -10) {}; 34 | \node [style=none] (122) at (8, 0) {}; 35 | \node [style=none] (123) at (5.5, -6) {}; 36 | \node [style=none] (124) at (7.5, -6) {}; 37 | \node [style=none] (125) at (7.5, -4) {}; 38 | \node [style=none] (126) at (5.5, -4) {}; 39 | \node [style=none] (127) at (5.5, -2.5) {}; 40 | \node [style=none] (128) at (7.5, -2.5) {}; 41 | \node [style=none] (129) at (7.5, -0.5) {}; 42 | \node [style=none] (130) at (5.5, -0.5) {}; 43 | \node [style=top align] (131) at (6.5, 0) {\texttt{node}}; 44 | \node [style=none] (132) at (6.5, -1.5) { \texttt{P}}; 45 | \node [style=none] (133) at (6.5, -5) { \scriptsize\texttt{cache}}; 46 | \node [style=none] (134) at (6.5, -2.75) {}; 47 | \node [style=none] (135) at (6.5, -3.75) {}; 48 | \node [style=none] (136) at (5.5, -9.5) {}; 49 | \node [style=none] (137) at (7.5, -9.5) {}; 50 | \node [style=none] (138) at (7.5, -7.5) {}; 51 | \node [style=none] (139) at (5.5, -7.5) {}; 52 | \node [style=none] (140) at (6.5, -6.25) {}; 53 | \node [style=none] (141) at (6.5, -7.25) {}; 54 | \node [style=none] (143) at (6.5, -8.5) {\scriptsize\texttt{memory}}; 55 | \node [style=none] (144) at (12, 0) {}; 56 | \node [style=none] (145) at (12, -10) {}; 57 | \node [style=none] (146) at (15, -10) {}; 58 | \node [style=none] (147) at (15, 0) {}; 59 | \node [style=none] (148) at (12.5, -6) {}; 60 | \node [style=none] (149) at (14.5, -6) {}; 61 | \node [style=none] (150) at (14.5, -4) {}; 62 | \node [style=none] (151) at (12.5, -4) {}; 63 | \node [style=none] (152) at (12.5, -2.5) {}; 64 | \node [style=none] (153) at (14.5, -2.5) {}; 65 | \node [style=none] (154) at (14.5, -0.5) {}; 66 | \node [style=none] (155) at (12.5, -0.5) {}; 67 | \node [style=top align] (156) at (13.5, 0) {\texttt{node}}; 68 | \node [style=none] (157) at (13.5, -1.5) { \texttt{P}}; 69 | \node [style=none] (158) at (13.5, -5) { \scriptsize\texttt{cache}}; 70 | \node [style=none] (159) at (13.5, -2.75) {}; 71 | \node [style=none] (160) at (13.5, -3.75) {}; 72 | \node [style=none] (161) at (12.5, -9.5) {}; 73 | \node [style=none] (162) at (14.5, -9.5) {}; 74 | \node [style=none] (163) at (14.5, -7.5) {}; 75 | \node [style=none] (164) at (12.5, -7.5) {}; 76 | \node [style=none] (165) at (13.5, -6.25) {}; 77 | \node [style=none] (166) at (13.5, -7.25) {}; 78 | \node [style=none] (168) at (13.5, -8.5) {\scriptsize\texttt{memory}}; 79 | \node [style=none] (169) at (0, -12) {}; 80 | \node [style=none] (170) at (0, -13) {}; 81 | \node [style=none] (171) at (15, -12) {}; 82 | \node [style=none] (172) at (15, -13) {}; 83 | \node [style=none] (173) at (7.5, -12.5) {\texttt{interconnection network}}; 84 | \node [style=none] (174) at (1.5, -10.25) {}; 85 | \node [style=none] (175) at (1.5, -11.75) {}; 86 | \node [style=none] (176) at (6.5, -10.25) {}; 87 | \node [style=none] (177) at (6.5, -11.75) {}; 88 | \node [style=none] (178) at (13.5, -10.25) {}; 89 | \node [style=none] (179) at (13.5, -11.75) {}; 90 | \end{pgfonlayer} 91 | \begin{pgfonlayer}{edgelayer} 92 | \draw [style=big] (2.center) 93 | to (3.center) 94 | to [in=360, out=180] (0.center) 95 | to (1.center) 96 | to cycle; 97 | \draw [style=light fill] (7.center) 98 | to (4.center) 99 | to (5.center) 100 | to (6.center) 101 | to [in=360, out=180] cycle; 102 | \draw [style=light fill] (11.center) 103 | to (8.center) 104 | to (9.center) 105 | to (10.center) 106 | to cycle; 107 | \draw [style=double arrow] (15.center) to (16.center); 108 | \draw [style=dashed] (34.center) to (35.center); 109 | \draw [style=dashed] (58.center) to (59.center); 110 | \draw [style=light fill] (114.center) 111 | to (111.center) 112 | to (112.center) 113 | to (113.center) 114 | to [in=360, out=180] cycle; 115 | \draw [style=double arrow] (115.center) to (116.center); 116 | \draw [style=big] (121.center) 117 | to (122.center) 118 | to [in=360, out=180] (119.center) 119 | to (120.center) 120 | to cycle; 121 | \draw [style=light fill] (126.center) 122 | to (123.center) 123 | to (124.center) 124 | to (125.center) 125 | to [in=360, out=180] cycle; 126 | \draw [style=light fill] (130.center) 127 | to (127.center) 128 | to (128.center) 129 | to (129.center) 130 | to cycle; 131 | \draw [style=double arrow] (134.center) to (135.center); 132 | \draw [style=light fill] (137.center) 133 | to (138.center) 134 | to [in=360, out=180] (139.center) 135 | to (136.center) 136 | to cycle; 137 | \draw [style=double arrow] (140.center) to (141.center); 138 | \draw [style=big] (146.center) 139 | to (147.center) 140 | to [in=360, out=180] (144.center) 141 | to (145.center) 142 | to cycle; 143 | \draw [style=light fill] (151.center) 144 | to (148.center) 145 | to (149.center) 146 | to (150.center) 147 | to [in=360, out=180] cycle; 148 | \draw [style=light fill] (155.center) 149 | to (152.center) 150 | to (153.center) 151 | to (154.center) 152 | to cycle; 153 | \draw [style=double arrow] (159.center) to (160.center); 154 | \draw [style=light fill] (164.center) 155 | to (161.center) 156 | to (162.center) 157 | to (163.center) 158 | to [in=360, out=180] cycle; 159 | \draw [style=double arrow] (165.center) to (166.center); 160 | \draw [style=light fill] (172.center) 161 | to (171.center) 162 | to (169.center) 163 | to (170.center) 164 | to cycle; 165 | \draw [style=double arrow] (175.center) to (174.center); 166 | \draw [style=double arrow] (177.center) to (176.center); 167 | \draw [style=double arrow] (179.center) to (178.center); 168 | \end{pgfonlayer} 169 | \end{tikzpicture} 170 | -------------------------------------------------------------------------------- /Images/image-50.tikz: -------------------------------------------------------------------------------- 1 | \begin{tikzpicture} 2 | \begin{pgfonlayer}{nodelayer} 3 | \node [style=none] (0) at (0, 1) {}; 4 | \node [style=none] (1) at (2, -6) {}; 5 | \node [style=none] (2) at (0, -6) {}; 6 | \node [style=none] (3) at (2, 1) {}; 7 | \node [style=none] (4) at (0, 1) {}; 8 | \node [style=none, rotate=-90] (5) at (1, -2.5) {\texttt{processor}}; 9 | \node [style=none] (6) at (6, 0) {}; 10 | \node [style=none] (7) at (6, -2) {}; 11 | \node [style=none] (8) at (8, -2) {}; 12 | \node [style=none] (9) at (8, 0) {}; 13 | \node [style=none] (10) at (7, -0.75) {\texttt{tags}}; 14 | \node [style=none] (11) at (7, -1.25) {\texttt{state}}; 15 | \node [style=none] (12) at (6, -3) {}; 16 | \node [style=none] (13) at (8, -3) {}; 17 | \node [style=none] (14) at (6, -5) {}; 18 | \node [style=none] (15) at (8, -5) {}; 19 | \node [style=none] (16) at (7, -4) {\texttt{data}}; 20 | \node [style=none] (17) at (5, 1) {}; 21 | \node [style=none] (18) at (5, -6) {}; 22 | \node [style=none] (19) at (9, -6) {}; 23 | \node [style=none] (20) at (9, 1) {}; 24 | \node [style=top align] (21) at (7, 1) {\texttt{cache}}; 25 | \node [style=none] (22) at (2, -0.5) {}; 26 | \node [style=none] (23) at (5.75, -0.5) {}; 27 | \node [style=none] (24) at (2, -1.5) {}; 28 | \node [style=none] (25) at (5.75, -1.5) {}; 29 | \node [style=none] (26) at (3.75, -0.5) {}; 30 | \node [style=none] (27) at (4.5, -1.5) {}; 31 | \node [style=none] (28) at (3.75, 4) {}; 32 | \node [style=none] (29) at (12, 4) {}; 33 | \node [style=none] (30) at (12, 3) {}; 34 | \node [style=none] (31) at (4.5, 3) {}; 35 | \node [style=none] (32) at (2.25, -4) {}; 36 | \node [style=none] (33) at (5.75, -4) {}; 37 | \node [style=bottom align, rotate=90] (34) at (12, 3.5) {\texttt{BUS} drive}; 38 | \node [style=none] (35) at (8.25, -0.5) {}; 39 | \node [style=none] (36) at (8.25, -1.5) {}; 40 | \node [style=top align] (37) at (3, -0.5) {\texttt{A}}; 41 | \node [style=bottom align] (38) at (3, -1.5) {\texttt{R/W}}; 42 | \node [style=bottom align] (39) at (3.75, -4) {\texttt{DATA}}; 43 | \node [style=none] (40) at (12, -0.5) {}; 44 | \node [style=none] (41) at (12, -1.5) {}; 45 | \node [style=top align] (42) at (10.5, -0.5) {\texttt{A}}; 46 | \node [style=bottom align] (43) at (10.5, -1.5) {\texttt{R/W}}; 47 | \node [style=bottom align, rotate=90] (44) at (12, -1) {snoop port}; 48 | \end{pgfonlayer} 49 | \begin{pgfonlayer}{edgelayer} 50 | \draw [style=light fill] (4.center) 51 | to (2.center) 52 | to (1.center) 53 | to (3.center) 54 | to (0.center); 55 | \draw [style=light fill] (6.center) 56 | to (7.center) 57 | to (8.center) 58 | to (9.center) 59 | to cycle; 60 | \draw [style=light fill] (13.center) 61 | to (12.center) 62 | to (14.center) 63 | to (15.center) 64 | to cycle; 65 | \draw [style=big] (19.center) 66 | to (20.center) 67 | to (17.center) 68 | to (18.center) 69 | to cycle; 70 | \draw [style=big arrow] (22.center) to (23.center); 71 | \draw [style=big arrow] (24.center) to (25.center); 72 | \draw [style=big arrow] (28.center) to (29.center); 73 | \draw [style=big arrow] (31.center) to (30.center); 74 | \draw [style=big] (26.center) to (28.center); 75 | \draw [style=big] (27.center) to (31.center); 76 | \draw [style=double arrow] (32.center) to (33.center); 77 | \draw [style=big arrow] (40.center) to (35.center); 78 | \draw [style=big arrow] (41.center) to (36.center); 79 | \end{pgfonlayer} 80 | \end{tikzpicture} 81 | -------------------------------------------------------------------------------- /Images/image-51.tikz: -------------------------------------------------------------------------------- 1 | \begin{tikzpicture} 2 | \begin{pgfonlayer}{nodelayer} 3 | \node [style=none] (0) at (0, 0) {}; 4 | \node [style=none] (1) at (0, -1) {}; 5 | \node [style=none] (2) at (1, 0) {}; 6 | \node [style=none] (3) at (1, -1) {}; 7 | \node [style=none] (4) at (0.5, -0.5) {\texttt{M}}; 8 | \node [style=none] (5) at (1.5, -0.5) {\texttt{S}}; 9 | \node [style=none] (6) at (2.5, -0.5) {\texttt{I}}; 10 | \node [style=none] (7) at (2, 0) {}; 11 | \node [style=none] (8) at (2, -1) {}; 12 | \node [style=none] (9) at (3, 0) {}; 13 | \node [style=none] (10) at (3, -1) {}; 14 | \node [style=none] (11) at (6.5, -0.5) {\texttt{ADDRESS TAG}}; 15 | \node [style=none] (12) at (10, -1) {}; 16 | \node [style=none] (13) at (10, 0) {}; 17 | \end{pgfonlayer} 18 | \begin{pgfonlayer}{edgelayer} 19 | \draw [style=light fill] (12.center) 20 | to (13.center) 21 | to (0.center) 22 | to (1.center) 23 | to cycle; 24 | \draw [style=light fill] (3.center) to (2.center); 25 | \draw [style=light fill] (8.center) to (7.center); 26 | \draw [style=light fill] (9.center) to (10.center); 27 | \end{pgfonlayer} 28 | \end{tikzpicture} 29 | -------------------------------------------------------------------------------- /Images/image-52.tikz: -------------------------------------------------------------------------------- 1 | \begin{tikzpicture} 2 | \begin{pgfonlayer}{nodelayer} 3 | \node [style=none] (0) at (0, 0) {}; 4 | \node [style=none] (1) at (2, 0) {}; 5 | \node [style=none] (2) at (2, -2) {}; 6 | \node [style=none] (3) at (0, -2) {}; 7 | \node [style=none] (4) at (1, -1) {\texttt{P}}; 8 | \node [style=none] (25) at (4.25, -6) {}; 9 | \node [style=none] (26) at (6.25, -6) {}; 10 | \node [style=none] (27) at (6.25, -8) {}; 11 | \node [style=none] (28) at (4.25, -8) {}; 12 | \node [style=none] (29) at (5.25, -7) {\texttt{M}}; 13 | \node [style=none] (53) at (3, 0) {}; 14 | \node [style=none] (54) at (5, 0) {}; 15 | \node [style=none] (55) at (5, -2) {}; 16 | \node [style=none] (56) at (3, -2) {}; 17 | \node [style=none] (57) at (4, -1) {\texttt{P}}; 18 | \node [style=none] (58) at (6, 0) {}; 19 | \node [style=none] (59) at (8, 0) {}; 20 | \node [style=none] (60) at (8, -2) {}; 21 | \node [style=none] (61) at (6, -2) {}; 22 | \node [style=none] (62) at (7, -1) {\texttt{P}}; 23 | \node [style=none] (63) at (9, 0) {}; 24 | \node [style=none] (64) at (11, 0) {}; 25 | \node [style=none] (65) at (11, -2) {}; 26 | \node [style=none] (66) at (9, -2) {}; 27 | \node [style=none] (67) at (10, -1) {\texttt{P}}; 28 | \node [style=none] (70) at (1, -2.25) {}; 29 | \node [style=none] (71) at (1, -4) {}; 30 | \node [style=none] (72) at (4, -2.25) {}; 31 | \node [style=none] (73) at (4, -4) {}; 32 | \node [style=none] (74) at (7, -2.25) {}; 33 | \node [style=none] (75) at (7, -4) {}; 34 | \node [style=none] (76) at (10, -2.25) {}; 35 | \node [style=none] (77) at (10, -4) {}; 36 | \node [style=none] (78) at (5.25, -4) {}; 37 | \node [style=none] (79) at (5.25, -5.75) {}; 38 | \node [style=none] (80) at (0.5, -4.5) {}; 39 | \node [style=none] (84) at (0.5, -2.25) {}; 40 | \node [style=none] (85) at (3.5, -4.5) {}; 41 | \node [style=none] (86) at (3.5, -2.25) {}; 42 | \node [style=none] (87) at (6.5, -4.5) {}; 43 | \node [style=none] (88) at (6.5, -2.25) {}; 44 | \node [style=none] (89) at (9.5, -4.5) {}; 45 | \node [style=none] (90) at (9.5, -2.25) {}; 46 | \node [style=bottom align, text={rgb,255: red,191; green,0; blue,64}] (91) at (8.5, -4.5) {\texttt{BusRd}}; 47 | \end{pgfonlayer} 48 | \begin{pgfonlayer}{edgelayer} 49 | \draw [style=light fill] (2.center) 50 | to (3.center) 51 | to (0.center) 52 | to (1.center) 53 | to cycle; 54 | \draw [style=light fill] (27.center) 55 | to (28.center) 56 | to (25.center) 57 | to (26.center) 58 | to cycle; 59 | \draw [style=light fill] (55.center) 60 | to (56.center) 61 | to (53.center) 62 | to (54.center) 63 | to cycle; 64 | \draw [style=light fill] (60.center) 65 | to (61.center) 66 | to (58.center) 67 | to (59.center) 68 | to cycle; 69 | \draw [style=light fill] (65.center) 70 | to (66.center) 71 | to (63.center) 72 | to (64.center) 73 | to cycle; 74 | \draw [style=big arrow] (71.center) to (70.center); 75 | \draw [style=big arrow] (73.center) to (72.center); 76 | \draw [style=big arrow] (75.center) to (74.center); 77 | \draw [style=big arrow] (77.center) to (76.center); 78 | \draw [style=big arrow] (78.center) to (79.center); 79 | \draw [style=big] (71.center) to (77.center); 80 | \draw [style=red arrow] (80.center) to (84.center); 81 | \draw [style=red arrow] (85.center) to (86.center); 82 | \draw [style=red arrow] (87.center) to (88.center); 83 | \draw [style=red arrow] (89.center) to (90.center); 84 | \draw [style=red line] (80.center) to (89.center); 85 | \end{pgfonlayer} 86 | \end{tikzpicture} 87 | -------------------------------------------------------------------------------- /Images/image-53.tikz: -------------------------------------------------------------------------------- 1 | \begin{tikzpicture} 2 | \begin{pgfonlayer}{nodelayer} 3 | \node [style=none] (0) at (0, 0) {}; 4 | \node [style=none] (1) at (0, -1) {}; 5 | \node [style=none] (2) at (1, 0) {}; 6 | \node [style=none] (3) at (1, -1) {}; 7 | \node [style=none] (4) at (0.5, -0.5) {\texttt{M}}; 8 | \node [style=none] (5) at (2.5, -0.5) {\texttt{S}}; 9 | \node [style=none] (6) at (3.5, -0.5) {\texttt{I}}; 10 | \node [style=none] (7) at (2, 0) {}; 11 | \node [style=none] (8) at (2, -1) {}; 12 | \node [style=none] (9) at (3, 0) {}; 13 | \node [style=none] (10) at (3, -1) {}; 14 | \node [style=none] (11) at (7.5, -0.5) {\texttt{ADDRESS TAG}}; 15 | \node [style=none] (12) at (11, -1) {}; 16 | \node [style=none] (13) at (11, 0) {}; 17 | \node [style=none] (14) at (4, -1) {}; 18 | \node [style=none] (15) at (4, 0) {}; 19 | \node [style=none] (16) at (1.5, -0.5) {\texttt{E}}; 20 | \end{pgfonlayer} 21 | \begin{pgfonlayer}{edgelayer} 22 | \draw [style=light fill] (12.center) 23 | to (13.center) 24 | to (0.center) 25 | to (1.center) 26 | to cycle; 27 | \draw [style=light fill] (3.center) to (2.center); 28 | \draw [style=light fill] (8.center) to (7.center); 29 | \draw [style=light fill] (9.center) to (10.center); 30 | \draw [style=light fill] (14.center) to (15.center); 31 | \end{pgfonlayer} 32 | \end{tikzpicture} 33 | -------------------------------------------------------------------------------- /Images/image-55.tikz: -------------------------------------------------------------------------------- 1 | \begin{tikzpicture} 2 | \begin{pgfonlayer}{nodelayer} 3 | \node [style=none] (0) at (0, 0) {}; 4 | \node [style=none] (1) at (0, -1) {}; 5 | \node [style=none] (2) at (1, -1) {}; 6 | \node [style=none] (3) at (1, 0) {}; 7 | \node [style=none] (4) at (2, 0) {}; 8 | \node [style=none] (5) at (2, -1) {}; 9 | \node [style=none] (6) at (3, -1) {}; 10 | \node [style=none] (7) at (3, 0) {}; 11 | \node [style=none] (8) at (4, -1) {}; 12 | \node [style=none] (9) at (4, 0) {}; 13 | \node [style=none] (10) at (0.5, -0.5) {\texttt{M}}; 14 | \node [style=none] (11) at (1.5, -0.5) {\texttt{E}}; 15 | \node [style=none] (12) at (2.5, -0.5) {\texttt{S}}; 16 | \node [style=none] (13) at (3.5, -0.5) {\texttt{I}}; 17 | \node [style=none] (14) at (6.5, -0.5) {\texttt{line address}}; 18 | \node [style=none] (15) at (20, -1) {}; 19 | \node [style=none] (16) at (20, 0) {}; 20 | \node [style=none] (17) at (4, -1) {}; 21 | \node [style=none] (18) at (9, 0) {}; 22 | \node [style=none] (19) at (9, -1) {}; 23 | \node [style=none] (20) at (10.5, -0.5) {\(\texttt{word}_i\)}; 24 | \node [style=none] (21) at (12, -1) {}; 25 | \node [style=none] (22) at (12, 0) {}; 26 | \node [style=none] (23) at (13.5, -0.5) {\(\texttt{word}_{i+1}\)}; 27 | \node [style=none] (24) at (15, 0) {}; 28 | \node [style=none] (25) at (15, -1) {}; 29 | \node [style=none] (26) at (16, -0.5) {\(\cdots\)}; 30 | \node [style=none] (27) at (17, 0) {}; 31 | \node [style=none] (28) at (17, -1) {}; 32 | \node [style=none] (29) at (18.5, -0.5) {\(\texttt{word}_n\)}; 33 | \end{pgfonlayer} 34 | \begin{pgfonlayer}{edgelayer} 35 | \draw [style=light fill] (15.center) 36 | to (16.center) 37 | to (0.center) 38 | to (1.center) 39 | to cycle; 40 | \draw [style=light fill] (2.center) to (3.center); 41 | \draw [style=light fill] (5.center) to (4.center); 42 | \draw [style=light fill] (6.center) to (7.center); 43 | \draw [style=light fill] (9.center) to (17.center); 44 | \draw [style=light fill] (19.center) to (18.center); 45 | \draw [style=light fill] (22.center) to (21.center); 46 | \draw [style=light fill] (24.center) to (25.center); 47 | \draw [style=light fill] (28.center) to (27.center); 48 | \end{pgfonlayer} 49 | \end{tikzpicture} 50 | -------------------------------------------------------------------------------- /Images/image-56.tikz: -------------------------------------------------------------------------------- 1 | \begin{tikzpicture} 2 | \begin{pgfonlayer}{nodelayer} 3 | \node [style=none] (0) at (0, 0) {}; 4 | \node [style=none] (1) at (0, -1) {}; 5 | \node [style=none] (2) at (4, -1) {}; 6 | \node [style=none] (3) at (4, 0) {}; 7 | \node [style=none] (4) at (0, -3) {}; 8 | \node [style=none] (5) at (4, -3) {}; 9 | \node [style=none] (6) at (0, -4) {}; 10 | \node [style=none] (7) at (4, -4) {}; 11 | \node [style=none] (8) at (0, -7) {}; 12 | \node [style=none] (9) at (4, -7) {}; 13 | \node [style=none] (10) at (2, -0.5) {\texttt{acquire}}; 14 | \node [style=none] (11) at (2, -2) {\texttt{critical}}; 15 | \node [style=none] (12) at (2, -3.5) {\texttt{release}}; 16 | \node [style=none] (13) at (2, -5.5) {\texttt{code}}; 17 | \node [style=top align] (14) at (2, 0) {\(\texttt{P}_1\)}; 18 | \node [style=none] (15) at (8, 0) {}; 19 | \node [style=none] (16) at (8, -4) {}; 20 | \node [style=none] (17) at (12, -4) {}; 21 | \node [style=none] (18) at (12, 0) {}; 22 | \node [style=none] (19) at (8, -6) {}; 23 | \node [style=none] (20) at (12, -6) {}; 24 | \node [style=none] (21) at (8, -3) {}; 25 | \node [style=none] (22) at (12, -3) {}; 26 | \node [style=none] (23) at (8, -7) {}; 27 | \node [style=none] (24) at (12, -7) {}; 28 | \node [style=none] (25) at (10, -3.5) {\texttt{acquire}}; 29 | \node [style=none] (26) at (10, -5) {\texttt{critical}}; 30 | \node [style=none] (27) at (10, -6.5) {\texttt{release}}; 31 | \node [style=none] (28) at (10, -1.5) {\texttt{code}}; 32 | \node [style=top align] (29) at (10, 0) {\(\texttt{P}_2\)}; 33 | \node [style=none] (30) at (0, -2) {}; 34 | \node [style=none] (31) at (-1.5, -2) {}; 35 | \node [style=none] (32) at (-1.5, -3.5) {}; 36 | \node [style=none] (33) at (-0.25, -3.5) {}; 37 | \node [style=none] (34) at (4.25, -3.5) {}; 38 | \node [style=none] (35) at (7.75, -3.5) {}; 39 | \node [style=none] (38) at (12, -3.5) {}; 40 | \node [style=none] (39) at (13.5, -3.5) {}; 41 | \node [style=none] (40) at (13.5, -5) {}; 42 | \node [style=none] (41) at (12.25, -5) {}; 43 | \node [style=right align, text={rgb,255: red,191; green,0; blue,64}] (42) at (-1.5, -2.75) {\texttt{CRITICAL}}; 44 | \node [style=left align, text={rgb,255: red,191; green,0; blue,64}] (43) at (13.5, -4.25) {\texttt{CRITICAL}}; 45 | \end{pgfonlayer} 46 | \begin{pgfonlayer}{edgelayer} 47 | \draw [style=light fill] (3.center) 48 | to (0.center) 49 | to (8.center) 50 | to (9.center) 51 | to cycle; 52 | \draw [style=light fill] (1.center) to (2.center); 53 | \draw [style=light fill] (4.center) to (5.center); 54 | \draw [style=light fill] (6.center) to (7.center); 55 | \draw [style=light fill] (18.center) 56 | to (15.center) 57 | to (23.center) 58 | to (24.center) 59 | to cycle; 60 | \draw [style=light fill] (16.center) to (17.center); 61 | \draw [style=light fill] (19.center) to (20.center); 62 | \draw [style=light fill] (21.center) to (22.center); 63 | \draw [style=red line] (30.center) to (31.center); 64 | \draw [style=red line] (31.center) to (32.center); 65 | \draw [style=red arrow] (32.center) to (33.center); 66 | \draw [style=red arrow] (34.center) to (35.center); 67 | \draw [style=red line] (38.center) to (39.center); 68 | \draw [style=red line] (39.center) to (40.center); 69 | \draw [style=red arrow] (40.center) to (41.center); 70 | \end{pgfonlayer} 71 | \end{tikzpicture} 72 | -------------------------------------------------------------------------------- /Images/image-58.tikz: -------------------------------------------------------------------------------- 1 | \begin{tikzpicture} 2 | \begin{pgfonlayer}{nodelayer} 3 | \node [style=none] (0) at (0, 0) {}; 4 | \node [style=none] (1) at (2, 0) {}; 5 | \node [style=none] (2) at (0, -2) {}; 6 | \node [style=none] (3) at (2, -2) {}; 7 | \node [style=none] (4) at (4, 0) {}; 8 | \node [style=none] (5) at (6, 0) {}; 9 | \node [style=none] (6) at (4, -2) {}; 10 | \node [style=none] (7) at (6, -2) {}; 11 | \node [style=none] (8) at (1, -2) {}; 12 | \node [style=none] (9) at (5, -2) {}; 13 | \node [style=none] (18) at (4, -8) {}; 14 | \node [style=none] (19) at (2, -10) {}; 15 | \node [style=none] (21) at (3, -7.75) {}; 16 | \node [style=none] (44) at (2, -8) {}; 17 | \node [style=none] (45) at (4, -10) {}; 18 | \node [style=none] (83) at (1, -1) {\texttt{r1}}; 19 | \node [style=none] (84) at (5, -1) {\texttt{r2}}; 20 | \node [style=none] (85) at (3, -9) {\texttt{r3}}; 21 | \node [style=none] (119) at (3, -11.25) {\texttt{add r3, r1, r2}}; 22 | \node [style=white, minimum size=20pt, fill={rgb,255: red,240; green,240; blue,240}] (120) at (3, -4.5) {\(+\)}; 23 | \end{pgfonlayer} 24 | \begin{pgfonlayer}{edgelayer} 25 | \draw [style=light fill] (2.center) 26 | to (3.center) 27 | to (1.center) 28 | to (0.center) 29 | to cycle; 30 | \draw [style=light fill] (6.center) 31 | to (7.center) 32 | to (5.center) 33 | to (4.center) 34 | to cycle; 35 | \draw [style=light fill] (18.center) 36 | to (44.center) 37 | to (19.center) 38 | to (45.center) 39 | to cycle; 40 | \draw [style=big arrow] (9.center) to (120); 41 | \draw [style=big arrow] (8.center) to (120); 42 | \draw [style=big arrow] (120) to (21.center); 43 | \end{pgfonlayer} 44 | \end{tikzpicture} 45 | -------------------------------------------------------------------------------- /Images/image-59.tikz: -------------------------------------------------------------------------------- 1 | \begin{tikzpicture} 2 | \begin{pgfonlayer}{nodelayer} 3 | \node [style=white, minimum size=20pt, fill={rgb,255: red,240; green,240; blue,240}] (37) at (2.5, -5.5) {\(+\)}; 4 | \node [style=none] (38) at (2, -8.5) {}; 5 | \node [style=none] (39) at (4, -8.5) {}; 6 | \node [style=none] (40) at (2, -10.5) {}; 7 | \node [style=none] (41) at (4, -10.5) {}; 8 | \node [style=none] (46) at (0, 0) {}; 9 | \node [style=none] (47) at (2, 0) {}; 10 | \node [style=none] (48) at (0, -2) {}; 11 | \node [style=none] (49) at (2, -2) {}; 12 | \node [style=none] (50) at (-0.25, -0.25) {}; 13 | \node [style=none] (51) at (1.75, -0.25) {}; 14 | \node [style=none] (52) at (-0.25, -2.25) {}; 15 | \node [style=none] (53) at (1.75, -2.25) {}; 16 | \node [style=none] (54) at (-0.5, -0.5) {}; 17 | \node [style=none] (55) at (1.5, -0.5) {}; 18 | \node [style=none] (56) at (-0.5, -2.5) {}; 19 | \node [style=none] (57) at (1.5, -2.5) {}; 20 | \node [style=none] (58) at (0, -3) {}; 21 | \node [style=none] (59) at (5, 0) {}; 22 | \node [style=none] (60) at (7, 0) {}; 23 | \node [style=none] (61) at (5, -2) {}; 24 | \node [style=none] (62) at (7, -2) {}; 25 | \node [style=none] (63) at (4.75, -0.25) {}; 26 | \node [style=none] (64) at (6.75, -0.25) {}; 27 | \node [style=none] (65) at (4.75, -2.25) {}; 28 | \node [style=none] (66) at (6.75, -2.25) {}; 29 | \node [style=none] (67) at (4.5, -0.5) {}; 30 | \node [style=none] (68) at (6.5, -0.5) {}; 31 | \node [style=none] (69) at (4.5, -2.5) {}; 32 | \node [style=none] (70) at (6.5, -2.5) {}; 33 | \node [style=none] (71) at (5, -3) {}; 34 | \node [style=none] (72) at (1.75, -8.75) {}; 35 | \node [style=none] (73) at (3.75, -8.75) {}; 36 | \node [style=none] (74) at (1.75, -10.75) {}; 37 | \node [style=none] (75) at (3.75, -10.75) {}; 38 | \node [style=none] (76) at (1.5, -9) {}; 39 | \node [style=none] (77) at (3.5, -9) {}; 40 | \node [style=none] (78) at (1.5, -11) {}; 41 | \node [style=none] (79) at (3.5, -11) {}; 42 | \node [style=none] (80) at (2.5, -8.25) {}; 43 | \node [style=none] (86) at (-0.75, -0.75) {}; 44 | \node [style=none] (87) at (1.25, -0.75) {}; 45 | \node [style=none] (88) at (-0.75, -2.75) {}; 46 | \node [style=none] (89) at (1.25, -2.75) {}; 47 | \node [style=none] (90) at (-1, -1) {}; 48 | \node [style=none] (91) at (1, -1) {}; 49 | \node [style=none] (92) at (-1, -3) {}; 50 | \node [style=none] (93) at (1, -3) {}; 51 | \node [style=none] (94) at (4.25, -0.75) {}; 52 | \node [style=none] (95) at (6.25, -0.75) {}; 53 | \node [style=none] (96) at (4.25, -2.75) {}; 54 | \node [style=none] (97) at (6.25, -2.75) {}; 55 | \node [style=none] (98) at (4, -1) {}; 56 | \node [style=none] (99) at (6, -1) {}; 57 | \node [style=none] (100) at (4, -3) {}; 58 | \node [style=none] (101) at (6, -3) {}; 59 | \node [style=none] (102) at (1.25, -9.25) {}; 60 | \node [style=none] (103) at (3.25, -9.25) {}; 61 | \node [style=none] (104) at (1.25, -11.25) {}; 62 | \node [style=none] (105) at (3.25, -11.25) {}; 63 | \node [style=none] (106) at (1, -9.5) {}; 64 | \node [style=none] (107) at (3, -9.5) {}; 65 | \node [style=none] (108) at (1, -11.5) {}; 66 | \node [style=none] (109) at (3, -11.5) {}; 67 | \node [style=none] (110) at (0, -2) {\texttt{v1}}; 68 | \node [style=none] (111) at (5, -2) {\texttt{v2}}; 69 | \node [style=none] (112) at (2, -10.5) {\texttt{v3}}; 70 | \node [style=none] (113) at (4.25, -11.5) {}; 71 | \node [style=none] (117) at (5.25, -10.5) {}; 72 | \node [style=left align] (118) at (5, -11.25) {\footnotesize vector length}; 73 | \node [style=none] (120) at (3.25, -12.5) {\texttt{add.vv v3, v1, v2}}; 74 | \end{pgfonlayer} 75 | \begin{pgfonlayer}{edgelayer} 76 | \draw [style=light fill] (38.center) 77 | to (40.center) 78 | to (41.center) 79 | to (39.center) 80 | to cycle; 81 | \draw [style=light fill] (48.center) 82 | to (49.center) 83 | to (47.center) 84 | to (46.center) 85 | to cycle; 86 | \draw [style=light fill] (52.center) 87 | to (53.center) 88 | to (51.center) 89 | to (50.center) 90 | to cycle; 91 | \draw [style=light fill] (56.center) 92 | to (57.center) 93 | to (55.center) 94 | to (54.center) 95 | to cycle; 96 | \draw [style=light fill] (59.center) 97 | to (61.center) 98 | to (62.center) 99 | to (60.center) 100 | to cycle; 101 | \draw [style=light fill] (66.center) 102 | to (64.center) 103 | to (63.center) 104 | to (65.center) 105 | to cycle; 106 | \draw [style=light fill] (67.center) 107 | to (69.center) 108 | to (70.center) 109 | to (68.center) 110 | to cycle; 111 | \draw [style=light fill] (72.center) 112 | to (74.center) 113 | to (75.center) 114 | to (73.center) 115 | to cycle; 116 | \draw [style=light fill] (76.center) 117 | to (78.center) 118 | to (79.center) 119 | to (77.center) 120 | to cycle; 121 | \draw [style=light fill] (88.center) 122 | to (89.center) 123 | to (87.center) 124 | to (86.center) 125 | to cycle; 126 | \draw [style=light fill] (92.center) 127 | to (93.center) 128 | to (91.center) 129 | to (90.center) 130 | to cycle; 131 | \draw [style=light fill] (96.center) 132 | to (97.center) 133 | to (95.center) 134 | to (94.center) 135 | to cycle; 136 | \draw [style=light fill] (100.center) 137 | to (101.center) 138 | to (99.center) 139 | to (98.center) 140 | to cycle; 141 | \draw [style=light fill] (104.center) 142 | to (105.center) 143 | to (103.center) 144 | to (102.center) 145 | to cycle; 146 | \draw [style=light fill] (108.center) 147 | to (109.center) 148 | to (107.center) 149 | to (106.center) 150 | to cycle; 151 | \draw [style=double arrow] (117.center) to (113.center); 152 | \draw [style=big arrow] (58.center) to (37); 153 | \draw [style=big arrow] (71.center) to (37); 154 | \draw [style=big arrow] (37) to (80.center); 155 | \end{pgfonlayer} 156 | \end{tikzpicture} 157 | -------------------------------------------------------------------------------- /Images/image-63.tikz: -------------------------------------------------------------------------------- 1 | \begin{tikzpicture} 2 | \begin{pgfonlayer}{nodelayer} 3 | \node [style=none] (1) at (0, -3) {}; 4 | \node [style=none] (2) at (1, -3) {}; 5 | \node [style=none] (4) at (0, -10) {}; 6 | \node [style=none] (5) at (1, -10) {}; 7 | \node [style=none] (6) at (0, -10) {}; 8 | \node [style=none] (7) at (1, -10) {}; 9 | \node [style=none] (8) at (0, -18) {}; 10 | \node [style=none] (9) at (1, -18) {}; 11 | \node [style=none] (10) at (0, 1) {}; 12 | \node [style=none] (11) at (1, 1) {}; 13 | \node [style=none] (12) at (0, -3) {}; 14 | \node [style=none] (13) at (1, -3) {}; 15 | \node [style=top align] (14) at (0.5, 1) {\texttt{A}}; 16 | \node [style=none] (15) at (2, -3) {}; 17 | \node [style=none] (16) at (3, -3) {}; 18 | \node [style=none] (17) at (2, -10) {}; 19 | \node [style=none] (18) at (3, -10) {}; 20 | \node [style=none] (19) at (2, -10) {}; 21 | \node [style=none] (20) at (3, -10) {}; 22 | \node [style=none] (21) at (2, -18) {}; 23 | \node [style=none] (22) at (3, -18) {}; 24 | \node [style=none] (23) at (2, 1) {}; 25 | \node [style=none] (24) at (3, 1) {}; 26 | \node [style=none] (25) at (2, -3) {}; 27 | \node [style=none] (26) at (3, -3) {}; 28 | \node [style=top align] (27) at (2.5, 1) {\texttt{B}}; 29 | \node [style=none] (28) at (1, 0) {}; 30 | \node [style=none] (29) at (3, -2) {}; 31 | \node [style=white] (30) at (5, -1) {\(+\)}; 32 | \node [style=white] (31) at (5, -6.5) {\(+\)}; 33 | \node [style=none] (32) at (1, -4) {}; 34 | \node [style=none] (33) at (3, -9) {}; 35 | \node [style=white] (34) at (5, -14) {\(+\)}; 36 | \node [style=none] (35) at (1, -11) {}; 37 | \node [style=none] (36) at (3, -17) {}; 38 | \node [style=none] (37) at (7, -3) {}; 39 | \node [style=none] (38) at (8, -3) {}; 40 | \node [style=none] (39) at (7, -10) {}; 41 | \node [style=none] (40) at (8, -10) {}; 42 | \node [style=none] (41) at (7, -10) {}; 43 | \node [style=none] (42) at (8, -10) {}; 44 | \node [style=none] (43) at (7, -18) {}; 45 | \node [style=none] (44) at (8, -18) {}; 46 | \node [style=none] (45) at (7, 1) {}; 47 | \node [style=none] (46) at (8, 1) {}; 48 | \node [style=none] (47) at (7, -3) {}; 49 | \node [style=none] (48) at (8, -3) {}; 50 | \node [style=top align] (49) at (7.5, 1) {\texttt{A}}; 51 | \node [style=none] (53) at (6.75, -14) {}; 52 | \node [style=none] (54) at (6.75, -6.5) {}; 53 | \node [style=none] (55) at (6.75, -1) {}; 54 | \node [style=none] (56) at (9, 0.75) {}; 55 | \node [style=none] (57) at (9, -2.75) {}; 56 | \node [style=none] (58) at (9, -3.25) {}; 57 | \node [style=none] (59) at (9, -9.75) {}; 58 | \node [style=none] (60) at (9, -10.25) {}; 59 | \node [style=none] (61) at (9, -17.75) {}; 60 | \node [style=none] (62) at (9, 1) {}; 61 | \node [style=none] (63) at (9, -3) {}; 62 | \node [style=none] (64) at (9, -10) {}; 63 | \node [style=none] (65) at (9, -18) {}; 64 | \node [style=top align, rotate=-90] (66) at (9, -1) {\footnotesize remainder}; 65 | \node [style=top align, rotate=-90] (67) at (9, -6.5) {\footnotesize \(64\) elements}; 66 | \node [style=top align, rotate=-90] (68) at (9, -14) {\footnotesize \(64\) elements}; 67 | \end{pgfonlayer} 68 | \begin{pgfonlayer}{edgelayer} 69 | \draw [style=light fill] (1.center) 70 | to (4.center) 71 | to (5.center) 72 | to (2.center) 73 | to cycle; 74 | \draw [style=light fill] (6.center) 75 | to (8.center) 76 | to (9.center) 77 | to (7.center) 78 | to cycle; 79 | \draw [style=light fill] (10.center) 80 | to (12.center) 81 | to (13.center) 82 | to (11.center) 83 | to cycle; 84 | \draw [style=light fill] (15.center) 85 | to (17.center) 86 | to (18.center) 87 | to (16.center) 88 | to cycle; 89 | \draw [style=light fill] (19.center) 90 | to (21.center) 91 | to (22.center) 92 | to (20.center) 93 | to cycle; 94 | \draw [style=light fill] (26.center) 95 | to (24.center) 96 | to (23.center) 97 | to [in=90, out=-90] (25.center) 98 | to cycle; 99 | \draw [style=big arrow] (29.center) to (30); 100 | \draw [style=big arrow] (28.center) to (30); 101 | \draw [style=big arrow] (33.center) to (31); 102 | \draw [style=big arrow] (32.center) to (31); 103 | \draw [style=big arrow] (36.center) to (34); 104 | \draw [style=big arrow] (35.center) to (34); 105 | \draw [style=light fill] (37.center) 106 | to (39.center) 107 | to (40.center) 108 | to (38.center) 109 | to cycle; 110 | \draw [style=light fill] (42.center) 111 | to (41.center) 112 | to (43.center) 113 | to (44.center) 114 | to cycle; 115 | \draw [style=light fill] (46.center) 116 | to (45.center) 117 | to (47.center) 118 | to (48.center) 119 | to cycle; 120 | \draw [style=big arrow] (34) to (53.center); 121 | \draw [style=big arrow] (31) to (54.center); 122 | \draw [style=big arrow] (30) to (55.center); 123 | \draw [style=double arrow] (61.center) to (60.center); 124 | \draw [style=double arrow] (58.center) to (59.center); 125 | \draw [style=double arrow] (56.center) to (57.center); 126 | \draw [style=dashed] (44.center) to (65.center); 127 | \draw [style=dashed] (42.center) to (64.center); 128 | \draw [style=dashed] (48.center) to (63.center); 129 | \draw [style=dashed] (46.center) to (62.center); 130 | \end{pgfonlayer} 131 | \end{tikzpicture} 132 | -------------------------------------------------------------------------------- /Images/image-64.tikz: -------------------------------------------------------------------------------- 1 | \begin{tikzpicture} 2 | \begin{pgfonlayer}{nodelayer} 3 | \node [style=none] (0) at (0, 0) {}; 4 | \node [style=none] (1) at (0, -1) {}; 5 | \node [style=none] (2) at (5, -1) {}; 6 | \node [style=none] (3) at (5, 0) {}; 7 | \node [style=none] (4) at (5, -1) {}; 8 | \node [style=none] (5) at (5, -2) {}; 9 | \node [style=none] (6) at (10, -2) {}; 10 | \node [style=none] (7) at (10, -1) {}; 11 | \node [style=none] (8) at (10, -2) {}; 12 | \node [style=none] (9) at (10, -3) {}; 13 | \node [style=none] (10) at (15, -3) {}; 14 | \node [style=none] (11) at (15, -2) {}; 15 | \node [style=none, text=white] (12) at (2.5, -0.5) {\texttt{LOAD}}; 16 | \node [style=none, text=white] (13) at (7.5, -1.5) {\texttt{MUL}}; 17 | \node [style=none, text=white] (14) at (12.5, -2.5) {\texttt{ADD}}; 18 | \node [style=none] (15) at (-1, -4) {}; 19 | \node [style=none] (16) at (16, -4) {}; 20 | \node [style=bottom align] (17) at (15, -4) {time}; 21 | \node [style=none] (18) at (10, -4) {}; 22 | \node [style=none] (19) at (5, -4) {}; 23 | \node [style=none] (20) at (0, -4) {}; 24 | \end{pgfonlayer} 25 | \begin{pgfonlayer}{edgelayer} 26 | \draw [style=red fill] (1.center) 27 | to (2.center) 28 | to (3.center) 29 | to (0.center) 30 | to cycle; 31 | \draw [style=purple fill] (5.center) 32 | to (6.center) 33 | to (7.center) 34 | to (4.center) 35 | to cycle; 36 | \draw [style=green fill] (9.center) 37 | to (10.center) 38 | to (11.center) 39 | to (8.center) 40 | to cycle; 41 | \draw [style=big arrow] (15.center) to (16.center); 42 | \draw [style=dashed] (1.center) to (20.center); 43 | \draw [style=dashed] (5.center) to (19.center); 44 | \draw [style=dashed] (9.center) to (18.center); 45 | \draw [style=dashed] (10.center) to (17); 46 | \end{pgfonlayer} 47 | \end{tikzpicture} 48 | -------------------------------------------------------------------------------- /Images/image-65.tikz: -------------------------------------------------------------------------------- 1 | \begin{tikzpicture} 2 | \begin{pgfonlayer}{nodelayer} 3 | \node [style=none] (0) at (0, 0) {}; 4 | \node [style=none] (1) at (0, -1) {}; 5 | \node [style=none] (2) at (5, -1) {}; 6 | \node [style=none] (3) at (5, 0) {}; 7 | \node [style=none] (4) at (1, -1) {}; 8 | \node [style=none] (5) at (1, -2) {}; 9 | \node [style=none] (6) at (6, -2) {}; 10 | \node [style=none] (7) at (6, -1) {}; 11 | \node [style=none] (8) at (2, -2) {}; 12 | \node [style=none] (9) at (2, -3) {}; 13 | \node [style=none] (10) at (7, -3) {}; 14 | \node [style=none] (11) at (7, -2) {}; 15 | \node [style=none, text=white] (12) at (2.5, -0.5) {\texttt{LOAD}}; 16 | \node [style=none, text=white] (13) at (3.5, -1.5) {\texttt{MUL}}; 17 | \node [style=none, text=white] (14) at (4.5, -2.5) {\texttt{ADD}}; 18 | \node [style=none] (15) at (-1, -4) {}; 19 | \node [style=none] (16) at (16, -4) {}; 20 | \node [style=bottom align] (17) at (15, -4) {time}; 21 | \node [style=none] (18) at (2, -4) {}; 22 | \node [style=none] (19) at (1, -4) {}; 23 | \node [style=none] (20) at (0, -4) {}; 24 | \node [style=none] (21) at (7, -4) {}; 25 | \end{pgfonlayer} 26 | \begin{pgfonlayer}{edgelayer} 27 | \draw [style=red fill] (1.center) 28 | to (2.center) 29 | to (3.center) 30 | to (0.center) 31 | to cycle; 32 | \draw [style=purple fill] (5.center) 33 | to (6.center) 34 | to (7.center) 35 | to (4.center) 36 | to cycle; 37 | \draw [style=green fill] (9.center) 38 | to (10.center) 39 | to (11.center) 40 | to (8.center) 41 | to cycle; 42 | \draw [style=big arrow] (15.center) to (16.center); 43 | \draw [style=dashed] (1.center) to (20.center); 44 | \draw [style=dashed] (5.center) to (19.center); 45 | \draw [style=dashed] (9.center) to (18.center); 46 | \draw [style=dashed] (21.center) to (10.center); 47 | \end{pgfonlayer} 48 | \end{tikzpicture} 49 | -------------------------------------------------------------------------------- /Images/image-66.tikz: -------------------------------------------------------------------------------- 1 | \begin{tikzpicture} 2 | \begin{pgfonlayer}{nodelayer} 3 | \node [style=right align] (0) at (-0.25, -0.5) {\texttt{A}}; 4 | \node [style=right align] (1) at (-0.5, -2.5) {\texttt{B}}; 5 | \node [style=none] (2) at (0, 0) {}; 6 | \node [style=none] (3) at (0, -1) {}; 7 | \node [style=none] (4) at (4, 0) {}; 8 | \node [style=none] (5) at (4, -1) {}; 9 | \node [style=none] (7) at (4, 0) {}; 10 | \node [style=none] (8) at (4, -1) {}; 11 | \node [style=none] (9) at (8, 0) {}; 12 | \node [style=none] (10) at (8, -1) {}; 13 | \node [style=none] (12) at (8, 0) {}; 14 | \node [style=none] (13) at (8, -1) {}; 15 | \node [style=none] (14) at (12, 0) {}; 16 | \node [style=none] (15) at (12, -1) {}; 17 | \node [style=none] (17) at (12, 0) {}; 18 | \node [style=none] (18) at (12, -1) {}; 19 | \node [style=none] (19) at (16, 0) {}; 20 | \node [style=none] (20) at (16, -1) {}; 21 | \node [style=none] (22) at (0, -2) {}; 22 | \node [style=none] (23) at (0, -3) {}; 23 | \node [style=none] (24) at (4, -2) {}; 24 | \node [style=none] (25) at (4, -3) {}; 25 | \node [style=none] (27) at (4, -2) {}; 26 | \node [style=none] (28) at (4, -3) {}; 27 | \node [style=none] (29) at (8, -2) {}; 28 | \node [style=none] (30) at (8, -3) {}; 29 | \node [style=none] (32) at (8, -2) {}; 30 | \node [style=none] (33) at (8, -3) {}; 31 | \node [style=none] (34) at (12, -2) {}; 32 | \node [style=none] (35) at (12, -3) {}; 33 | \node [style=none] (37) at (12, -2) {}; 34 | \node [style=none] (38) at (12, -3) {}; 35 | \node [style=none] (39) at (16, -2) {}; 36 | \node [style=none] (40) at (16, -3) {}; 37 | \node [style=none] (42) at (0.75, -1) {}; 38 | \node [style=none] (43) at (3.25, -3) {}; 39 | \node [style=white] (44) at (2, -5) {\(+\)}; 40 | \node [style=none] (45) at (4.75, -1) {}; 41 | \node [style=none] (46) at (7.25, -3) {}; 42 | \node [style=white] (47) at (6, -5) {\(+\)}; 43 | \node [style=none] (48) at (8.75, -1) {}; 44 | \node [style=none] (49) at (11.25, -3) {}; 45 | \node [style=white] (50) at (10, -5) {\(+\)}; 46 | \node [style=none] (51) at (12.75, -1) {}; 47 | \node [style=none] (52) at (15.25, -3) {}; 48 | \node [style=white] (53) at (14, -5) {\(+\)}; 49 | \node [style=none] (54) at (0, 1) {}; 50 | \node [style=none] (55) at (4, 1) {}; 51 | \node [style=none] (56) at (8, 1) {}; 52 | \node [style=none] (57) at (12, 1) {}; 53 | \node [style=none] (58) at (16, 1) {}; 54 | \node [style=none] (59) at (0.25, 1) {}; 55 | \node [style=none] (60) at (3.75, 1) {}; 56 | \node [style=none] (61) at (4.25, 1) {}; 57 | \node [style=none] (62) at (7.75, 1) {}; 58 | \node [style=none] (63) at (8.25, 1) {}; 59 | \node [style=none] (64) at (11.75, 1) {}; 60 | \node [style=none] (65) at (12.25, 1) {}; 61 | \node [style=none] (66) at (15.75, 1) {}; 62 | \node [style=top align] (67) at (2, 1) {\texttt{16 bits}}; 63 | \node [style=top align] (68) at (6, 1) {\texttt{16 bits}}; 64 | \node [style=top align] (69) at (10, 1) {\texttt{16 bits}}; 65 | \node [style=top align] (70) at (14, 1) {\texttt{16 bits}}; 66 | \node [style=right align] (71) at (-0.25, -7.5) {\texttt{B}}; 67 | \node [style=none] (72) at (0, -7) {}; 68 | \node [style=none] (73) at (0, -8) {}; 69 | \node [style=none] (74) at (4, -7) {}; 70 | \node [style=none] (75) at (4, -8) {}; 71 | \node [style=none] (76) at (4, -7) {}; 72 | \node [style=none] (77) at (4, -8) {}; 73 | \node [style=none] (78) at (8, -7) {}; 74 | \node [style=none] (79) at (8, -8) {}; 75 | \node [style=none] (80) at (8, -7) {}; 76 | \node [style=none] (81) at (8, -8) {}; 77 | \node [style=none] (82) at (12, -7) {}; 78 | \node [style=none] (83) at (12, -8) {}; 79 | \node [style=none] (84) at (12, -7) {}; 80 | \node [style=none] (85) at (12, -8) {}; 81 | \node [style=none] (86) at (16, -7) {}; 82 | \node [style=none] (87) at (16, -8) {}; 83 | \node [style=none] (88) at (14, -6.75) {}; 84 | \node [style=none] (89) at (10, -6.75) {}; 85 | \node [style=none] (90) at (6, -6.75) {}; 86 | \node [style=none] (91) at (2, -6.75) {}; 87 | \end{pgfonlayer} 88 | \begin{pgfonlayer}{edgelayer} 89 | \draw [style=dashed] (58.center) to (86.center); 90 | \draw [style=dashed] (57.center) to (84.center); 91 | \draw [style=dashed] (56.center) to (80.center); 92 | \draw [style=dashed] (55.center) to (76.center); 93 | \draw [style=dashed] (54.center) to (72.center); 94 | \draw [style=light fill] (3.center) 95 | to (5.center) 96 | to (4.center) 97 | to (2.center) 98 | to cycle; 99 | \draw [style=light fill] (8.center) 100 | to (10.center) 101 | to (9.center) 102 | to (7.center) 103 | to cycle; 104 | \draw [style=light fill] (13.center) 105 | to (15.center) 106 | to (14.center) 107 | to (12.center) 108 | to cycle; 109 | \draw [style=light fill] (18.center) 110 | to (20.center) 111 | to (19.center) 112 | to (17.center) 113 | to cycle; 114 | \draw [style=light fill] (23.center) 115 | to (25.center) 116 | to (24.center) 117 | to (22.center) 118 | to cycle; 119 | \draw [style=light fill] (28.center) 120 | to (30.center) 121 | to (29.center) 122 | to (27.center) 123 | to cycle; 124 | \draw [style=light fill] (33.center) 125 | to (35.center) 126 | to (34.center) 127 | to (32.center) 128 | to cycle; 129 | \draw [style=light fill] (38.center) 130 | to (40.center) 131 | to (39.center) 132 | to (37.center) 133 | to cycle; 134 | \draw [style=big arrow] (42.center) to (44); 135 | \draw [style=big arrow] (43.center) to (44); 136 | \draw [style=big arrow] (45.center) to (47); 137 | \draw [style=big arrow] (46.center) to (47); 138 | \draw [style=big arrow] (48.center) to (50); 139 | \draw [style=big arrow] (49.center) to (50); 140 | \draw [style=big arrow] (51.center) to (53); 141 | \draw [style=big arrow] (52.center) to (53); 142 | \draw [style=double arrow] (59.center) to (60.center); 143 | \draw [style=double arrow] (61.center) to (62.center); 144 | \draw [style=double arrow] (63.center) to (64.center); 145 | \draw [style=double arrow] (65.center) to (66.center); 146 | \draw [style=light fill] (73.center) 147 | to (75.center) 148 | to (74.center) 149 | to (72.center) 150 | to cycle; 151 | \draw [style=light fill] (78.center) 152 | to (76.center) 153 | to (77.center) 154 | to (79.center); 155 | \draw [style=light fill] (79.center) to (78.center); 156 | \draw [style=light fill] (82.center) 157 | to (80.center) 158 | to (81.center) 159 | to (83.center); 160 | \draw [style=light fill] (83.center) to (82.center); 161 | \draw [style=light fill] (87.center) 162 | to (86.center) 163 | to (84.center) 164 | to (85.center) 165 | to cycle; 166 | \draw [style=big arrow] (44) to (91.center); 167 | \draw [style=big arrow] (47) to (90.center); 168 | \draw [style=big arrow] (50) to (89.center); 169 | \draw [style=big arrow] (53) to (88.center); 170 | \end{pgfonlayer} 171 | \end{tikzpicture} 172 | -------------------------------------------------------------------------------- /Images/image-67.tikz: -------------------------------------------------------------------------------- 1 | \begin{tikzpicture} 2 | \begin{pgfonlayer}{nodelayer} 3 | \node [style=none] (82) at (5, -7) {}; 4 | \node [style=none] (83) at (5, 0) {}; 5 | \node [style=none] (84) at (22.5, 0) {}; 6 | \node [style=none] (85) at (22.5, -7) {}; 7 | \node [style=none] (67) at (18.5, -2.5) {}; 8 | \node [style=none] (68) at (18.5, -3.5) {}; 9 | \node [style=none] (69) at (21.5, -3.5) {}; 10 | \node [style=none] (70) at (21.5, -2.5) {}; 11 | \node [style=none] (0) at (0, 0) {}; 12 | \node [style=none] (1) at (0, -8) {}; 13 | \node [style=none] (2) at (2, -8) {}; 14 | \node [style=none] (3) at (2, 0) {}; 15 | \node [style=none, rotate=90] (4) at (1, -4) {\Large 16 | \texttt{CPU}}; 17 | \node [style=none] (9) at (1, -7.5) {\small \texttt{cache}}; 18 | \node [style=none] (12) at (5.5, -1) {}; 19 | \node [style=none] (13) at (5.5, -6.5) {}; 20 | \node [style=none] (18) at (7.5, -2) {\footnotesize\texttt{lane 0}}; 21 | \node [style=none] (23) at (7.5, -3) {\footnotesize\texttt{lane 1}}; 22 | \node [style=none] (30) at (7.5, -5) {\footnotesize\texttt{lane 15}}; 23 | \node [style=none, text=white] (31) at (7.5, -6) {\texttt{core 0}}; 24 | \node [style=none] (32) at (9.5, -6.5) {}; 25 | \node [style=none] (33) at (9.5, -1) {}; 26 | \node [style=none] (34) at (10.5, -1) {}; 27 | \node [style=none] (35) at (10.5, -6.5) {}; 28 | \node [style=none] (36) at (11, -1.5) {}; 29 | \node [style=none] (37) at (11, -2.5) {}; 30 | \node [style=none] (38) at (14, -2.5) {}; 31 | \node [style=none] (39) at (14, -1.5) {}; 32 | \node [style=none] (40) at (12.5, -2) {\footnotesize\texttt{lane 0}}; 33 | \node [style=none] (41) at (11, -2.5) {}; 34 | \node [style=none] (42) at (11, -3.5) {}; 35 | \node [style=none] (43) at (14, -3.5) {}; 36 | \node [style=none] (44) at (14, -2.5) {}; 37 | \node [style=none] (45) at (12.5, -3) {\footnotesize\texttt{lane 1}}; 38 | \node [style=none] (48) at (11, -4.5) {}; 39 | \node [style=none] (49) at (11, -5.5) {}; 40 | \node [style=none] (50) at (14, -5.5) {}; 41 | \node [style=none] (51) at (14, -4.5) {}; 42 | \node [style=none] (52) at (12.5, -5) {\footnotesize\texttt{lane 15}}; 43 | \node [style=none, text=white] (53) at (12.5, -6) {\texttt{core 1}}; 44 | \node [style=none] (54) at (14.5, -6.5) {}; 45 | \node [style=none] (55) at (14.5, -1) {}; 46 | \node [style=none] (56) at (15, -2.5) {}; 47 | \node [style=none] (57) at (17, -2.5) {}; 48 | \node [style=none] (58) at (15, -5) {}; 49 | \node [style=none] (59) at (17, -5) {}; 50 | \node [style=none] (60) at (18, -1) {}; 51 | \node [style=none] (61) at (18, -6.5) {}; 52 | \node [style=none] (62) at (18.5, -1.5) {}; 53 | \node [style=none] (63) at (18.5, -2.5) {}; 54 | \node [style=none] (64) at (21.5, -2.5) {}; 55 | \node [style=none] (65) at (21.5, -1.5) {}; 56 | \node [style=none] (66) at (20, -2) {\footnotesize\texttt{lane 0}}; 57 | \node [style=none] (71) at (20, -3) {\footnotesize\texttt{lane 1}}; 58 | \node [style=none] (78) at (20, -5) {\footnotesize\texttt{lane 15}}; 59 | \node [style=none, text=white] (79) at (20, -6) {\texttt{core 15}}; 60 | \node [style=none] (80) at (22, -6.5) {}; 61 | \node [style=none] (81) at (22, -1) {}; 62 | \node [style=none] (26) at (6, -4.5) {}; 63 | \node [style=none] (27) at (6, -5.5) {}; 64 | \node [style=none] (28) at (9, -5.5) {}; 65 | \node [style=none] (29) at (9, -4.5) {}; 66 | \node [style=none] (14) at (6, -1.5) {}; 67 | \node [style=none] (15) at (6, -2.5) {}; 68 | \node [style=none] (16) at (9, -2.5) {}; 69 | \node [style=none] (17) at (9, -1.5) {}; 70 | \node [style=none] (19) at (6, -2.5) {}; 71 | \node [style=none] (20) at (6, -3.5) {}; 72 | \node [style=none] (21) at (9, -3.5) {}; 73 | \node [style=none] (22) at (9, -2.5) {}; 74 | \node [style=none] (74) at (18.5, -4.5) {}; 75 | \node [style=none] (75) at (18.5, -5.5) {}; 76 | \node [style=none] (76) at (21.5, -5.5) {}; 77 | \node [style=none] (77) at (21.5, -4.5) {}; 78 | \node [style=none] (88) at (14, -0.5) {\texttt{GPU}}; 79 | \node [style=none] (89) at (2.25, -4) {}; 80 | \node [style=none] (90) at (4.75, -4) {}; 81 | \node [style=none] (92) at (5, -7) {}; 82 | \node [style=none] (93) at (22.5, -7) {}; 83 | \node [style=none] (94) at (22.5, -8) {}; 84 | \node [style=none] (95) at (5, -8) {}; 85 | \node [style=none] (96) at (14, -7.5) {\small\texttt{cache}}; 86 | \node [style=none] (99) at (0, -7) {}; 87 | \node [style=none] (100) at (2, -7) {}; 88 | \node [style=none] (101) at (7.5, -3.75) {}; 89 | \node [style=none] (102) at (7.5, -4.25) {}; 90 | \node [style=none] (103) at (12.5, -3.75) {}; 91 | \node [style=none] (104) at (12.5, -4.25) {}; 92 | \node [style=none] (105) at (20, -3.75) {}; 93 | \node [style=none] (106) at (20, -4.25) {}; 94 | \end{pgfonlayer} 95 | \begin{pgfonlayer}{edgelayer} 96 | \draw [style=light fill] (82.center) 97 | to (85.center) 98 | to (84.center) 99 | to (83.center) 100 | to [in=90, out=-90] cycle; 101 | \draw [style=red fill] (60.center) 102 | to (61.center) 103 | to (80.center) 104 | to (81.center) 105 | to cycle; 106 | \draw [style=red fill] (34.center) 107 | to (35.center) 108 | to [in=180, out=0] (54.center) 109 | to (55.center) 110 | to [in=360, out=180] cycle; 111 | \draw [style=light fill] (62.center) 112 | to [in=90, out=-90] (63.center) 113 | to (64.center) 114 | to (65.center) 115 | to cycle; 116 | \draw [style=light fill] (69.center) 117 | to (70.center) 118 | to (67.center) 119 | to (68.center) 120 | to [in=180, out=0] cycle; 121 | \draw [style=light fill] (3.center) 122 | to (0.center) 123 | to (1.center) 124 | to (2.center) 125 | to cycle; 126 | \draw [style=red fill] (32.center) 127 | to [in=270, out=90] (33.center) 128 | to (12.center) 129 | to (13.center) 130 | to cycle; 131 | \draw [style=light fill] (38.center) 132 | to (39.center) 133 | to (36.center) 134 | to (37.center) 135 | to cycle; 136 | \draw [style=light fill] (43.center) 137 | to (44.center) 138 | to (41.center) 139 | to (42.center) 140 | to [in=180, out=0] cycle; 141 | \draw [style=light fill] (50.center) 142 | to (51.center) 143 | to (48.center) 144 | to (49.center) 145 | to cycle; 146 | \draw [style=dashed] (59.center) to (58.center); 147 | \draw [style=dashed] (56.center) to (57.center); 148 | \draw [style=light fill] (28.center) 149 | to (29.center) 150 | to (26.center) 151 | to (27.center) 152 | to cycle; 153 | \draw [style=light fill] (16.center) 154 | to (17.center) 155 | to (14.center) 156 | to (15.center) 157 | to cycle; 158 | \draw [style=light fill] (21.center) 159 | to (22.center) 160 | to (19.center) 161 | to (20.center) 162 | to cycle; 163 | \draw [style=light fill] (76.center) 164 | to (77.center) 165 | to (74.center) 166 | to (75.center) 167 | to cycle; 168 | \draw [style=double arrow] (89.center) to (90.center); 169 | \draw [style=light fill] (95.center) 170 | to (92.center) 171 | to (93.center) 172 | to (94.center) 173 | to cycle; 174 | \draw [style=light fill] (100.center) to (99.center); 175 | \draw [style=dashed, draw=white] (101.center) to (102.center); 176 | \draw [style=dashed, draw=white] (103.center) to (104.center); 177 | \draw [style=dashed, draw=white] (105.center) to (106.center); 178 | \end{pgfonlayer} 179 | \end{tikzpicture} 180 | -------------------------------------------------------------------------------- /Images/image-68.tikz: -------------------------------------------------------------------------------- 1 | \begin{tikzpicture} 2 | \begin{pgfonlayer}{nodelayer} 3 | \node [style=none] (0) at (0, 0) {}; 4 | \node [style=none] (3) at (0, -1) {}; 5 | \node [style=none] (4) at (2, -0.5) {\texttt{TAG}}; 6 | \node [style=none] (5) at (4, 0) {}; 7 | \node [style=none] (8) at (4, -1) {}; 8 | \node [style=none] (9) at (7, -0.5) {\texttt{WORD 1}}; 9 | \node [style=none] (10) at (10, 0) {}; 10 | \node [style=none] (13) at (10, -1) {}; 11 | \node [style=none] (14) at (13, -0.5) {\texttt{WORD 2}}; 12 | \node [style=none] (15) at (16, 0) {}; 13 | \node [style=none] (18) at (16, -1) {}; 14 | \node [style=none] (19) at (19, -0.5) {\texttt{WORD 3}}; 15 | \node [style=none] (20) at (22, 0) {}; 16 | \node [style=none] (21) at (28, 0) {}; 17 | \node [style=none] (22) at (28, -1) {}; 18 | \node [style=none] (23) at (22, -1) {}; 19 | \node [style=none] (24) at (25, -0.5) {\texttt{WORD 4}}; 20 | \node [style=none] (25) at (0, -1.25) {}; 21 | \node [style=none] (26) at (4, -1.25) {}; 22 | \node [style=none] (27) at (0, -1.5) {}; 23 | \node [style=none] (28) at (4, -1.5) {}; 24 | \node [style=none] (29) at (2, -2) {\(b\) bits}; 25 | \node [style=none] (30) at (28, -1.5) {}; 26 | \node [style=none] (31) at (16, -2) {\(2^n - b\) bits}; 27 | \node [style=none] (32) at (28, -1.25) {}; 28 | \end{pgfonlayer} 29 | \begin{pgfonlayer}{edgelayer} 30 | \draw [style=light fill] (5.center) 31 | to (0.center) 32 | to (3.center) 33 | to (8.center) 34 | to cycle; 35 | \draw [style=light fill] (8.center) 36 | to (13.center) 37 | to (10.center) 38 | to (5.center) 39 | to cycle; 40 | \draw [style=light fill] (10.center) 41 | to (13.center) 42 | to (18.center) 43 | to (15.center) 44 | to cycle; 45 | \draw [style=light fill] (20.center) 46 | to (15.center) 47 | to (18.center) 48 | to (23.center) 49 | to cycle; 50 | \draw [style=light fill] (20.center) 51 | to (23.center) 52 | to (22.center) 53 | to (21.center) 54 | to cycle; 55 | \draw [style=big] (26.center) to (28.center); 56 | \draw [style=big] (28.center) to (27.center); 57 | \draw [style=big] (27.center) to (25.center); 58 | \draw [style=big] (30.center) to (28.center); 59 | \draw [style=big] (32.center) to (30.center); 60 | \end{pgfonlayer} 61 | \end{tikzpicture} 62 | -------------------------------------------------------------------------------- /Images/image-7.tikz: -------------------------------------------------------------------------------- 1 | \begin{tikzpicture} 2 | \begin{pgfonlayer}{nodelayer} 3 | \node [style=none] (0) at (0, 0) {}; 4 | \node [style=none] (1) at (0, -1) {}; 5 | \node [style=none] (2) at (2, -1) {}; 6 | \node [style=none] (3) at (2, 0) {}; 7 | \node [style=none] (4) at (4, 0) {}; 8 | \node [style=none] (5) at (4, -1) {}; 9 | \node [style=none] (6) at (6, -1) {}; 10 | \node [style=none] (7) at (6, 0) {}; 11 | \node [style=none] (8) at (8, 0) {}; 12 | \node [style=none] (9) at (8, -1) {}; 13 | \node [style=none] (10) at (10, -1) {}; 14 | \node [style=none] (11) at (10, 0) {}; 15 | \node [style=none] (12) at (2, -1) {}; 16 | \node [style=none] (13) at (4, -1) {}; 17 | \node [style=none] (14) at (6, -1) {}; 18 | \node [style=none] (15) at (8, -1) {}; 19 | \node [style=none] (16) at (10, -1) {}; 20 | \node [style=none] (17) at (1, -0.5) {\texttt{IF}}; 21 | \node [style=none] (18) at (3, -0.5) {\texttt{ID}}; 22 | \node [style=none] (19) at (5, -0.5) {\texttt{EX}}; 23 | \node [style=none] (20) at (7, -0.5) {\texttt{ME}}; 24 | \node [style=none] (21) at (9, -0.5) {\texttt{WB}}; 25 | \end{pgfonlayer} 26 | \begin{pgfonlayer}{edgelayer} 27 | \draw [style=light fill] (0.center) 28 | to (1.center) 29 | to (10.center) 30 | to (11.center) 31 | to cycle; 32 | \draw [style=solid] (3.center) to (2.center); 33 | \draw [style=solid] (4.center) to (5.center); 34 | \draw [style=solid] (7.center) to (6.center); 35 | \draw [style=solid] (8.center) to (9.center); 36 | \end{pgfonlayer} 37 | \end{tikzpicture} 38 | -------------------------------------------------------------------------------- /Images/image-8.tikz: -------------------------------------------------------------------------------- 1 | \begin{tikzpicture} 2 | \begin{pgfonlayer}{nodelayer} 3 | \node [style=none] (0) at (1, -3) {}; 4 | \node [style=none] (1) at (3, -5) {}; 5 | \node [style=none] (2) at (1, -5) {}; 6 | \node [style=none] (3) at (3, -3) {}; 7 | \node [style=none] (4) at (2, -4) {\texttt{IF}}; 8 | \node [style=none] (5) at (5, -3) {}; 9 | \node [style=none] (6) at (7, -5) {}; 10 | \node [style=none] (7) at (5, -5) {}; 11 | \node [style=none] (8) at (7, -3) {}; 12 | \node [style=none] (9) at (6, -4) {\texttt{ID}}; 13 | \node [style=none] (10) at (9, -3) {}; 14 | \node [style=none] (11) at (11, -5) {}; 15 | \node [style=none] (12) at (9, -5) {}; 16 | \node [style=none] (13) at (11, -3) {}; 17 | \node [style=none, text=white] (14) at (10, -4) {\small \texttt{issue}}; 18 | \node [style=none] (15) at (15, -1) {}; 19 | \node [style=none] (16) at (17, -3) {}; 20 | \node [style=none] (17) at (15, -3) {}; 21 | \node [style=none] (18) at (17, -1) {}; 22 | \node [style=none] (19) at (16, -2) {\texttt{ALU}}; 23 | \node [style=none] (20) at (19, -1) {}; 24 | \node [style=none] (21) at (21, -3) {}; 25 | \node [style=none] (22) at (19, -3) {}; 26 | \node [style=none] (23) at (21, -1) {}; 27 | \node [style=none] (24) at (20, -2) {\texttt{MEM}}; 28 | \node [style=none] (25) at (14.75, -2) {}; 29 | \node [style=none] (26) at (17, -2) {}; 30 | \node [style=none] (27) at (18.75, -2) {}; 31 | \node [style=none] (28) at (7, -4) {}; 32 | \node [style=none] (30) at (11, -4) {}; 33 | \node [style=none] (31) at (25, -3) {}; 34 | \node [style=none] (32) at (27, -5) {}; 35 | \node [style=none] (33) at (25, -5) {}; 36 | \node [style=none] (34) at (27, -3) {}; 37 | \node [style=none] (35) at (26, -4) {\texttt{WB}}; 38 | \node [style=none] (36) at (24.75, -4) {}; 39 | \node [style=none] (37) at (16, -5) {}; 40 | \node [style=none] (38) at (20, -7) {}; 41 | \node [style=none] (39) at (16, -7) {}; 42 | \node [style=none] (40) at (20, -5) {}; 43 | \node [style=none] (41) at (18, -6) {\texttt{FADD}}; 44 | \node [style=none] (42) at (15.75, -6) {}; 45 | \node [style=none] (43) at (20, -6) {}; 46 | \node [style=none] (44) at (16, -7.5) {}; 47 | \node [style=none] (45) at (20, -9.5) {}; 48 | \node [style=none] (46) at (16, -9.5) {}; 49 | \node [style=none] (47) at (20, -7.5) {}; 50 | \node [style=none] (48) at (18, -8.5) {\texttt{FMUL}}; 51 | \node [style=none] (49) at (15.75, -8.5) {}; 52 | \node [style=none] (50) at (20, -8.5) {}; 53 | \node [style=none] (51) at (18, -10) {}; 54 | \node [style=none] (52) at (18, -12) {}; 55 | \node [style=none] (53) at (16, -12.5) {}; 56 | \node [style=none] (54) at (20, -14.5) {}; 57 | \node [style=none] (55) at (16, -14.5) {}; 58 | \node [style=none] (56) at (20, -12.5) {}; 59 | \node [style=none] (57) at (18, -13.5) {\texttt{FDIV}}; 60 | \node [style=none] (58) at (15.75, -13.5) {}; 61 | \node [style=none] (59) at (20, -13.5) {}; 62 | \node [style=none] (62) at (8.75, -4) {}; 63 | \node [style=none] (63) at (3, -4) {}; 64 | \node [style=none] (64) at (4.75, -4) {}; 65 | \node [style=none] (65) at (18, -2) {}; 66 | \node [style=none] (66) at (21, -2) {}; 67 | \node [style=none] (67) at (18, -4) {}; 68 | \node [style=none] (68) at (23, -2) {}; 69 | \node [style=none] (69) at (23, -4) {}; 70 | \node [style=none] (70) at (13, -4) {}; 71 | \node [style=none] (71) at (13, -2) {}; 72 | \node [style=none] (72) at (13, -6) {}; 73 | \node [style=none] (73) at (13, -8.5) {}; 74 | \node [style=none] (74) at (13, -13.5) {}; 75 | \node [style=none] (75) at (13, -12.5) {}; 76 | \node [style=none] (76) at (13, -9.5) {}; 77 | \node [style=none] (77) at (13, -9.5) {}; 78 | \node [style=none] (78) at (13, -12.5) {}; 79 | \node [style=none] (79) at (23, -6) {}; 80 | \node [style=none] (80) at (23, -8.5) {}; 81 | \node [style=none] (81) at (23, -9.5) {}; 82 | \node [style=none] (82) at (23, -12.5) {}; 83 | \node [style=none] (83) at (23, -13.5) {}; 84 | \node [style=none] (84) at (29, -4) {}; 85 | \node [style=none] (85) at (29, 0) {}; 86 | \node [style=none] (86) at (27, -4) {}; 87 | \node [style=none] (87) at (0, -4) {}; 88 | \node [style=none] (88) at (0, 0) {}; 89 | \node [style=none] (89) at (0.75, -4) {}; 90 | \node [style=none, text=white] (90) at (10, -7.675) {\texttt{GPRs}}; 91 | \node [style=none, text=white] (91) at (10, -8.375) {\texttt{FPRs}}; 92 | \node [style=none] (92) at (8.5, -7) {}; 93 | \node [style=none] (93) at (8.5, -9) {}; 94 | \node [style=none] (94) at (11.5, -7) {}; 95 | \node [style=none] (95) at (11.5, -9) {}; 96 | \node [style=none] (96) at (10, -5.25) {}; 97 | \node [style=none] (97) at (10, -6.75) {}; 98 | \node [style=none] (98) at (10, -6) {}; 99 | \end{pgfonlayer} 100 | \begin{pgfonlayer}{edgelayer} 101 | \draw [style=light fill] (2.center) 102 | to (1.center) 103 | to (3.center) 104 | to (0.center) 105 | to cycle; 106 | \draw [style=light fill] (7.center) 107 | to (6.center) 108 | to (8.center) 109 | to (5.center) 110 | to cycle; 111 | \draw [style=red fill] (11.center) 112 | to (13.center) 113 | to (10.center) 114 | to (12.center) 115 | to cycle; 116 | \draw [style=light fill] (18.center) 117 | to (15.center) 118 | to (17.center) 119 | to (16.center) 120 | to cycle; 121 | \draw [style=light fill] (23.center) 122 | to (20.center) 123 | to (22.center) 124 | to (21.center) 125 | to cycle; 126 | \draw [style=light fill] (31.center) 127 | to (33.center) 128 | to (32.center) 129 | to (34.center) 130 | to cycle; 131 | \draw [style=light fill] (40.center) 132 | to (37.center) 133 | to (39.center) 134 | to (38.center) 135 | to cycle; 136 | \draw [style=light fill] (47.center) 137 | to (44.center) 138 | to (46.center) 139 | to (45.center) 140 | to cycle; 141 | \draw [style=big dashed] (51.center) to (52.center); 142 | \draw [style=light fill] (53.center) 143 | to (55.center) 144 | to (54.center) 145 | to (56.center) 146 | to cycle; 147 | \draw [style=big arrow] (28.center) to (62.center); 148 | \draw [style=big arrow] (63.center) to (64.center); 149 | \draw [style=big arrow] (26.center) to (27.center); 150 | \draw [style=big arrow] (67.center) to (36.center); 151 | \draw [style=big] (67.center) to (65.center); 152 | \draw [style=big] (66.center) to (68.center); 153 | \draw [style=big] (68.center) to (69.center); 154 | \draw [style=big] (30.center) to (70.center); 155 | \draw [style=big] (71.center) to (70.center); 156 | \draw [style=big arrow] (71.center) to (25.center); 157 | \draw [style=big dashed] (77.center) to (75.center); 158 | \draw [style=big] (78.center) to (74.center); 159 | \draw [style=big] (77.center) to (70.center); 160 | \draw [style=big arrow] (74.center) to (58.center); 161 | \draw [style=big arrow] (73.center) to (49.center); 162 | \draw [style=big arrow] (72.center) to (42.center); 163 | \draw [style=big] (83.center) to (59.center); 164 | \draw [style=big] (83.center) to (82.center); 165 | \draw [style=big] (81.center) to (69.center); 166 | \draw [style=big] (43.center) to (79.center); 167 | \draw [style=big] (50.center) to (80.center); 168 | \draw [style=big dashed] (82.center) to (81.center); 169 | \draw [style=big] (86.center) to (84.center); 170 | \draw [style=big] (84.center) to (85.center); 171 | \draw [style=big] (88.center) to (85.center); 172 | \draw [style=big] (88.center) to (87.center); 173 | \draw [style=big arrow] (87.center) to (89.center); 174 | \draw [style=red fill] (94.center) 175 | to (92.center) 176 | to (93.center) 177 | to (95.center) 178 | to cycle; 179 | \draw [style=red arrow] (98.center) to (97.center); 180 | \draw [style=red arrow] (98.center) to (96.center); 181 | \end{pgfonlayer} 182 | \end{tikzpicture} 183 | -------------------------------------------------------------------------------- /Images/image-9.tikz: -------------------------------------------------------------------------------- 1 | \begin{tikzpicture} 2 | \begin{pgfonlayer}{nodelayer} 3 | \node [style=none] (0) at (0, 0) {}; 4 | \node [style=none] (1) at (0, -1) {}; 5 | \node [style=none] (2) at (2, -1) {}; 6 | \node [style=none] (3) at (2, 0) {}; 7 | \node [style=none] (4) at (4, 0) {}; 8 | \node [style=none] (5) at (4, -1) {}; 9 | \node [style=none] (6) at (8, -1) {}; 10 | \node [style=none] (7) at (8, 0) {}; 11 | \node [style=none] (8) at (10, 0) {}; 12 | \node [style=none] (9) at (10, -1) {}; 13 | \node [style=none] (10) at (12, -1) {}; 14 | \node [style=none] (11) at (12, 0) {}; 15 | \node [style=none] (12) at (2, -1) {}; 16 | \node [style=none] (13) at (4, -1) {}; 17 | \node [style=none] (14) at (8, -1) {}; 18 | \node [style=none] (15) at (10, -1) {}; 19 | \node [style=none] (16) at (12, -1) {}; 20 | \node [style=none] (17) at (1, -0.5) {\texttt{IF}}; 21 | \node [style=none] (18) at (3, -0.5) {\texttt{ID}}; 22 | \node [style=none] (19) at (7, -0.5) {\texttt{EX}}; 23 | \node [style=none] (20) at (9, -0.5) {\texttt{ME}}; 24 | \node [style=none] (21) at (11, -0.5) {\texttt{WB}}; 25 | \node [style=none] (22) at (6, -1) {}; 26 | \node [style=none] (23) at (6, 0) {}; 27 | \node [style=none] (24) at (5, -0.5) {\texttt{IS}}; 28 | \end{pgfonlayer} 29 | \begin{pgfonlayer}{edgelayer} 30 | \draw [style=light fill] (0.center) 31 | to (1.center) 32 | to (10.center) 33 | to (11.center) 34 | to cycle; 35 | \draw [style=solid] (3.center) to (2.center); 36 | \draw [style=solid] (4.center) to (5.center); 37 | \draw [style=solid] (7.center) to (6.center); 38 | \draw [style=solid] (8.center) to (9.center); 39 | \draw [style=light fill] (22.center) to (23.center); 40 | \end{pgfonlayer} 41 | \end{tikzpicture} 42 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Advanced Computer Architectures notes 2 | 3 | This repository contains the notes for the Advanced Computer Architectures course, relative to the 2021/2022 class of Computer Science and Engineering held at Politecnico di Milano. 4 | 5 | Feel free to send a PR if you find any mistake that you are willing to fix! 6 | 7 | ## Latex compilation notes 8 | 9 | The compilation of this LaTeX document is slightly problematic due to the intensive use of the `tikz` library. 10 | 11 | If you are using VScode with the [LaTeX Workshop extension](https://marketplace.visualstudio.com/items?itemName=James-Yu.latex-workshop), and you have Python (3.6+) installed on your computer, you have nothing to worry about, as I have set up the environment to work regardless of the adversities. 12 | Just keep in mind that the first compilation might take a while _(up to a minute)_ due to the needed rendering of all the figures. 13 | 14 | Otherwise, keep reading. 15 | Due to its _awesomely user friendly features_, the user must: 16 | 17 | - Create an empty folder called `tikztemp` in the repository root to hold all the temporary files it generates (note that this folder is already in the repository) 18 | - Have a `.tikzstyles` file holding, well, all the styles used by `tikz` 19 | - Enable a special flag (`--shell-escape`) on the compiler 20 | - Compile using `latexpdf`, as I have not tried anything else 21 | 22 | Furthermore, _due to the cryptic and mysterious nature of the tikz figures format_, I have been using another program called [TikZiT](https://tikzit.github.io/) to help me draw figure without completely losing my mind. 23 | Sadly, this program introduced even more annoyances, like the increased incompatibility of the `tikzstyles` file it generates with the default, _vanilla_, `tikz` library. 24 | In order to to fix this, I have created a Python script `cleantikz.py` that will clean the aforementioned file to remove all the fields that `TikZit` adds. 25 | 26 | **Shall you ever edit the `tikzstyle.tikzsyles` file, remember to call the script, or the document won't compile!** 27 | 28 | Finally, remember that the first compilation, due to the externalization of the images, will take a while. 29 | Don't panic! 30 | 31 | ## Questions 32 | 33 | ### The notes are not consistent with the lectures. Why? 34 | 35 | I found the lectures quite messy, without a clear ordering or a well defined sequence of topics. 36 | This is why many chapters and sections in my notes are out of order with respect to the slides. 37 | 38 | ### The document does not compile. Can you help me? 39 | 40 | Have you checked the README? 41 | Go back to the [section above](#latex-compilation-notes) and read it again. 42 | 43 | If it still does not work, open an issue. 44 | 45 | ### You made a mistake! How can that be fixed? 46 | 47 | If you noticed and you feel kind enough to do the work for me, clone the repo and send me a pull request. 48 | 49 | If you aren't feeling it, send me a message via email or open a discussion on GitHub. 50 | 51 | ### The thing you wrote does not make any sense! Can you fix it? 52 | 53 | Sometimes I forget how to write as English is not my primary languages and the sentences lose all meaning. 54 | If you spot one, follow the same steps as [above](#you-made-a-mistake) 55 | 56 | ### Why are you doing this? 57 | 58 | I have always liked having clean notes on the courses I take and I do enjoy this process a lot. 59 | I figured out that if I was doing this for myself, I could as well share my work with everyone else. 60 | 61 | I just hope that these notes will help someone! 62 | 63 | ## Licensing 64 | 65 | These notes are distributed under Creative Commons 4.0 license. 66 | -------------------------------------------------------------------------------- /advanced-computer-architectures.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorossi/advanced-computer-architectures-notes/1c8dcd24926a6c35c73979ec93f4cd0acc94afd1/advanced-computer-architectures.pdf -------------------------------------------------------------------------------- /envsetup.py: -------------------------------------------------------------------------------- 1 | """This module is associated to the latex notes template. 2 | 3 | It is needed to: 4 | - clean the tikzit styles file 5 | - create the temporary folder for the tikz images 6 | - delete the temporary folder 7 | - delete the temporary files associated with the tex document 8 | """ 9 | from sys import argv 10 | from re import M, sub 11 | from pathlib import Path 12 | 13 | # constants 14 | TEMP_FOLDERS = ["tikztemp"] 15 | TEMP_EXTENSIONS = ["aux", "auxlock", "log", "pdf", "out", "toc"] 16 | PLACEHOLDER_EXT = ".placeholder" 17 | ARROW_STYLE = "{Triangle[scale=0.8]}" 18 | 19 | 20 | def clean_styles() -> None: 21 | """Clean the tikzstyles file as it was created by tikzit.""" 22 | # load styles files 23 | with open("tikzit.tikzstyles", "r") as f: 24 | data = f.read() 25 | 26 | # remove tikzit attributes 27 | data = sub(r"tikzit [a-z]+=(([a-zA-Z]+)|(\{.+\}))(, )?", "", data) 28 | # remove none fields 29 | data = sub(r"[a-z]+=none(, )?", "", data) 30 | # replace arrows 31 | data = sub(r"[<>]", ARROW_STYLE, data) 32 | # strip comments 33 | data = sub(r"^%.*\n", "", data, flags=M) 34 | # remove empty lines 35 | data = sub(r"^\s*$\n", "", data, flags=M) 36 | 37 | # save files 38 | with open("tikzstyle.tikzstyles", "w") as f: 39 | f.write(data) 40 | 41 | 42 | def make_folder() -> None: 43 | """Create the temporary folder for the tikz images.""" 44 | for f in TEMP_FOLDERS: 45 | Path(f).mkdir(parents=True, exist_ok=True) 46 | Path(f"{f}/{PLACEHOLDER_EXT}").touch() 47 | 48 | 49 | def delete_folder() -> None: 50 | """Delete the temporary folder, thus deleting all the rendered tikz images.""" 51 | for folder in TEMP_FOLDERS: 52 | for file in Path(folder).iterdir(): 53 | file.unlink() 54 | Path(folder).rmdir() 55 | 56 | 57 | def delete_temp() -> None: 58 | """Delete all the temporary files associated with the tex document images.""" 59 | for e in TEMP_EXTENSIONS: 60 | for file in Path(".").glob(f"*.{e}"): 61 | file.unlink(missing_ok=True) 62 | 63 | 64 | def main(argv: list[str]) -> None: 65 | """Read the arguments and call the appropriate functions.""" 66 | if "deletetemp" in argv: 67 | delete_temp() 68 | delete_folder() 69 | if "cleanstyle" in argv: 70 | clean_styles() 71 | 72 | make_folder() 73 | 74 | 75 | if __name__ == "__main__": 76 | main(argv) 77 | -------------------------------------------------------------------------------- /logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorossi/advanced-computer-architectures-notes/1c8dcd24926a6c35c73979ec93f4cd0acc94afd1/logo.png -------------------------------------------------------------------------------- /tikzit.tikzstyles: -------------------------------------------------------------------------------- 1 | % TiKZ style file generated by TikZiT. You may edit this file manually, 2 | % but some things (e.g. comments) may be overwritten. To be readable in 3 | % TikZiT, the only non-comment lines must be of the form: 4 | % \tikzstyle{NAME}=[PROPERTY LIST] 5 | 6 | % Node styles 7 | \tikzstyle{left align}=[draw=none, tikzit fill=cyan, anchor=east] 8 | \tikzstyle{right align}=[draw=none, tikzit fill=green, anchor=west] 9 | \tikzstyle{bottom align}=[draw=none, tikzit fill={rgb,255: red,128; green,0; blue,128}, anchor=north] 10 | \tikzstyle{top align}=[draw=none, tikzit fill=orange, anchor=south] 11 | \tikzstyle{black}=[fill=black, shape=circle, text=white, inner sep=2pt, minimum size=15pt, draw=black] 12 | \tikzstyle{white}=[fill=white, draw=black, shape=circle, inner sep=2pt, minimum size=15pt] 13 | \tikzstyle{red}=[fill={rgb,255: red,191; green,0; blue,64}, shape=circle, text=white, inner sep=2pt, minimum size=15pt, draw={rgb,255: red,191; green,0; blue,64}] 14 | \tikzstyle{small black}=[fill=black, draw=none, shape=circle, inner sep=0pt, minimum width=3pt, tikzit draw=black, tikzit fill={rgb,255: red,191; green,191; blue,191}] 15 | \tikzstyle{small white}=[fill=white, draw=black, shape=circle, inner sep=0pt, minimum width=3pt, tikzit draw=white, tikzit fill={rgb,255: red,191; green,191; blue,191}] 16 | \tikzstyle{small red}=[fill={rgb,255: red,191; green,0; blue,64}, draw=none, shape=circle, inner sep=0pt, minimum width=3pt, tikzit draw={rgb,255: red,191; green,0; blue,64}, tikzit fill={rgb,255: red,191; green,191; blue,191}] 17 | \tikzstyle{textbox}=[fill=white, draw=black, shape=rectangle, inner sep=1ex, outer sep=1ex] 18 | \tikzstyle{clear textbox}=[fill=none, draw=none, shape=rectangle, tikzit fill={rgb,255: red,220; green,220; blue,220}, tikzit draw=white, inner sep=0ex, outer sep=1ex] 19 | 20 | % Edge styles 21 | \tikzstyle{solid}=[fill=none, draw=black, tikzit draw={rgb,255: red,128; green,128; blue,128}, -] 22 | \tikzstyle{big}=[draw=black, tikzit draw=black, thick, -] 23 | \tikzstyle{thin}=[tikzit draw=magenta, draw=black, -, line width=0.02 mm] 24 | \tikzstyle{dashed}=[draw=black, dash pattern=on 2pt off 3pt, fill=none, tikzit draw=yellow, -] 25 | \tikzstyle{big dashed}=[-, draw=black, tikzit draw={rgb,255: red,191; green,128; blue,64}, dash pattern=on 2pt off 3pt, thick] 26 | \tikzstyle{red line}=[-, draw={rgb,255: red,191; green,0; blue,64}, tikzit draw={rgb,255: red,191; green,0; blue,64}, thick] 27 | \tikzstyle{green line}=[-, thick, draw={rgb,255: red,0; green,128; blue,128}, tikzit draw={rgb,255: red,0; green,128; blue,128}] 28 | \tikzstyle{blue line}=[-, thick, draw={rgb,255: red,31; green,117; blue,254}, tikzit draw={rgb,255: red,31; green,117; blue,254}] 29 | \tikzstyle{orange line}=[-, thick, draw={rgb,255: red,255; green,117; blue,56}, tikzit draw={rgb,255: red,255; green,117; blue,56}] 30 | \tikzstyle{yellow line}=[-, thick, draw={rgb,255: red,254; green,223; blue,0}, tikzit draw={rgb,255: red,254; green,223; blue,0}] 31 | \tikzstyle{purple line}=[-, thick, draw={rgb,255: red,120; green,81; blue,169}, tikzit draw={rgb,255: red,120; green,81; blue,169}] 32 | \tikzstyle{light fill}=[-, fill={rgb,255: red,240; green,240; blue,240}, draw=black, tikzit fill={rgb,255: red,235; green,235; blue,235}, tikzit draw={rgb,255: red,127; green,127; blue,127}] 33 | \tikzstyle{dark fill}=[-, fill={rgb,255: red,128; green,128; blue,128}] 34 | \tikzstyle{white line}=[-, draw=white] 35 | \tikzstyle{red fill}=[-, fill={rgb,255: red,191; green,0; blue,64}, tikzit fill={rgb,255: red,191; green,0; blue,64}, draw={rgb,255: red,77; green,0; blue,25}, tikzit draw={rgb,255: red,77; green,0; blue,25}] 36 | \tikzstyle{green fill}=[-, fill={rgb,255: red,0; green,128; blue,128}, tikzit fill={rgb,255: red,0; green,128; blue,128}, draw={rgb,255: red,0; green,76; blue,77}, tikzit draw={rgb,255: red,0; green,76; blue,77}] 37 | \tikzstyle{yellow fill}=[-, fill={rgb,255: red,254; green,223; blue,0}, draw={rgb,255: red,77; green,68; blue,0}, tikzit fill={rgb,255: red,254; green,223; blue,0}, tikzit draw={rgb,255: red,77; green,68; blue,0}] 38 | \tikzstyle{light blue fill}=[-, fill={rgb,255: red,177; green,223; blue,252}, draw={rgb,255: red,3; green,47; blue,74}, tikzit fill={rgb,255: red,177; green,223; blue,252}, tikzit draw={rgb,255: red,3; green,47; blue,74}] 39 | \tikzstyle{orange fill}=[-, fill={rgb,255: red,255; green,117; blue,56}, draw={rgb,255: red,77; green,23; blue,0}, tikzit fill={rgb,255: red,255; green,117; blue,56}, tikzit draw={rgb,255: red,77; green,23; blue,0}] 40 | \tikzstyle{purple fill}=[-, fill={rgb,255: red,120; green,81; blue,169}, draw={rgb,255: red,37; green,25; blue,52}, tikzit fill={rgb,255: red,120; green,81; blue,169}, tikzit draw={rgb,255: red,37; green,25; blue,52}] 41 | \tikzstyle{blue fill}=[-, fill={rgb,255: red,31; green,117; blue,254}, draw={rgb,255: red,8; green,32; blue,68}, tikzit fill={rgb,255: red,31; green,117; blue,254}, tikzit draw={rgb,255: red,8; green,32; blue,68}] 42 | \tikzstyle{solid arrow}=[draw=black, tikzit draw={rgb,255: red,128; green,128; blue,128}, ->] 43 | \tikzstyle{big arrow}=[tikzit draw=black, ->, thick] 44 | \tikzstyle{thin arrow}=[tikzit draw=magenta, draw=black, ->, line width=0.05 mm] 45 | \tikzstyle{dashed arrow}=[draw=black, tikzit draw=yellow, ->, dash pattern=on 2pt off 3pt, fill=none] 46 | \tikzstyle{red arrow}=[fill=none, draw={rgb,255: red,191; green,0; blue,64}, tikzit draw={rgb,255: red,191; green,0; blue,64}, thick, ->] 47 | \tikzstyle{green arrow}=[draw={rgb,255: red,0; green,128; blue,128}, fill=none, ->, thick, tikzit draw={rgb,255: red,0; green,128; blue,128}] 48 | \tikzstyle{blue arrow}=[draw={rgb,255: red,31; green,117; blue,254}, fill=none, ->, thick, tikzit draw={rgb,255: red,31; green,117; blue,254}] 49 | \tikzstyle{orange arrow}=[draw={rgb,255: red,255; green,117; blue,56}, fill=none, ->, thick, tikzit draw={rgb,255: red,255; green,117; blue,56}] 50 | \tikzstyle{yellow arrow}=[draw={rgb,255: red,254; green,223; blue,0}, fill=none, ->, thick, tikzit draw={rgb,255: red,254; green,223; blue,0}] 51 | \tikzstyle{purple arrow}=[draw={rgb,255: red,120; green,81; blue,169}, fill=none, ->, thick, tikzit draw={rgb,255: red,120; green,81; blue,169}] 52 | \tikzstyle{double arrow}=[fill=none, thick, <->, tikzit draw=black] 53 | -------------------------------------------------------------------------------- /tikzstyle.tikzstyles: -------------------------------------------------------------------------------- 1 | \tikzstyle{left align}=[anchor=east] 2 | \tikzstyle{right align}=[anchor=west] 3 | \tikzstyle{bottom align}=[anchor=north] 4 | \tikzstyle{top align}=[anchor=south] 5 | \tikzstyle{black}=[fill=black, shape=circle, text=white, inner sep=2pt, minimum size=15pt, draw=black] 6 | \tikzstyle{white}=[fill=white, draw=black, shape=circle, inner sep=2pt, minimum size=15pt] 7 | \tikzstyle{red}=[fill={rgb,255: red,191; green,0; blue,64}, shape=circle, text=white, inner sep=2pt, minimum size=15pt, draw={rgb,255: red,191; green,0; blue,64}] 8 | \tikzstyle{small black}=[fill=black, shape=circle, inner sep=0pt, minimum width=3pt, ] 9 | \tikzstyle{small white}=[fill=white, draw=black, shape=circle, inner sep=0pt, minimum width=3pt, ] 10 | \tikzstyle{small red}=[fill={rgb,255: red,191; green,0; blue,64}, shape=circle, inner sep=0pt, minimum width=3pt, ] 11 | \tikzstyle{textbox}=[fill=white, draw=black, shape=rectangle, inner sep=1ex, outer sep=1ex] 12 | \tikzstyle{clear textbox}=[shape=rectangle, inner sep=0ex, outer sep=1ex] 13 | \tikzstyle{solid}=[draw=black, -] 14 | \tikzstyle{big}=[draw=black, thick, -] 15 | \tikzstyle{thin}=[draw=black, -, line width=0.02 mm] 16 | \tikzstyle{dashed}=[draw=black, dash pattern=on 2pt off 3pt, -] 17 | \tikzstyle{big dashed}=[-, draw=black, dash pattern=on 2pt off 3pt, thick] 18 | \tikzstyle{red line}=[-, draw={rgb,255: red,191; green,0; blue,64}, thick] 19 | \tikzstyle{green line}=[-, thick, draw={rgb,255: red,0; green,128; blue,128}, ] 20 | \tikzstyle{blue line}=[-, thick, draw={rgb,255: red,31; green,117; blue,254}, ] 21 | \tikzstyle{orange line}=[-, thick, draw={rgb,255: red,255; green,117; blue,56}, ] 22 | \tikzstyle{yellow line}=[-, thick, draw={rgb,255: red,254; green,223; blue,0}, ] 23 | \tikzstyle{purple line}=[-, thick, draw={rgb,255: red,120; green,81; blue,169}, ] 24 | \tikzstyle{light fill}=[-, fill={rgb,255: red,240; green,240; blue,240}, draw=black, ] 25 | \tikzstyle{dark fill}=[-, fill={rgb,255: red,128; green,128; blue,128}] 26 | \tikzstyle{white line}=[-, draw=white] 27 | \tikzstyle{red fill}=[-, fill={rgb,255: red,191; green,0; blue,64}, ] 28 | \tikzstyle{green fill}=[-, fill={rgb,255: red,0; green,128; blue,128}, ] 29 | \tikzstyle{yellow fill}=[-, fill={rgb,255: red,254; green,223; blue,0}, draw={rgb,255: red,77; green,68; blue,0}, ] 30 | \tikzstyle{light blue fill}=[-, fill={rgb,255: red,177; green,223; blue,252}, draw={rgb,255: red,3; green,47; blue,74}, ] 31 | \tikzstyle{orange fill}=[-, fill={rgb,255: red,255; green,117; blue,56}, draw={rgb,255: red,77; green,23; blue,0}, ] 32 | \tikzstyle{purple fill}=[-, fill={rgb,255: red,120; green,81; blue,169}, draw={rgb,255: red,37; green,25; blue,52}, ] 33 | \tikzstyle{blue fill}=[-, fill={rgb,255: red,31; green,117; blue,254}, draw={rgb,255: red,8; green,32; blue,68}, ] 34 | \tikzstyle{solid arrow}=[draw=black, -{Triangle[scale=0.8]}] 35 | \tikzstyle{big arrow}=[-{Triangle[scale=0.8]}, thick] 36 | \tikzstyle{thin arrow}=[draw=black, -{Triangle[scale=0.8]}, line width=0.05 mm] 37 | \tikzstyle{dashed arrow}=[draw=black, -{Triangle[scale=0.8]}, dash pattern=on 2pt off 3pt, ] 38 | \tikzstyle{red arrow}=[draw={rgb,255: red,191; green,0; blue,64}, thick, -{Triangle[scale=0.8]}] 39 | \tikzstyle{green arrow}=[draw={rgb,255: red,0; green,128; blue,128}, -{Triangle[scale=0.8]}, thick, ] 40 | \tikzstyle{blue arrow}=[draw={rgb,255: red,31; green,117; blue,254}, -{Triangle[scale=0.8]}, thick, ] 41 | \tikzstyle{orange arrow}=[draw={rgb,255: red,255; green,117; blue,56}, -{Triangle[scale=0.8]}, thick, ] 42 | \tikzstyle{yellow arrow}=[draw={rgb,255: red,254; green,223; blue,0}, -{Triangle[scale=0.8]}, thick, ] 43 | \tikzstyle{purple arrow}=[draw={rgb,255: red,120; green,81; blue,169}, -{Triangle[scale=0.8]}, thick, ] 44 | \tikzstyle{double arrow}=[thick, {Triangle[scale=0.8]}-{Triangle[scale=0.8]}, ] 45 | -------------------------------------------------------------------------------- /tikztemp/.placeholder: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lorossi/advanced-computer-architectures-notes/1c8dcd24926a6c35c73979ec93f4cd0acc94afd1/tikztemp/.placeholder --------------------------------------------------------------------------------