\section{Switching Hardware}

% -----------------------------------------------------------------
\begin{slide}{}

   \subsection{Overview}

   \begin{sitem}
      \item Terminology: $n \times m$ switch has $n$ inputs and $m$ outputs

      \item Design Goals
      \begin{sitem}
         \item throughput (depends on traffic model)
         \item scalability (a function of $n$)
      \end{sitem}

      \item Ports and Fabrics
      \pichere{portfab.eps,height=2in}

      \begin{sitem}
         \item ports
         \begin{sitem}
            \item circuit management (e.g., map VCIs, route datagrams)
            \item buffering (input and/or output)
         \end{sitem}
         \item fabric
         \begin{sitem}
            \item as simple as possible
            \item sometimes do buffering (internal)
         \end{sitem}
      \end{sitem}
   \end{sitem}
\end{slide}

% -----------------------------------------------------------------
\begin{slide}{}

   \subsection{Buffering}

   \begin{sitem}
      \item Wherever contention is possible
      \begin{sitem}
         \item input port (contend for fabric)
         \item internal (contend for output port)
         \item output port (contend for link)
      \end{sitem}
         
      \bigskip
      \item Head-of-Line Blocking
      \begin{sitem}
         \item input buffering
      \end{sitem}

      \pichere{hol.eps,height=1.5in} 
   \end{sitem} 
\end{slide}

% -----------------------------------------------------------------
\begin{slide}{}

   \subsection{Crossbar Switches}

   \pichere{xbar.eps,height=3.5in}

\end{slide}

% -----------------------------------------------------------------
\begin{slide}{}

   \subsection{Knockout Switch}

   \begin{sitem}
      \item Example of Crossbar
      \item Concentrator: select $l$ of $n$ packets
      \pichere{knockout.eps,height=5in}
      \item Complexity: $n^2$
   \end{sitem}
\end{slide}

% -----------------------------------------------------------------
\begin{slide}{}

   \begin{sitem}
      \item Output Buffer
      \pichere{knockbuf.eps,height=4in}
   \end{sitem}
\end{slide}

% -----------------------------------------------------------------
\begin{slide}{}

   \subsection{Self-Routing Fabrics}

   \begin{sitem}
      \item Banyan Network
      \begin{sitem}
         \item constructed from simple $2 \times 2$ switching elements
         \item self-routing header attached to each packet
         \item elements arranged to route based on this header
         \item no collisions if input packets sorted into ascending order
         \item complexity: $n\log_{2}n$
      \end{sitem}
      \pichere{banyaneg.eps,height=3in}
   \end{sitem}
\end{slide}

% -----------------------------------------------------------------
\begin{slide}{}

   \begin{sitem}
      \item Batcher Network
      \begin{sitem}
         \item switching elements sort two numbers
         \begin{sitem}
            \item some elements sort into ascending (clear)
            \item some elements sort into descending (shaded)
         \end{sitem}
         \item elements arranged to implement merge sort
         \item complexity: $n\log_{2}^{2}n$
      \end{sitem}         
      \pichere{batcher,height=3in}
      \bigskip
      \item Common Design: Batcher-Banyan Switching Fabric
   \end{sitem}
\end{slide}

% -----------------------------------------------------------------
\begin{slide}{}

   \begin{sitem}
      \item Sunshine Switch
   \end{sitem}
   \pichere{sunshine.eps,height=2in}
\end{slide}


% -----------------------------------------------------------------
\begin{slide}{}

   \subsection{Shared Media Switches}

   \pichere{memswitch.eps,height=3.5in}
\end{slide}