forked from pkgw/ucastrothesis
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy paththesis.tex
222 lines (179 loc) · 9.58 KB
/
thesis.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
% This sample file is dedicated to the public domain.
\documentclass[12pt]{myucthesis}
%\nofiles
% The above command prevents latex from writing its auxiliary
% files. This is useful if you want to manually tweak them before you
% generate your final PDF.
% Page layout. The fancyhdr package may complain about the need for a
% larger headheight, depending on how long chapter titles are; if left
% unspecified in the geometry setup, it defaults to 12pt. The
% "showframe" option causes the geometry package (version >= 5.0) to
% show a frame around the margins on every page, which is great for
% checking that you don't overflow anywhere.
%\usepackage[letterpaper,includehead,margin=1in,headheight=15pt,showframe]{geometry}
\usepackage[letterpaper,includehead,margin=1in,headheight=15pt]{geometry}
\usepackage{fancyhdr}
\pagestyle{fancyplain}
\lhead[\fancyplain{\thepage}{\thepage}]{\fancyplain{}{\scshape\rightmark}}
\rhead[\fancyplain{}{\scshape\leftmark}]{\fancyplain{\thepage}{\thepage}}
\chead{}
\cfoot{}
\lfoot{}
\rfoot{}
% Bibliography stuff:
\newcommand{\newblock}{\par} % need this for some natbib internal bug
\bibliographystyle{abbrv}
\def\bibpreamble{\addcontentsline{toc}{chapter}{Bibliography}} % get a good TOC entry
% Other setup:
\usepackage[T1]{fontenc} % see http://tinyurl.com/67zdxwf
\usepackage[colorlinks,urlcolor=blue,citecolor=blue,linkcolor=blue,pdfusetitle]{hyperref}
\usepackage{pdflscape} % allows landscape-oriented figures with PDF page rotation
\usepackage{aasmacros,amsmath,amssymb,graphicx}
\usepackage{mydeluxetable} % deluxetable customized to play well with ucthesis
\usepackage{lmodern,microtype} % subtle typographic improvements and updated basic font
%\usepackage{times}
\usepackage{epsfig}
\usepackage{soul}
\usepackage{booktabs}
\usepackage{url}
\usepackage{mdwlist}
\usepackage{lscape}
\usepackage{array}
\usepackage{multirow}
\usepackage{rotating}
\usepackage{pifont}
\def\code#1{{\tt #1}}
\include{scala}
% New column types to use in tabular environment for instruction formats.
% Allocate 0.18in per bit.
\newcolumntype{I}{>{\centering\arraybackslash}p{0.18in}}
% Two-bit centered column.
\newcolumntype{W}{>{\centering\arraybackslash}p{0.36in}}
% Three-bit centered column.
\newcolumntype{F}{>{\centering\arraybackslash}p{0.54in}}
% Four-bit centered column.
\newcolumntype{Y}{>{\centering\arraybackslash}p{0.72in}}
% Five-bit centered column.
\newcolumntype{R}{>{\centering\arraybackslash}p{0.9in}}
% Six-bit centered column.
\newcolumntype{S}{>{\centering\arraybackslash}p{1.08in}}
% Seven-bit centered column.
\newcolumntype{O}{>{\centering\arraybackslash}p{1.26in}}
% Eight-bit centered column.
\newcolumntype{E}{>{\centering\arraybackslash}p{1.44in}}
% Ten-bit centered column.
\newcolumntype{T}{>{\centering\arraybackslash}p{1.8in}}
% Twelve-bit centered column.
\newcolumntype{M}{>{\centering\arraybackslash}p{2.2in}}
% Sixteen-bit centered column.
\newcolumntype{K}{>{\centering\arraybackslash}p{2.88in}}
% Twenty-bit centered column.
\newcolumntype{U}{>{\centering\arraybackslash}p{3.6in}}
% Twenty-two-bit centered column.
\newcolumntype{L}{>{\centering\arraybackslash}p{3.96in}}
% Twenty-five-bit centered column.
\newcolumntype{J}{>{\centering\arraybackslash}p{4.5in}}
\newcommand{\instbit}[1]{\mbox{\scriptsize #1}}
\newcommand{\instbitrange}[2]{~\instbit{#1} \hfill \instbit{#2}~}
\newcommand{\reglabel}[1]{\hfill {\tt #1}\hfill\ }
\begin{document}
\ssp % single spacing
\hypersetup{pageanchor=false}
\include{setup}
\maketitle
\copyrightpage
\begin{abstract}
As Moore's Law slows and process scaling yields only small returns, computer architecture and design are poised to undergo a renaissance. This thesis brings the productivity of modern software tools to bear on the design of future energy-efficient hardware architectures.
In particular, it targets one of the most difficult design tasks in the hardware domain: Coherent hierarchies of on-chip caches.
I have extended the capabilities of Chisel, a new hardware description language, by providing libraries for hardware developers to use to describe the configuration and behavior of such memory hierarchies, with a focus on the cache coherence protocols that work
behind the scenes to preserve their abstraction of global shared memory.
I discuss how the methods I provide enable productive and extensible memory hierarchy design by separating the concerns of different hierarchy components, and I explain how this forms the basis for a generative approach to agile hardware design.
This thesis describes a general framework for context-dependent parameterization of any hardware generator, defines a specific set of Chisel libraries for generating extensible cache-coherent memory hierarchies, and provides a methodology for decomposing high-level descriptions of cache coherence protocols into controller-localized, object-oriented transactions.
This methodology has been used to generate the memory hierarchies of a lineage of RISC-V chips fabricated as part of the ASPIRE Lab's investigations into application-specific processor design.
\end{abstract}
\hypersetup{pageanchor=true}
\begin{frontmatter}
\begin{dedication}
\null\vfil
{\large
\begin{center}
I dedicate this thesis to all my teachers.
\vspace{1in}
Michael Stueben, for starting me on the path.
David Brogan, for letting me work on whatever I wanted.
Kevin Skadron, for guiding me to the next level.
Krste Asanovic, for reminding me that nothing in use is ever finished.
David Patterson, for making me believe we could change everything.
\vspace{1in}
My parents, Irene Balassis and Bernard Cook,
for teaching me how to learn.
\vspace{1in}
My husband, Michael Armbrust,
for teaching me how to listen.
\end{center}}
\null\vfil
\end{dedication}
\tableofcontents
\listoffigures % optional
\listoftables % optional
% If using code.sty, can also add:
%% \listofcodes
%% \addcontentsline{toc}{chapter}{List of Code Examples}
\begin{acknowledgements}
The ultimately solo process of completing this document forced me to truly reflect
on how much I have relied on my collaborators throughout this epic journey.
I want to thank all of my Berkeley colleagues, and in particular acknowledge
those who had the most influence on the path of my thoughts over these years.
Armando Fox, Brucek Khailany, and Jonathan Bachrach each served as my third advisor in their own way.
I also want to acknowledge the guidance of David Wessel, who was not able to serve on my final committee,
and to thank Paul Wright for kindly stepping in to take his place.
Chris Batten, Bryan Catanzaro, Sam Williams, Shoaib Kamil, Zhangzi Tan, and Miquel Moreto
offered the wisdom and compassion of their mentorship.
Peter Bailis and Peter Alvaro gave me direction in my most uncertain hour.
Katya Gonina, Michael Bauer, Adam Israelevitz,
Sarah Bird, Yunsup Lee and Andrew Waterman
were my peers who gave me the most to build on,
and who pushed me the hardest to deliver on my promises.
I joined Berkeley at a time when the computer architecure group was just coming out of hibernation,
and its been a privilege and a pleasure to watch it blossom.
I went from shivering in the recesses of 420 with Scott Beamer and Sarah Bird
to the sunlight of the Cosmic Cube with Chris Celio, Andrew Waterman and Adam Israelevitz.
To all the Barchitects, past and future, thank you for working together to make this happen.
Andrew Waterman and Yunsup Lee still want to keep working with me.
Here's to the next big thing.
I would never have survived grad school without a strong support network.
My fellows students kept me sane, in particular
Jake Abernethy, Ariel Kleiner, Angela Brooks, Peter Bodik, Yuni Kim,
Andy Konwinski, Beth Trushkowsky, Rob Carroll, Kurtis Heimerl, Adrienne Felt, Mark Murphy,
Kevin Klues, Erin Carson, Nick Knight, Katya Gonina, Eric Battenberg, Nick Jalbert,
Lisa Fowler, Isabelle Stanton, and Brian Gawalt.
Apartment 21 was my home for the entirety of this thesis, and it wouldn't have been the same without
George Schaeffer, Erika Chin, Eric Love, Jonathan Harper, and Palmer Dabbelt.
Michael Schuler, Chad Stose, Jacob Wolkenhauer, Robert Zamora, Matt Hagenian,
Aaron Symth, Keith Cheveralls, Robert Lawson,
Scott Remnant, and Sam Grossberg were my gay mafia, and
Kirk McKusick and Eric Allman provided their own brand of mentorship.
Andrew Waterman, Sarah Bird, Steve Hanna, Maggie Brown, Joseph Pirtle, Noah Benson, Sam Luckenbill, and Matt Holte
helped me explore the world, push my limits, and climb to new heights.
Chris Grier and Kurt Thomas were my best men.
Of course, none of this work would have been possible without the help, empathy, support and love
of my husband, Michael Armbrust.
This dissertation was typeset using the
\href{https://github.com/pkgw/ucastrothesis}{\textsf{ucastrothesis}}
\LaTeX\ template.
Irene Balassis provided final copy editing, but any remaining mistakes are mine alone.
This research was partially funded by DARPA Award Number HR0011-12-2-0016, the Center for Future Architecture Research, a member of STARnet, a Semiconductor Research Corporation program sponsored by MARCO and DARPA, and ASPIRE Lab industrial sponsors and affiliates Intel, Google, Hewlett-Packard, Huawei, LGE, NVIDIA, Oracle, and Samsung.
Earlier in my career I was the beneficiary of fellowships from the Siebel Foundation and NVIDIA Corp.
Any opinions, findings, conclusions, or recommendations in this thesis are solely mine and do not necessarily reflect the position or the policy of the sponsors.
\end{acknowledgements}
\end{frontmatter}
\include{intro/intro}
\include{parameters/parameters}
\include{tilelink/tilelink}
\include{coherence/coherence}
\include{intro/conclusion}
\bibliography{thesis}{}
\appendix
\include{appendix/memopcodes}
\include{appendix/swmem}
\end{document}