- \begin{frame}{Configuration network}
- \begin{columns}
- \column{.8\textwidth}
- \begin{itemize}
- \item The configuration network \ac{CSDCnet}:
- \begin{itemize}
- \item Pros:
- \begin{itemize}
- \item Easy configuration
- \item Optimal config route
- \item Small area needed on chip ($0.002 mm^2$)
- \item High clock speed possible (1GHz)
- \end{itemize}
- \item Cons:
- \begin{itemize}
- \item Only configuration data.
- \item Central control needed.
- \item Long configuration times.
- \end{itemize}
- \end{itemize}
- \end{itemize}
- \column{.2\textwidth}
- \begin{center}
- \tikzstyle{place}=[circle,draw=blue!50,fill=blue!20,thick]
- \tikzstyle{transition}=[rectangle,draw=black!50,fill=black!20,thick]
- \begin{tikzpicture}[>=stealth,scale=.5,transform shape]
- \node[place] (1) {};
- \node[place] (2) [right of=1] {};
- \node[place] (3) [right of=2] {};
- \node[place] (4) [below of=1] {};
- \node[place] (5) [right of=4] {};
- \node[place] (6) [right of=5] {};
- \node[place] (7) [below of=4] {};
- \node[place] (8) [right of=7] {};
- \node[place] (9) [right of=8] {};
-
- \draw (1.east) -- (2.west);
- \draw (2.east) -- (3.west);
- \draw (4.east) -- (5.west);
- \draw (5.east) -- (6.west);
- \draw (7.east) -- (8.west);
- \draw (8.east) -- (9.west);
- \draw (1.south)-- (4.north);
- \draw (2.south)-- (5.north);
- \draw (3.south)-- (6.north);
- \draw (4.south)-- (7.north);
- \draw (5.south)-- (8.north);
- \draw (6.south)-- (9.north);
- \end{tikzpicture}
- \end{center}
- \end{columns}
- \end{frame}
- \begin{frame}{Configuring a NoC with CSDCnet}
- \begin{itemize}
- \item Configuration using relative addressing
- \item Configuration using commands
- \item Two states for CSDCrouters:
- \begin{itemize}
- \item \emph{passthrough mode}
- \item \emph{execute command mode}
- \end{itemize}
- \end{itemize}
- \end{frame}
- \begin{frame}[shrink=33]{Commands of CSDCnet}
- \vspace{2cm}
- \begin{table}
- \centering
- \begin{tabular}{lll} \toprule
- Command name & Command description & Parameters (Length in bits)\\
- \midrule
- CONFIG & Configure current data router & configuration data (11)\\
- DESTROY & Destroy complete configuration path & -\\
- EXTEND & Extend configuration path & direction to extend to (3)\\
- REMOVE & Remove the last router from path & -\\
- RESET\_ALL & Reset complete \acs{NoC} and all tiles & -\\
- RESET\_TILE & Reset current tile & -\\
- \bottomrule
- \end{tabular}
- \caption{Commands}
- \label{tab:commandsLimited}
- \end{table}
- \end{frame}
-
-
- \begin{frame}{Ring network}
- \begin{columns}
- \column{.8\textwidth}
- \begin{itemize}
- \item The ring network, from the University of Twente, can be used for configuration too:
- \begin{itemize}
- \item Pros:
- \begin{itemize}
- \item No setting up paths.
- \item Not only configuration data.
- \item Needs small area on chip ($0.003 mm^2$).
- \item High clock speed possible (1GHz).
- \item No central control of the network.
- \end{itemize}
- \item Cons:
- \begin{itemize}
- \item Routes not optimal.
- \end{itemize}
- \end{itemize}
- \end{itemize}
- \column{.2\textwidth}
- \begin{center}
- \tikzstyle{place}=[circle,draw=blue!50,fill=blue!20,thick]
- \tikzstyle{transition}=[rectangle,draw=black!50,fill=black!20,thick]
- \begin{tikzpicture}[>=stealth,scale=.4,transform shape]
- \node[place] (1) at (-1,-2) {};
- \node[place] (2) at ( 1,-2) {};
- \node[place] (3) at ( 2,-1) {};
- \node[place] (4) at ( 2, 1) {};
- \node[place] (5) at ( 1, 2) {};
- \node[place] (6) at (-1, 2) {};
- \node[place] (7) at (-2, 1) {};
- \node[place] (8) at (-2,-1) {};
- \foreach \from/\to in {1/2,2/3,3/4,4/5,5/6,6/7,7/8,8/1}
- \draw (\from) -- (\to);
- \end{tikzpicture}
- \end{center}
- \end{columns}
- \end{frame}
- \begin{frame}
- \only<1>{\begin{center}
- \begin{tikzpicture}[>=stealth,scale=0.5,transform shape]
- \foreach \x in {0,1,...,7}
- \foreach \y in {0,1,...,7}
- \draw (\y,\x) circle (0.3)[draw=blue!50,fill=blue!20,thick];
- \draw (0,-1) circle (0.3)[draw=blue!50,fill=blue!20,thick];
- \draw (0,-1) node {CU};
- \draw (0,7) node {A};
- \draw (7,0) node {B};
- %\draw[->,color=red,dashed,very thick] (0,0) -- (0,7);
- \draw[color=black!0] (0,-.5) -- (1,-.5);
- \foreach \x in {0,...,6}
- \foreach \y in {0,...,7}
- \draw (\y,\x)+(0,0.3) -- +(0,0.7);
- \foreach \x in {0,...,7}
- \foreach \y in {0,...,6}
- \draw (\y,\x)+(0.3,0) -- +(0.7,0);
-
- %\draw[very thick,->] (0,7) -- (7,7) -- (7,0);
-
- \end{tikzpicture}
- \begin{tikzpicture}[>=stealth,scale=0.5,transform shape]
- \foreach \x in {0,1,...,7}
- \foreach \y in {0,1,...,7}
- \draw (\y,\x) circle (0.3)[draw=blue!50,fill=blue!20,thick];
- \draw (0,-1) circle (0.3)[draw=blue!50,fill=blue!20,thick];
- \draw (0,-1) node {CU};
- \draw (0,7) node {A};
- \draw (7,0) node {B};
- %\draw[very thick,->] (0,7) -- (0,0) -- (7,0);
- %ring-net lines
- \foreach \x in {0,...,5}
- \foreach \y in {0,...,7}
- \draw (\y,\x)+(0,0.3) -- +(0,0.7);
- \draw (0,6)+(0,0.3) -- +(0,0.7);
- \draw (7,6)+(0,0.3) -- +(0,0.7);
- \foreach \x in {0,2,4,6} \draw (\x,0)+(0.3,0) -- +(0.7,0);
- \foreach \x in {1,3,5} \draw (\x,6)+(0.3,0) -- +(0.7,0);
- \foreach \x in {0,...,6} \draw (\x,7)+(0.3,0) -- +(0.7,0);
-
- \draw[color=black!0] (0,-.5) -- (1,-.5);
- \end{tikzpicture}
- \end{center}}
- \only<2>{\begin{center}
- \begin{tikzpicture}[>=stealth,scale=0.5,transform shape]
- \foreach \x in {0,1,...,7}
- \foreach \y in {0,1,...,7}
- \draw (\y,\x) circle (0.3)[draw=blue!50,fill=blue!20,thick];
- \draw (0,-1) circle (0.3)[draw=blue!50,fill=blue!20,thick];
- \draw (0,-1) node {CU};
- \draw (0,7) node {A};
- \draw (7,0) node {B};
- \draw[->,color=red,dashed,very thick] (0,0) -- (0,7);
- \draw[color=black!0] (0,-.5) -- (1,-.5);
- \foreach \x in {0,...,6}
- \foreach \y in {0,...,7}
- \draw (\y,\x)+(0,0.3) -- +(0,0.7);
- \foreach \x in {0,...,7}
- \foreach \y in {0,...,6}
- \draw (\y,\x)+(0.3,0) -- +(0.7,0);
-
- \draw[very thick,->] (0,7) -- (7,7) -- (7,0);
-
- \end{tikzpicture}
- \begin{tikzpicture}[>=stealth,scale=0.5,transform shape]
- \foreach \x in {0,1,...,7}
- \foreach \y in {0,1,...,7}
- \draw (\y,\x) circle (0.3)[draw=blue!50,fill=blue!20,thick];
- \draw (0,-1) circle (0.3)[draw=blue!50,fill=blue!20,thick];
- \draw (0,-1) node {CU};
- \draw (0,7) node {A};
- \draw (7,0) node {B};
- \draw[very thick,->] (0,7) -- (0,0) -- (7,0);
- %ring-net lines
- \foreach \x in {0,...,5}
- \foreach \y in {0,...,7}
- \draw (\y,\x)+(0,0.3) -- +(0,0.7);
- \draw (0,6)+(0,0.3) -- +(0,0.7);
- \draw (7,6)+(0,0.3) -- +(0,0.7);
- \foreach \x in {0,2,4,6} \draw (\x,0)+(0.3,0) -- +(0.7,0);
- \foreach \x in {1,3,5} \draw (\x,6)+(0.3,0) -- +(0.7,0);
- \foreach \x in {0,...,6} \draw (\x,7)+(0.3,0) -- +(0.7,0);
-
- \draw[color=black!0] (0,-.5) -- (1,-.5);
- \end{tikzpicture}
- \end{center}}
- \end{frame}
- \begin{frame}
- \begin{center}
- %\includegraphics[scale=.7]{results/conftimes2}
- \end{center}
- \end{frame}
- \small
- \begin{frame}{Synthesis results at 500MHz}
- \begin{table} [ht]
- \centering
- \begin{tabular}{lll}
- \toprule
- Component & Slack (ns) & Area ($mm^2$)\\
- \midrule
- Packet switched (Kavaldjiev) & 0.00 & 0.2133\\
- Small packet switched (Kavaldjiev) & 0.00 & 0.0769\\
- Circuit switched (Annabelle) & 0.42 & 0.0254\\
- Circuit switched SingleReg (thesis) & 0.35 & 0.0393\\
- Circuit switched DoubleReg (thesis) & 0.03 & 0.0681\\
- \midrule
- Ring configuration & 0.96 & 0.0030\\
- \acs{CSDCrouter} & 0.85 & 0.0021\\
- %\acs{CSDCrouter} with TTL & 0.26 & 0.0090\\
-
-
- \bottomrule
- \end{tabular}
- \caption{Results of 90nm ASIC technology from TSMC at 500MHz}
- \end{table}
- \end{frame}
- \begin{frame}{Synthesis results at 1000MHz}
- \begin{table} [ht]
- \centering
- \begin{tabular}{lll}
- \toprule
- Component & Slack (ns) & Area ($mm^2$)\\
- \midrule
- Packet switched (Kavaldjiev) & -0.66 & 0.2174 \\
- Small packet switched (Kavaldjiev) & -0.67 & 0.0812\\
- Circuit switched (Annabelle) & 0.00 & 0.0265\\
- Circuit switched SingleReg (thesis) & 0.00 & 0.0423\\
- Circuit switched DoubleReg (thesis) & 0.00 & 0.0837\\
- \midrule
- Ring configuration & 0.02 & 0.0030\\
- \acs{CSDCrouter} & 0.01 & 0.0022\\
- %\acs{CSDCrouter} with TTL & -0.17 & 0.0098\\
- \bottomrule
- \end{tabular}
- \caption{Results of 90nm ASIC technology from TSMC at 1000MHz}
- \label{tabASIC1000}
- \end{table}
- \end{frame}
- \normalsize
-
-\section{Conclusion}
- \begin{frame}{Flow control}
- \begin{itemize}
- \item DirectAck is not scalable, but good for very small \acp{NoC}.\onslide<2->
- \item Single register is slower, but usable for any size of \ac{NoC}.\onslide<3->
- \item Double register requires twice as much area, but is fast and usable for any size of \ac{NoC}.\onslide<4->
- \item Windowed transmission requires very much buffer area in the tiles, and is therefore not recommended.\onslide<5->
- \end{itemize}
- Scalable flow control always requires two buffers or two clock cycles.
- \end{frame}
- \begin{frame}{Choosing a NoC}
- \begin{itemize}
- \item Best Effort (BE) traffic:
- \begin{itemize}
- \item Much BE traffic: use Packet Switched.\onslide<2->
- \item Some control BE traffic: use SAnet with ring network.\onslide<3->
- \item No BE traffic: use SAnet with CSDCnet.\onslide<4->
- \item Some BE traffic can also be routed efficiently using circuits in the circuit switched network, bursts for example.\onslide<5->
- \item CSDCnet does not support connections initiated from the tiles.\onslide<6->
- \end{itemize}
- \item Guaranteed Service (GS) traffic:
- \begin{itemize}
- \item High bandwidth streams: use circuit switched;
- \begin{itemize}
- \item Circuit switched has 4 outputs per port.
- \item Circuit switched can be clocked at 1GHz.\onslide<7->
- \end{itemize}
- \item Low bandwidth streams: use packet switched;
- \begin{itemize}
- \item Streams can be multiplexed.
- \end{itemize}
-
- \end{itemize}
- \end{itemize}
- \end{frame}
+% \begin{frame}{Configuring a NoC with CSDCnet}
+% \begin{itemize}
+% \item Configuration using relative addressing
+% \item Configuration using commands
+% \item Two states for CSDCrouters:
+% \begin{itemize}
+% \item \emph{passthrough mode}
+% \item \emph{execute command mode}
+% \end{itemize}
+% \end{itemize}
+% \end{frame}
+% \begin{frame}[shrink=33]{Commands of CSDCnet}
+% \vspace{2cm}
+% \begin{table}
+% \centering
+% \begin{tabular}{lll} \toprule
+% Command name & Command description & Parameters (Length in bits)\\
+% \midrule
+% CONFIG & Configure current data router & configuration data (11)\\
+% DESTROY & Destroy complete configuration path & -\\
+% EXTEND & Extend configuration path & direction to extend to (3)\\
+% REMOVE & Remove the last router from path & -\\
+% RESET\_ALL & Reset complete \acs{NoC} and all tiles & -\\
+% RESET\_TILE & Reset current tile & -\\
+% \bottomrule
+% \end{tabular}
+% \caption{Commands}
+% \label{tab:commandsLimited}
+% \end{table}
+% \end{frame}
+%
+%
+% \begin{frame}{Ring network}
+% \begin{columns}
+% \column{.8\textwidth}
+% \begin{itemize}
+% \item The ring network, from the University of Twente, can be used for configuration too:
+% \begin{itemize}
+% \item Pros:
+% \begin{itemize}
+% \item No setting up paths.
+% \item Not only configuration data.
+% \item Needs small area on chip ($0.003 mm^2$).
+% \item High clock speed possible (1GHz).
+% \item No central control of the network.
+% \end{itemize}
+% \item Cons:
+% \begin{itemize}
+% \item Routes not optimal.
+% \end{itemize}
+% \end{itemize}
+% \end{itemize}
+% \column{.2\textwidth}
+% \begin{center}
+% \tikzstyle{place}=[circle,draw=blue!50,fill=blue!20,thick]
+% \tikzstyle{transition}=[rectangle,draw=black!50,fill=black!20,thick]
+% \begin{tikzpicture}[>=stealth,scale=.4,transform shape]
+% \node[place] (1) at (-1,-2) {};
+% \node[place] (2) at ( 1,-2) {};
+% \node[place] (3) at ( 2,-1) {};
+% \node[place] (4) at ( 2, 1) {};
+% \node[place] (5) at ( 1, 2) {};
+% \node[place] (6) at (-1, 2) {};
+% \node[place] (7) at (-2, 1) {};
+% \node[place] (8) at (-2,-1) {};
+% \foreach \from/\to in {1/2,2/3,3/4,4/5,5/6,6/7,7/8,8/1}
+% \draw (\from) -- (\to);
+% \end{tikzpicture}
+% \end{center}
+% \end{columns}
+% \end{frame}
+% \begin{frame}
+% \only<1>{\begin{center}
+% \begin{tikzpicture}[>=stealth,scale=0.5,transform shape]
+% \foreach \x in {0,1,...,7}
+% \foreach \y in {0,1,...,7}
+% \draw (\y,\x) circle (0.3)[draw=blue!50,fill=blue!20,thick];
+% \draw (0,-1) circle (0.3)[draw=blue!50,fill=blue!20,thick];
+% \draw (0,-1) node {CU};
+% \draw (0,7) node {A};
+% \draw (7,0) node {B};
+% %\draw[->,color=red,dashed,very thick] (0,0) -- (0,7);
+% \draw[color=black!0] (0,-.5) -- (1,-.5);
+% \foreach \x in {0,...,6}
+% \foreach \y in {0,...,7}
+% \draw (\y,\x)+(0,0.3) -- +(0,0.7);
+% \foreach \x in {0,...,7}
+% \foreach \y in {0,...,6}
+% \draw (\y,\x)+(0.3,0) -- +(0.7,0);
+%
+% %\draw[very thick,->] (0,7) -- (7,7) -- (7,0);
+%
+% \end{tikzpicture}
+% \begin{tikzpicture}[>=stealth,scale=0.5,transform shape]
+% \foreach \x in {0,1,...,7}
+% \foreach \y in {0,1,...,7}
+% \draw (\y,\x) circle (0.3)[draw=blue!50,fill=blue!20,thick];
+% \draw (0,-1) circle (0.3)[draw=blue!50,fill=blue!20,thick];
+% \draw (0,-1) node {CU};
+% \draw (0,7) node {A};
+% \draw (7,0) node {B};
+% %\draw[very thick,->] (0,7) -- (0,0) -- (7,0);
+% %ring-net lines
+% \foreach \x in {0,...,5}
+% \foreach \y in {0,...,7}
+% \draw (\y,\x)+(0,0.3) -- +(0,0.7);
+% \draw (0,6)+(0,0.3) -- +(0,0.7);
+% \draw (7,6)+(0,0.3) -- +(0,0.7);
+% \foreach \x in {0,2,4,6} \draw (\x,0)+(0.3,0) -- +(0.7,0);
+% \foreach \x in {1,3,5} \draw (\x,6)+(0.3,0) -- +(0.7,0);
+% \foreach \x in {0,...,6} \draw (\x,7)+(0.3,0) -- +(0.7,0);
+%
+% \draw[color=black!0] (0,-.5) -- (1,-.5);
+% \end{tikzpicture}
+% \end{center}}
+% \only<2>{\begin{center}
+% \begin{tikzpicture}[>=stealth,scale=0.5,transform shape]
+% \foreach \x in {0,1,...,7}
+% \foreach \y in {0,1,...,7}
+% \draw (\y,\x) circle (0.3)[draw=blue!50,fill=blue!20,thick];
+% \draw (0,-1) circle (0.3)[draw=blue!50,fill=blue!20,thick];
+% \draw (0,-1) node {CU};
+% \draw (0,7) node {A};
+% \draw (7,0) node {B};
+% \draw[->,color=red,dashed,very thick] (0,0) -- (0,7);
+% \draw[color=black!0] (0,-.5) -- (1,-.5);
+% \foreach \x in {0,...,6}
+% \foreach \y in {0,...,7}
+% \draw (\y,\x)+(0,0.3) -- +(0,0.7);
+% \foreach \x in {0,...,7}
+% \foreach \y in {0,...,6}
+% \draw (\y,\x)+(0.3,0) -- +(0.7,0);
+%
+% \draw[very thick,->] (0,7) -- (7,7) -- (7,0);
+%
+% \end{tikzpicture}
+% \begin{tikzpicture}[>=stealth,scale=0.5,transform shape]
+% \foreach \x in {0,1,...,7}
+% \foreach \y in {0,1,...,7}
+% \draw (\y,\x) circle (0.3)[draw=blue!50,fill=blue!20,thick];
+% \draw (0,-1) circle (0.3)[draw=blue!50,fill=blue!20,thick];
+% \draw (0,-1) node {CU};
+% \draw (0,7) node {A};
+% \draw (7,0) node {B};
+% \draw[very thick,->] (0,7) -- (0,0) -- (7,0);
+% %ring-net lines
+% \foreach \x in {0,...,5}
+% \foreach \y in {0,...,7}
+% \draw (\y,\x)+(0,0.3) -- +(0,0.7);
+% \draw (0,6)+(0,0.3) -- +(0,0.7);
+% \draw (7,6)+(0,0.3) -- +(0,0.7);
+% \foreach \x in {0,2,4,6} \draw (\x,0)+(0.3,0) -- +(0.7,0);
+% \foreach \x in {1,3,5} \draw (\x,6)+(0.3,0) -- +(0.7,0);
+% \foreach \x in {0,...,6} \draw (\x,7)+(0.3,0) -- +(0.7,0);
+%
+% \draw[color=black!0] (0,-.5) -- (1,-.5);
+% \end{tikzpicture}
+% \end{center}}
+% \end{frame}
+% \begin{frame}
+% \begin{center}
+% %\includegraphics[scale=.7]{results/conftimes2}
+% \end{center}
+% \end{frame}
+% \small
+% \begin{frame}{Synthesis results at 500MHz}
+% \begin{table} [ht]
+% \centering
+% \begin{tabular}{lll}
+% \toprule
+% Component & Slack (ns) & Area ($mm^2$)\\
+% \midrule
+% Packet switched (Kavaldjiev) & 0.00 & 0.2133\\
+% Small packet switched (Kavaldjiev) & 0.00 & 0.0769\\
+% Circuit switched (Annabelle) & 0.42 & 0.0254\\
+% Circuit switched SingleReg (thesis) & 0.35 & 0.0393\\
+% Circuit switched DoubleReg (thesis) & 0.03 & 0.0681\\
+% \midrule
+% Ring configuration & 0.96 & 0.0030\\
+% \acs{CSDCrouter} & 0.85 & 0.0021\\
+% %\acs{CSDCrouter} with TTL & 0.26 & 0.0090\\
+%
+%
+% \bottomrule
+% \end{tabular}
+% \caption{Results of 90nm ASIC technology from TSMC at 500MHz}
+% \end{table}
+% \end{frame}
+% \begin{frame}{Synthesis results at 1000MHz}
+% \begin{table} [ht]
+% \centering
+% \begin{tabular}{lll}
+% \toprule
+% Component & Slack (ns) & Area ($mm^2$)\\
+% \midrule
+% Packet switched (Kavaldjiev) & -0.66 & 0.2174 \\
+% Small packet switched (Kavaldjiev) & -0.67 & 0.0812\\
+% Circuit switched (Annabelle) & 0.00 & 0.0265\\
+% Circuit switched SingleReg (thesis) & 0.00 & 0.0423\\
+% Circuit switched DoubleReg (thesis) & 0.00 & 0.0837\\
+% \midrule
+% Ring configuration & 0.02 & 0.0030\\
+% \acs{CSDCrouter} & 0.01 & 0.0022\\
+% %\acs{CSDCrouter} with TTL & -0.17 & 0.0098\\
+% \bottomrule
+% \end{tabular}
+% \caption{Results of 90nm ASIC technology from TSMC at 1000MHz}
+% \label{tabASIC1000}
+% \end{table}
+% \end{frame}
+% \normalsize
+%
+%\section{Conclusion}
+% \begin{frame}{Flow control}
+% \begin{itemize}
+% \item DirectAck is not scalable, but good for very small \acp{NoC}.\onslide<2->
+% \item Single register is slower, but usable for any size of \ac{NoC}.\onslide<3->
+% \item Double register requires twice as much area, but is fast and usable for any size of \ac{NoC}.\onslide<4->
+% \item Windowed transmission requires very much buffer area in the tiles, and is therefore not recommended.\onslide<5->
+% \end{itemize}
+% Scalable flow control always requires two buffers or two clock cycles.
+% \end{frame}
+% \begin{frame}{Choosing a NoC}
+% \begin{itemize}
+% \item Best Effort (BE) traffic:
+% \begin{itemize}
+% \item Much BE traffic: use Packet Switched.\onslide<2->
+% \item Some control BE traffic: use SAnet with ring network.\onslide<3->
+% \item No BE traffic: use SAnet with CSDCnet.\onslide<4->
+% \item Some BE traffic can also be routed efficiently using circuits in the circuit switched network, bursts for example.\onslide<5->
+% \item CSDCnet does not support connections initiated from the tiles.\onslide<6->
+% \end{itemize}
+% \item Guaranteed Service (GS) traffic:
+% \begin{itemize}
+% \item High bandwidth streams: use circuit switched;
+% \begin{itemize}
+% \item Circuit switched has 4 outputs per port.
+% \item Circuit switched can be clocked at 1GHz.\onslide<7->
+% \end{itemize}
+% \item Low bandwidth streams: use packet switched;
+% \begin{itemize}
+% \item Streams can be multiplexed.
+% \end{itemize}
+%
+% \end{itemize}
+% \end{itemize}
+% \end{frame}