302cd8def6d021a235447340038d79152cdecc58
[matthijs/projects/internship.git] / Progress presentation / Presentation.tex
1 \documentclass[hyperref={pdfpagelabels=false}]{beamer}
2 %\documentclass{beamer}
3
4 \mode<presentation>
5 {
6   %\useinnertheme{echt}
7   %\useinnertheme{proef}
8   \usetheme{Recore}
9   \setbeamercovered{transparent}
10   \setbeamertemplate{footline}
11         {%
12  \leavevmode%
13   \hbox{\begin{beamercolorbox}[wd=.5\paperwidth,ht=2.5ex,dp=1.125ex,leftskip=.3cm plus1fill,rightskip=.3cm]{author in head/foot}%
14     \usebeamerfont{author in head/foot}\insertshortauthor
15   \end{beamercolorbox}%
16   \begin{beamercolorbox}[wd=.4\paperwidth,ht=2.5ex,dp=1.125ex,leftskip=.3cm,rightskip=.3cm plus1fil]{title in head/foot}%
17     \usebeamerfont{title in head/foot}\insertshorttitle
18   \end{beamercolorbox}%
19   \begin{beamercolorbox}[wd=.1\paperwidth,ht=2.5ex,dp=1.125ex,leftskip=.3cm,rightskip=.3cm plus1fil]{title in head/foot}%
20     \usebeamerfont{title in head/foot} \insertframenumber-\inserttotalframenumber%\insertpagenumber-\insertpresentationendpage%Slide:\insertframenumber, Page:
21   \end{beamercolorbox}}%
22   \vskip0pt%
23 }
24 %\setbeamertemplate{footline}[frame number]
25 }
26
27 \usepackage[english]{babel}
28 \usepackage[latin1]{inputenc}
29 \usepackage{times}
30 \usepackage[T1]{fontenc}
31 \usepackage{acronym}
32 \usepackage{tikz}
33 \usepackage{multimedia}
34 \usepackage{subfigure}
35 \usepackage{booktabs}
36 %For handouts, use the following two lines:
37 %\usepackage{pgfpages}
38 %\pgfpagesuselayout{2 on 1}[a4paper,border shrink=5mm]
39
40
41 \title
42 {Scalability issues of a Network-on-Chip}
43
44 \author {David Bonfrer}
45
46 \institute[Recore Systems and University of Twente]
47 {
48   \inst{1}%
49   Recore Systems
50   \and
51   \inst{2}%
52   Faculty of Electrical Engineering, Mathematics and Computer Science\\
53   University of Twente
54   }
55   
56 \setbeamertemplate{navigation symbols}{}
57   
58  \pgfdeclareimage[height=0.5cm]{recore_logo}{images/recore_logo}
59  \logo{\pgfuseimage{recore_logo}}
60
61
62
63 \AtBeginSubsection[]
64 {
65   \begin{frame}<beamer>{Outline}
66     \tableofcontents[currentsection,currentsubsection,hideothersubsections]
67   \end{frame}
68 }
69
70
71
72 \begin{document}
73
74 \begin{frame}
75         \titlepage
76 \end{frame}
77
78 \begin{frame}{Contents}
79   \tableofcontents
80 \end{frame}
81
82 \section{Introduction}
83         \subsection{Low power usage}
84 %               \begin{frame}{PDA}
85 %                       \begin{center}
86 %                               \includegraphics[scale=.44]{images/pda3}
87 %                       \end{center}
88 %               \end{frame}
89 %               \begin{frame}{SoC}
90 %                       %Picture of SoC
91 %               \end{frame}
92 %               \begin{frame}{Annabelle \ac{SoC}}
93 %                       \begin{center}
94 %                               \includegraphics[scale=0.52]{images/reconfigurable_fabric}
95 %                       \end{center}
96 %               \end{frame}
97 %               \begin{frame}{CRISP \ac{SoC}}
98 %                       \begin{center}
99 %                               \includegraphics[scale=.76]{images/CRISP}%TODO fix blue too black
100 %                       \end{center}
101 %               \end{frame}
102 \section{Problem description}
103         %Problem description
104 \section{Architecture}
105                 \begin{frame}
106                 \begin{center}
107                         \tikzstyle{help lines}=[black!10,thin]
108                         \begin{tikzpicture}[>=stealth,scale=.7]
109                                 \foreach \x in {1,6,11}
110                                         \foreach \y in {5,0}{
111                                                 \draw (\x,\y) +(-1,-1) rectangle ++(1,1)[draw=black!50,fill=black!20,thick];
112                                                 \draw (\x,\y) node{Router};
113                                                 \draw (\x,\y) +(.4,1.2) rectangle ++(1.4,1.8)[draw=black!50,fill=black!20,thick];
114                                                 \draw (\x,\y) +(.9,1.5)node{Tile};
115                                                 \foreach \z in {0,.1,.2,.3} \draw (\x,\y) ++(\z,0) ++(0.5,1) -- ++(0,0.2);
116                                 }
117                                 \foreach \x in {1,6}\foreach \y in {5,0}\foreach \z in {-0.1,0,0.1,0.2}\draw (\x,\y) +(1,\z) -- ++(4,\z);
118                                 \foreach \x in {1,6,11}\foreach \y in {0}\foreach \z in {-0.1,0,0.1,0.2}\draw (\x,\y) +(\z,1) -- ++(\z,4);
119                                 \foreach \x in {11}\foreach \y in {5,0}\foreach \z in {-0.1,0,0.1,0.2}\draw (\x,\y) +(1,\z) -- ++(1.5,\z);
120                                 \foreach \x in {1,6,11}\foreach \y in {5}\foreach \z in {-0.1,0,0.1,0.2}\draw (\x,\y) +(\z,1) -- ++(\z,1.5);
121                                 \foreach \x in {1}\foreach \y in {5,0}\foreach \z in {-0.1,0,0.1,0.2}\draw (\x,\y) +(-1,\z) -- ++(-1.5,\z);
122                                 \foreach \x in {1,6,11}\foreach \y in {0}\foreach \z in {-0.1,0,0.1,0.2}\draw (\x,\y) +(\z,-1) -- ++(\z,-1.5);
123                                 \draw (4,5) circle (0.4) +(0,-0.4) -- (3,3.5) +(0,-0.2) node{Link};
124                                 \draw (2,0) circle (0.4) +(0,0.4) -- (4,1.5) +(0,0.2) node{Port};
125                                 \draw (9,4.9)  circle (0.1) +(0,-0.1) -- (8,3.5) +(0,-0.2) node{Lane};
126                         \end{tikzpicture}
127                 \end{center}
128                 \end{frame}
129                 \begin{frame}{Circuit switched}
130                         \begin{center}
131                                 \tikzstyle{help lines}=[black!10,thin]
132                                 \begin{tikzpicture}[>=stealth,scale=.6]
133                                         \foreach \x in {1,6,11}
134                                                 \foreach \y in {5,0}{
135                                                         \draw (\x,\y) +(-1,-1) rectangle ++(1,1)[draw=black!50,fill=black!20,thick];
136                                                         \draw (\x,\y) node{Router};
137                                                         \draw (\x,\y) +(.4,1.2) rectangle ++(1.4,1.8)[draw=black!50,fill=black!20,thick];
138                                                         \draw (\x,\y) +(.9,1.5)node{Tile};
139                                                         \foreach \z in {0,.1,.2,.3} \draw (\x,\y) ++(\z,0) ++(0.5,1) -- ++(0,0.2);
140                                         }
141                                         \foreach \x in {1,6}\foreach \y in {5,0}\foreach \z in {-0.1,0,0.1,0.2}\draw (\x,\y) +(1,\z) -- ++(4,\z);
142                                         \foreach \x in {1,6,11}\foreach \y in {0}\foreach \z in {-0.1,0,0.1,0.2}\draw (\x,\y) +(\z,1) -- ++(\z,4);
143                                         \foreach \x in {11}\foreach \y in {5,0}\foreach \z in {-0.1,0,0.1,0.2}\draw (\x,\y) +(1,\z) -- ++(1.5,\z);
144                                         \foreach \x in {1,6,11}\foreach \y in {5}\foreach \z in {-0.1,0,0.1,0.2}\draw (\x,\y) +(\z,1) -- ++(\z,1.5);
145                                         \foreach \x in {1}\foreach \y in {5,0}\foreach \z in {-0.1,0,0.1,0.2}\draw (\x,\y) +(-1,\z) -- ++(-1.5,\z);
146                                         \foreach \x in {1,6,11}\foreach \y in {0}\foreach \z in {-0.1,0,0.1,0.2}\draw (\x,\y) +(\z,-1) -- ++(\z,-1.5);
147                                         \draw [very thick,->] (-1,0.2)  -- (11.2,0.2) -- (11.2,4.9) -- (13,4.9);
148                                 \end{tikzpicture}
149                         \end{center}
150                 \end{frame}
151                 \begin{frame}{Packet switched}
152                         \begin{center}
153                                 \tikzstyle{help lines}=[black!10,thin]
154                                 \begin{tikzpicture}[>=stealth,scale=.6]
155                                         \foreach \x in {1,6,11}
156                                                 \foreach \y in {5,0}{
157                                                         \draw (\x,\y) +(-1,-1) rectangle ++(1,1)[draw=black!50,fill=black!20,thick];
158                                                         \draw (\x,\y) node{Router};
159                                                         \draw (\x,\y) +(.4,1.2) rectangle ++(1.4,1.8)[draw=black!50,fill=black!20,thick];
160                                                         \draw (\x,\y) +(.9,1.5)node{Tile};
161                                                         \foreach \z in {0,.1,.2,.3} \draw (\x,\y) ++(\z,0) ++(0.5,1) -- ++(0,0.2);
162                                         }
163                                         \foreach \x in {1,6}\foreach \y in {5,0}\foreach \z in {-0.1,0,0.1,0.2}\draw (\x,\y) +(1,\z) -- ++(4,\z);
164                                         \foreach \x in {1,6,11}\foreach \y in {0}\foreach \z in {-0.1,0,0.1,0.2}\draw (\x,\y) +(\z,1) -- ++(\z,4);
165                                         \foreach \x in {11}\foreach \y in {5,0}\foreach \z in {-0.1,0,0.1,0.2}\draw (\x,\y) +(1,\z) -- ++(1.5,\z);
166                                         \foreach \x in {1,6,11}\foreach \y in {5}\foreach \z in {-0.1,0,0.1,0.2}\draw (\x,\y) +(\z,1) -- ++(\z,1.5);
167                                         \foreach \x in {1}\foreach \y in {5,0}\foreach \z in {-0.1,0,0.1,0.2}\draw (\x,\y) +(-1,\z) -- ++(-1.5,\z);
168                                         \foreach \x in {1,6,11}\foreach \y in {0}\foreach \z in {-0.1,0,0.1,0.2}\draw (\x,\y) +(\z,-1) -- ++(\z,-1.5);
169                                         \draw [very thick,->] (-1,0.2)  -- (.8,0.2);
170                                         \draw [very thick,->] (1.2,0.2)  -- (5.8,0.2);
171                                         \draw [very thick,->] (6.2,0.2)  -- (10.8,0.2);
172                                         \draw [very thick,->] (11.2,0.5)-- (11.2,4.5);
173                                         \draw [very thick,->] (11.5,4.9)-- (13,4.9);
174                                 \end{tikzpicture}
175                         \end{center}
176                 \end{frame}
177                 \begin{frame}{Router components}
178                         \begin{center}
179                                 \tikzstyle{help lines}=[black!10,thin]
180                                 \begin{tikzpicture}[>=stealth,scale=.84]
181                                         \draw (-2.8,-1) rectangle ++(7.5,5);
182                                         \draw (1,3.75) node{Generic router};
183                                         \draw (.1,.1) rectangle ++(1.8,3);
184                                         \draw (1,2.75) node{Crossbar};
185                                         \foreach \x in {.1,2.6,2.0,1.4}{
186                                                 \draw (2.1,\x) rectangle ++(2.5,.5);
187                                                 \draw (2.1,\x) +(1.25,.25) node{Output buffer};
188                                         }
189                                         \foreach \x in {.8,1,1.2}{
190                                                 \draw (2.1,\x) +(1.25,0) circle (0.05);
191                                         }
192                                         \foreach \x in {.1,2.6,2.0,1.4}{
193                                                 \draw (-.1,\x) rectangle ++(-2.5,.5);
194                                                 \draw (-.1,\x) +(-1.25,.25) node{Input buffer};
195                                         }
196                                         \foreach \x in {.8,1,1.2}{
197                                                 \draw (-.1,\x) +(-1.25,0) circle (0.05);
198                                         }
199                                         \draw (.9,.1) -- (.9,-.1);
200                                         \draw (1.1,.1) -- (1.1,-.1);
201                                         \draw (0,-.1) rectangle (2,-.9);
202                                         \draw (1,-.5) node {Arbiter};
203                                         \foreach \x in {0.2,0.3,...,2.2}{
204                                                 \draw (0.2,\x) -- (.1,\x);
205                                                 \draw (1.9,\x) -- (1.8,\x);
206                                         }
207                                         \draw (.1,2.1) -- (.5,2.1);
208                                         \draw (.1,0.2) -- (.5,0.2);
209                         
210                                         \draw (1.5,2.1) -- (1.9,2.1);
211                                         \draw (1.5,0.2) -- (1.9,0.2);
212                         
213                                         \draw (-4.2,1.5) node {N inputs};
214                                         \draw (6.5,1.5) node {N outputs};
215                         
216                                         \draw (0.5,2.1) -- (1.5,0.2);
217                                         \draw (0.5,0.2) -- (1.5,2.1);
218                                         \draw (1.9,0.2) -- (2.1,.35);
219                                         \draw (1.9,2.1) -- (2.1,2.85);
220                                         \draw (1.9,2.0) -- (2.1,2.25);
221                                         \draw (1.9,1.9) -- (2.1,1.65);
222                         
223                                         \draw (.1,0.2) -- (-.1,.35);
224                                         \draw (.1,2.1) -- (-.1,2.85);
225                                         \draw (.1,2.0) -- (-.1,2.25);
226                                         \draw (.1,1.9) -- (-.1,1.65);
227                         
228                         
229                                         \draw [->] (4.5,0.35) -- (4.9,.35);
230                                         \draw [->] (4.5,2.85) -- (4.9,2.85);
231                                         \draw [->] (4.5,2.25) -- (4.9,2.25);
232                                         \draw [->] (4.5,1.65) -- (4.9,1.65);
233                         
234                                         \draw [<-] (-2.5,0.35) -- (-3,.35);
235                                         \draw [<-] (-2.5,2.85) -- (-3,2.85);
236                                         \draw [<-] (-2.5,2.25) -- (-3,2.25);
237                                         \draw [<-] (-2.5,1.65) -- (-3,1.65);
238                                 \end{tikzpicture}
239                         \end{center}
240                 \end{frame}
241                 \begin{frame}{Flow control}
242                         \begin{center}
243                                 \tikzstyle{help lines}=[black!10,thin]
244                                 \begin{tikzpicture}[>=stealth,scale=.5]
245                                         \draw[->] (.5,1) -- (9.5,1)node[above,midway]{Data valid};
246                                         \draw[<-] (.5,2) -- (9.5,2)node[above,midway]{Acknowledge};
247                                         \draw[->][very thick] (.5,3.5) -- (9.5,3.5) node[above,midway]{Data};
248                                 \end{tikzpicture}
249                         \end{center}
250                 \end{frame}
251 \section{Results}
252         \subsection{Flow control}
253                 \begin{frame}{Flow control}
254                         \begin{itemize}
255                                 \item Different types of flow control:
256                                 \begin{itemize}
257                                         \item Direct flow control
258                                         \item Single register flow control
259                                         \item Double register flow control
260                                         \item Windowed transmission
261                                 \end{itemize}
262                         \end{itemize}
263                 \end{frame}
264         \subsection{Configuration network}
265 %               \begin{frame}{Configuration network}
266 %                       \begin{center}
267 %                               \includegraphics[trim = 10mm 200mm 100mm 20mm, clip, scale=.8]{images/d+c_router}
268 %                       \end{center}
269 %               \end{frame}
270                 \begin{frame}{Configuration network}
271                         \begin{columns}
272                         \column{.8\textwidth}
273                         \begin{itemize}
274                                 \item The configuration network \ac{CSDCnet}:
275                                 \begin{itemize}
276                                         \item Pros:
277                                         \begin{itemize}
278                                                 \item Easy configuration
279                                                 \item Optimal config route
280                                                 \item Small area needed on chip ($0.002 mm^2$)
281                                                 \item High clock speed possible (1GHz)
282                                         \end{itemize}
283                                         \item Cons:
284                                         \begin{itemize}
285                                                 \item Only configuration data.
286                                                 \item Central control needed.
287                                                 \item Long configuration times.
288                                         \end{itemize}
289                                 \end{itemize}
290                         \end{itemize}
291                         \column{.2\textwidth}
292                         \begin{center}
293                                 \tikzstyle{place}=[circle,draw=blue!50,fill=blue!20,thick]
294                                 \tikzstyle{transition}=[rectangle,draw=black!50,fill=black!20,thick]
295                                 \begin{tikzpicture}[>=stealth,scale=.5,transform shape]
296                                         \node[place] (1) {};
297                                         \node[place] (2) [right of=1] {};
298                                         \node[place] (3) [right of=2] {};
299                                         \node[place] (4) [below of=1] {};
300                                         \node[place] (5) [right of=4] {};
301                                         \node[place] (6) [right of=5] {};
302                                         \node[place] (7) [below of=4] {};
303                                         \node[place] (8) [right of=7] {};
304                                         \node[place] (9) [right of=8] {};
305                 
306                                         \draw (1.east) -- (2.west);
307                                         \draw (2.east) -- (3.west);
308                                         \draw (4.east) -- (5.west);
309                                         \draw (5.east) -- (6.west);
310                                         \draw (7.east) -- (8.west);
311                                         \draw (8.east) -- (9.west);
312                                         \draw (1.south)-- (4.north);
313                                         \draw (2.south)-- (5.north);
314                                         \draw (3.south)-- (6.north);
315                                         \draw (4.south)-- (7.north);
316                                         \draw (5.south)-- (8.north);
317                                         \draw (6.south)-- (9.north);
318                                 \end{tikzpicture}
319                         \end{center}
320                         \end{columns}
321                 \end{frame}
322                 \begin{frame}{Configuring a NoC with CSDCnet}
323                         \begin{itemize}
324                                 \item Configuration using relative addressing
325                                 \item Configuration using commands
326                                 \item Two states for CSDCrouters:
327                                 \begin{itemize}
328                                         \item \emph{passthrough mode}
329                                         \item \emph{execute command mode}
330                                 \end{itemize}
331                         \end{itemize}
332                 \end{frame}
333                 \begin{frame}[shrink=33]{Commands of CSDCnet}
334                         \vspace{2cm}
335                         \begin{table}
336                                 \centering
337                                 \begin{tabular}{lll} \toprule
338                                         Command name & Command description & Parameters (Length in bits)\\
339                                         \midrule
340                                         CONFIG & Configure current data router & configuration data (11)\\
341                                         DESTROY & Destroy complete configuration path & -\\
342                                         EXTEND & Extend configuration path & direction to extend to (3)\\
343                                         REMOVE & Remove the last router from path & -\\
344                                         RESET\_ALL & Reset complete \acs{NoC} and all tiles & -\\
345                                         RESET\_TILE & Reset current tile & -\\
346                                         \bottomrule
347                                 \end{tabular}
348                                 \caption{Commands}
349                                 \label{tab:commandsLimited}
350                         \end{table}
351                 \end{frame}
352
353                 
354                 \begin{frame}{Ring network}
355                         \begin{columns}
356                         \column{.8\textwidth}
357                         \begin{itemize}
358                                 \item The ring network, from the University of Twente, can be used for configuration too:
359                                 \begin{itemize}
360                                         \item Pros:
361                                         \begin{itemize}
362                                                 \item No setting up paths.
363                                                 \item Not only configuration data.
364                                                 \item Needs small area on chip ($0.003 mm^2$).
365                                                 \item High clock speed possible (1GHz).
366                                                 \item No central control of the network.
367                                         \end{itemize}
368                                         \item Cons:
369                                         \begin{itemize}
370                                                 \item Routes not optimal. 
371                                         \end{itemize}
372                                 \end{itemize}
373                         \end{itemize}
374                         \column{.2\textwidth}
375                         \begin{center}
376                                 \tikzstyle{place}=[circle,draw=blue!50,fill=blue!20,thick]
377                                 \tikzstyle{transition}=[rectangle,draw=black!50,fill=black!20,thick]
378                                 \begin{tikzpicture}[>=stealth,scale=.4,transform shape]
379                                         \node[place] (1) at (-1,-2) {};
380                                         \node[place] (2) at ( 1,-2) {};
381                                         \node[place] (3) at ( 2,-1) {};
382                                         \node[place] (4) at ( 2, 1) {};
383                                         \node[place] (5) at ( 1, 2) {};
384                                         \node[place] (6) at (-1, 2) {};
385                                         \node[place] (7) at (-2, 1) {};
386                                         \node[place] (8) at (-2,-1) {};
387                                         \foreach \from/\to in {1/2,2/3,3/4,4/5,5/6,6/7,7/8,8/1}
388                                         \draw (\from) -- (\to);
389                                 \end{tikzpicture}
390                         \end{center}
391                         \end{columns}
392                 \end{frame}
393                 \begin{frame}
394                 \only<1>{\begin{center}
395                         \begin{tikzpicture}[>=stealth,scale=0.5,transform shape]
396                                 \foreach \x in {0,1,...,7}
397                                 \foreach \y in {0,1,...,7}
398                                 \draw (\y,\x) circle (0.3)[draw=blue!50,fill=blue!20,thick];
399                                 \draw (0,-1) circle (0.3)[draw=blue!50,fill=blue!20,thick];
400                                 \draw (0,-1) node {CU};
401                                 \draw (0,7) node {A};
402                                 \draw (7,0) node {B};
403                                 %\draw[->,color=red,dashed,very thick] (0,0) -- (0,7);
404                                 \draw[color=black!0] (0,-.5) -- (1,-.5);
405                                 \foreach \x in {0,...,6}
406                                 \foreach \y in {0,...,7}
407                                 \draw (\y,\x)+(0,0.3) -- +(0,0.7);
408                                 \foreach \x in {0,...,7}
409                                 \foreach \y in {0,...,6}
410                                 \draw (\y,\x)+(0.3,0) -- +(0.7,0);
411
412                                 %\draw[very thick,->] (0,7) -- (7,7) -- (7,0);
413                         
414                         \end{tikzpicture}
415                         \begin{tikzpicture}[>=stealth,scale=0.5,transform shape]
416                                 \foreach \x in {0,1,...,7}
417                                 \foreach \y in {0,1,...,7}
418                                 \draw (\y,\x) circle (0.3)[draw=blue!50,fill=blue!20,thick];
419                                 \draw (0,-1) circle (0.3)[draw=blue!50,fill=blue!20,thick];
420                                 \draw (0,-1) node {CU};
421                                 \draw (0,7) node {A};
422                                 \draw (7,0) node {B};
423                                 %\draw[very thick,->] (0,7) -- (0,0) -- (7,0);
424                                 %ring-net lines
425                                 \foreach \x in {0,...,5}
426                                 \foreach \y in {0,...,7}
427                                 \draw (\y,\x)+(0,0.3) -- +(0,0.7);
428                                 \draw (0,6)+(0,0.3) -- +(0,0.7);
429                                 \draw (7,6)+(0,0.3) -- +(0,0.7);
430                                 \foreach \x in {0,2,4,6} \draw (\x,0)+(0.3,0) -- +(0.7,0);
431                                 \foreach \x in {1,3,5}   \draw (\x,6)+(0.3,0) -- +(0.7,0);
432                                 \foreach \x in {0,...,6} \draw (\x,7)+(0.3,0) -- +(0.7,0);
433                                 
434                                 \draw[color=black!0] (0,-.5) -- (1,-.5);
435                         \end{tikzpicture}
436                 \end{center}}
437                 \only<2>{\begin{center}
438                         \begin{tikzpicture}[>=stealth,scale=0.5,transform shape]
439                                 \foreach \x in {0,1,...,7}
440                                 \foreach \y in {0,1,...,7}
441                                 \draw (\y,\x) circle (0.3)[draw=blue!50,fill=blue!20,thick];
442                                 \draw (0,-1) circle (0.3)[draw=blue!50,fill=blue!20,thick];
443                                 \draw (0,-1) node {CU};
444                                 \draw (0,7) node {A};
445                                 \draw (7,0) node {B};
446                                 \draw[->,color=red,dashed,very thick] (0,0) -- (0,7);
447                                 \draw[color=black!0] (0,-.5) -- (1,-.5);
448                                 \foreach \x in {0,...,6}
449                                 \foreach \y in {0,...,7}
450                                 \draw (\y,\x)+(0,0.3) -- +(0,0.7);
451                                 \foreach \x in {0,...,7}
452                                 \foreach \y in {0,...,6}
453                                 \draw (\y,\x)+(0.3,0) -- +(0.7,0);
454
455                                 \draw[very thick,->] (0,7) -- (7,7) -- (7,0);
456                         
457                         \end{tikzpicture}
458                         \begin{tikzpicture}[>=stealth,scale=0.5,transform shape]
459                                 \foreach \x in {0,1,...,7}
460                                 \foreach \y in {0,1,...,7}
461                                 \draw (\y,\x) circle (0.3)[draw=blue!50,fill=blue!20,thick];
462                                 \draw (0,-1) circle (0.3)[draw=blue!50,fill=blue!20,thick];
463                                 \draw (0,-1) node {CU};
464                                 \draw (0,7) node {A};
465                                 \draw (7,0) node {B};
466                                 \draw[very thick,->] (0,7) -- (0,0) -- (7,0);
467                                 %ring-net lines
468                                 \foreach \x in {0,...,5}
469                                 \foreach \y in {0,...,7}
470                                 \draw (\y,\x)+(0,0.3) -- +(0,0.7);
471                                 \draw (0,6)+(0,0.3) -- +(0,0.7);
472                                 \draw (7,6)+(0,0.3) -- +(0,0.7);
473                                 \foreach \x in {0,2,4,6} \draw (\x,0)+(0.3,0) -- +(0.7,0);
474                                 \foreach \x in {1,3,5}   \draw (\x,6)+(0.3,0) -- +(0.7,0);
475                                 \foreach \x in {0,...,6} \draw (\x,7)+(0.3,0) -- +(0.7,0);
476                                 
477                                 \draw[color=black!0] (0,-.5) -- (1,-.5);
478                         \end{tikzpicture}
479                 \end{center}}
480                 \end{frame}
481                 \begin{frame}
482                 \begin{center}
483                         %\includegraphics[scale=.7]{results/conftimes2}
484                 \end{center}
485                 \end{frame}
486                 \small
487                 \begin{frame}{Synthesis results at 500MHz}
488                         \begin{table} [ht]
489                                 \centering
490                                 \begin{tabular}{lll}
491                                         \toprule
492                                         Component & Slack (ns) & Area ($mm^2$)\\
493                                         \midrule
494                                         Packet switched (Kavaldjiev)                    & 0.00 & 0.2133\\
495                                         Small packet switched (Kavaldjiev)              & 0.00 & 0.0769\\
496                                         Circuit switched (Annabelle)                    & 0.42 & 0.0254\\
497                                         Circuit switched SingleReg (thesis)             & 0.35 & 0.0393\\
498                                         Circuit switched DoubleReg (thesis)             & 0.03 & 0.0681\\
499                                         \midrule
500                                         Ring configuration                              & 0.96 & 0.0030\\
501                                         \acs{CSDCrouter}                                & 0.85 & 0.0021\\
502                                         %\acs{CSDCrouter} with TTL                      & 0.26 & 0.0090\\
503                                         
504                                         
505                                         \bottomrule
506                                 \end{tabular}
507                                 \caption{Results of 90nm ASIC technology from TSMC at 500MHz}
508                         \end{table}
509                 \end{frame}
510                 \begin{frame}{Synthesis results at 1000MHz}
511                         \begin{table} [ht]
512                                 \centering
513                                 \begin{tabular}{lll}
514                                         \toprule
515                                         Component & Slack (ns) & Area ($mm^2$)\\
516                                         \midrule
517                                         Packet switched (Kavaldjiev)                            & -0.66 & 0.2174 \\
518                                         Small packet switched (Kavaldjiev)                      & -0.67 & 0.0812\\
519                                         Circuit switched (Annabelle)                            & 0.00  & 0.0265\\
520                                         Circuit switched SingleReg (thesis)                     & 0.00  & 0.0423\\
521                                         Circuit switched DoubleReg (thesis)                     & 0.00  & 0.0837\\
522                                         \midrule
523                                         Ring configuration                                      & 0.02  & 0.0030\\
524                                         \acs{CSDCrouter}                                        & 0.01  & 0.0022\\
525                                         %\acs{CSDCrouter} with TTL                              & -0.17 & 0.0098\\
526                                         \bottomrule
527                                 \end{tabular}
528                                 \caption{Results of 90nm ASIC technology from TSMC at 1000MHz}
529                                 \label{tabASIC1000}
530                         \end{table}
531                 \end{frame}
532                 \normalsize
533
534 \section{Conclusion}
535         \begin{frame}{Flow control}
536                 \begin{itemize}
537                         \item DirectAck is not scalable, but good for very small \acp{NoC}.\onslide<2->
538                         \item Single register is slower, but usable for any size of \ac{NoC}.\onslide<3->
539                         \item Double register requires twice as much area, but is fast and usable for any size of \ac{NoC}.\onslide<4->
540                         \item Windowed transmission requires very much buffer area in the tiles, and is therefore not recommended.\onslide<5->
541                 \end{itemize}
542                 Scalable flow control always requires two buffers or two clock cycles.
543         \end{frame}
544         \begin{frame}{Choosing a NoC}
545         \begin{itemize}
546                 \item Best Effort (BE) traffic:
547                 \begin{itemize}
548                         \item Much BE traffic: use Packet Switched.\onslide<2->
549                         \item Some control BE traffic: use SAnet with ring network.\onslide<3->
550                         \item No BE traffic: use SAnet with CSDCnet.\onslide<4->
551                         \item Some BE traffic can also be routed efficiently using circuits in the circuit switched network, bursts for example.\onslide<5->
552                         \item CSDCnet does not support connections initiated from the tiles.\onslide<6->
553                 \end{itemize}
554                 \item Guaranteed Service (GS) traffic:
555                 \begin{itemize}
556                         \item High bandwidth streams: use circuit switched;
557                         \begin{itemize}
558                                 \item Circuit switched has 4 outputs per port.
559                                 \item Circuit switched can be clocked at 1GHz.\onslide<7->
560                         \end{itemize}
561                         \item Low bandwidth streams: use packet switched;
562                         \begin{itemize}
563                                 \item Streams can be multiplexed.
564                         \end{itemize}
565
566                 \end{itemize}
567         \end{itemize}
568         \end{frame}
569         %tiny
570         \begin{frame}[shrink=33]{CSDCnet vs Ring}
571                 \vspace{2cm}
572                 \begin{table}
573                         \centering
574                         \begin{tabular}{ll}\toprule
575                                 \acs{CSDCnet} & Ring network\\
576                                 \midrule 
577                                 Circuit switched                                        & Packet switched\\%\onslide<2-> \\
578                                 Full \acs{NoC} configuration in 1.3ms (for N=8)         & Full \acs{NoC} configuration in 0.8ms (for N=8)\\%\onslide<3-> \\
579                                 No BE traffic support                                   & Tiles can send BE data over the ring\\%\onslide<4-> \\
580                                 Topology the same as data \acs{NoC}                     & Topology differs from data \acs{NoC}\\%\onslide<5-> \\
581                                 Worst case config time increases linearly               & Worst case config time increases quadratically\\%\onslide<6-> \\
582                                 Central coordination for avoiding deadlocks             & No deadlocks possible\\%\onslide<7-> \\
583                                 Area on chip is $2166 \mu m^2$ (one router)             & Area on chip is $3026 \mu m^2$ (one router)\\%\onslide<1->\\
584                                  \bottomrule
585                         \end{tabular}
586                         \caption{Configuration networks: Serial VS Ring}
587                         \label{tab:SerialVSRing}
588                 \end{table}
589         \end{frame}
590         %\normalsize
591         \begin{frame}{Future research}
592                 \begin{itemize}
593                         \item Recommendations for future research:
594                         \begin{itemize}
595                                 \item Configuration using data lanes
596                                 \item Optimisations for \ac{CSDCnet}
597                                 \item Optimisations for ring network
598                                 \item Packet switched mesh configuration network
599                         \end{itemize}
600                 \end{itemize}
601         \end{frame}
602 %       \begin{frame}
603 %               \begin{center}
604 %                       \includegraphics[scale=.16]{images/qmark2}
605 %               \end{center}
606 %       \end{frame}
607 \appendix
608
609 %\begin{frame}{Synthesis settings}
610 %       To compare size and maximum clock frequency of various \acp{NoC}, we synthesised them using the 90nm TSMC library with the following settings:
611 %       \begin{itemize}
612 %               \item Operating Condition Name: WCCOM.
613 %               \item Library: tcbn90gthpwc.
614 %               \item Process: 1.00.
615 %               \item Temperature: 125.00.
616 %               \item Voltage: 1.08.
617 %               \item Interconnect Model: balanced\_tree.
618 %       \end{itemize}
619 %\end{frame}
620 %\tiny
621 %\begin{frame}{Commands}
622 %       \begin{table} [ht]
623 %               \centering
624 %               \begin{tabular}{lll} \toprule
625 %                       Command name & Command description & Parameters (Length in bits)\\
626 %                       \midrule
627 %                       CONFIG & Configure current data router & configuration data (11)\\
628 %                       CONFIG\_TTL & Configure current data router & configuration data and TTL (13)\\
629 %                       DESTROY & Destroy complete configuration path & -\\
630 %                       EXTEND & Extend configuration path & direction to extend to (3)\\
631 %                       REMOVE & Remove the last router from path & -\\
632 %                       RESET\_ALL & Reset complete \acs{NoC} and all tiles & -\\
633 %                       RESET\_TILE & Reset current tile & -\\
634 %                       SET\_TTL & Set TTL value & TTL, destination and timeout (14)\\
635 %                       STATUS & Returns the TTL status & no data while status is returned (20)\\
636 %                       \bottomrule
637 %               \end{tabular}
638 %               \caption{Commands}
639 %               \label{tab:commands}
640 %       \end{table}
641 %\end{frame}
642 %\normalsize
643
644 %\begin{frame}{SRAM size vs register size}
645 %       \begin{figure}
646 %               \centering
647 %               \includegraphics[scale=.5]{images/sram_register_16_90}
648 %               \caption{Estimation of size of SRAM vs registers in 90nm UMC technology}
649 %               \label{pic:SRAMvsREGS}
650 %       \end{figure}
651 %\end{frame}
652
653 %\begin{frame}{Examples of \acp{NoC}}
654 %       \tiny
655 %       \begin{table} [ht]
656 %               \centering
657 %                       \begin{tabular}{lllll} \toprule
658 %                       NoC & CS or PS & BE/GS & Flow control & Configuration \\
659 %                       \midrule
660 %                       \AE thereal                             & PS            & BE and GS     & BE:Handshake, GS:Windowed     & Header\\
661 %                       Kavaldjiev                              & PS            & BE and GS     & Handshake                     & Header\\
662 %                       SoCIN                                   & PS            & BE            & Handshake                     & XY header\\
663 %                       SoCBUS                                  & CS            & GS            & Handshake                     & Header\\
664 %                       PACT XPP                                & CS            & GS            & Handshake                     & Config network\\
665 %                       Annabelle's NoC                         & CS            & GS            & Handshake                     & Config network\\
666 %                       \bottomrule
667 %               \end{tabular}
668 %               \caption{Different NoCs}
669 %               \label{tab:NoCs}
670 %       \end{table}
671 %\end{frame}
672
673 %\begin{frame}{Glossary}
674         \begin{acronym}[CRISP]
675                 \acro{ASIC}{application-specific integrated circuit}
676                 \acro{CRISP}{Cutting edge Reconfigurable ICs for Stream Processing}
677                 \acro{CSDCnet}{Circuit switched Serial Dedicated Configuration network}
678                 \acro{CSDCrouter}{Circuit switched Serial Dedicated Configuration router}
679                 \acro{CU}{Configuration Unit}
680                 \acro{FPGA}{field programmable gate array}
681                 \acro{GPP}{general purpose processor}
682                 \acro{KISS}{keeping it simple and stupid}
683                 \acro{NoC}{Network-on-Chip}
684                 \acro{SAnet}{Scalable Annabelle network}
685                 \acro{SoC}{System-on-Chip}
686         \end{acronym}
687 %\end{frame}
688 \end{document}
689
690 %\tiny tiny font
691 %\scriptsize very small font
692 %\footnotesize quite small font
693 %\small small font
694 %\normalsize normal font
695 %\large large font
696 %\Large larger font
697 %\LARGE very large font
698 %\huge huge
699 %\Huge largest