\section{Host Memory Bottleneck}

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

   \begin{sitem}
      \item Issue
      \begin{sitem}
         \item turning host-to-host bandwidth into application-to-application
               bandwidth
         \item have to deliver data across I/O and memory buses into cache and
               registers
      \end{sitem}

      \pichere{alpha.eps,height=2in}
   \end{sitem}
\end{slide}
% -----------------------------------------------------------------
\begin{slide}{}

   \begin{sitem}
      \item Memory bandwidth
      \begin{sitem}
         \item I/O bus must keep up with network speed (currently does
               for STS-12, assuming peak rate is achievable)
         \item 114MBps (measured number) is only slightly faster than I/O
               bus; can't afford to go across memory bus twice
         \item caches are of questionable value (rather small)
         \item lots of reason to access buffers
         \begin{sitem}
            \item user/kernel boundary
            \item certain protocols (reassembly, checksumming)
            \item network device and its driver
         \end{sitem}
      \end{sitem}
      \item Same latency/bandwidth problems as high-speed networks
   \end{sitem}
\end{slide}
% -----------------------------------------------------------------
\begin{slide}{}

   \subsection{Techniques for Avoiding Data Transfers}

   \begin{sitem}
      \item Device/memory transfers
      \begin{sitem}
         \item mechanism: DMA vs PIO
         \item transfer size: cell vs packet
      \end{sitem}

      \item Cross-domain transfers
      \pichere{domains.eps,height=3in}
   \end{sitem}
\end{slide}
% -----------------------------------------------------------------
\begin{slide}{}

   \begin{sitem}
      \begin{sitem}
         \item page remapping
         \pichere{remap.eps,height=2.5in}
         \item shared memory
         \pichere{shared.eps,height=2.5in}
         \item dynamic page sharing (fbufs)
      \end{sitem}
   \end{sitem}
\end{slide}
% -----------------------------------------------------------------
\begin{slide}{}

   \begin{sitem}
      \item Data manipulations
      \begin{sitem}
         \item compression, encryption, checksum, presentation formatting
         \item involves memory loads and stores
         \item integrated layer processing (ILP)
         \pichere{ilp.eps,height=4in}
      \end{sitem}

      \item API design
      \begin{sitem}
         \item write: application reuses buffer
         \item read: application specifies buffer
      \end{sitem}
   \end{sitem}
\end{slide}

