summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorManuel Traut <manut@mecka.net>2011-02-09 01:28:15 +0100
committerManuel Traut <manut@mecka.net>2011-02-09 01:28:15 +0100
commita67b9e7e770e921a021e22deec3d1f6c24b0c6df (patch)
tree022c8975bbf13cf158f6c731fe92b4546126a56e
parent8ce0b83b12e1c2d5eb91dd87326b0a9f03de1722 (diff)
update basics/cpu-arch
- thx to jan, for the arm arch slides - short mmu introduction Signed-off-by: Manuel Traut <manut@mecka.net>
-rw-r--r--basics/cpu-arch/pres_cpu-arch.tex122
-rw-r--r--images/caches.diabin0 -> 2379 bytes
-rw-r--r--images/caches.pngbin0 -> 5870 bytes
-rw-r--r--images/fcse.diabin0 -> 1175 bytes
-rw-r--r--images/fcse.pngbin0 -> 4187 bytes
5 files changed, 117 insertions, 5 deletions
diff --git a/basics/cpu-arch/pres_cpu-arch.tex b/basics/cpu-arch/pres_cpu-arch.tex
index 70f2bcc..cbbada3 100644
--- a/basics/cpu-arch/pres_cpu-arch.tex
+++ b/basics/cpu-arch/pres_cpu-arch.tex
@@ -149,16 +149,128 @@ Nachteil: Speicherbedarf Pointer
\begin{frame}
\frametitle{Memory Managemenut Unit (MMU)}
\begin{itemize}
-\item blurb
+\item Prozess sieht zusammenh\"angenden, konstanten, virtuellen Speicher
+\item Kernel programmiert den TLB (Translation Look-aside Buffer) der MMU
+\item Speicherzugriff auf virtuelle Adresse wird von der MMU in tats\"achliche,
+ physikalische Adresse \"ubersetzt
\end{itemize}
\end{frame}
\subsubsection{ARM, PowerPC / CELL, x86}
+
+\begin{frame}
+\frametitle{ARM - Advanced RISC Machines Ltd.}
+\begin{itemize}
+\item erstellt CPU Design
+\item ARM Architektur:
+\begin{itemize}
+\item Handy, Smartphone, Nintendo DS, iPad, \dots
+\item RISC - schlanker, effizienter Befehlssatz
+\item LE / BE umschaltbar
+\end{itemize}
+\end{itemize}
+\end{frame}
+
+\begin{frame}
+\frametitle{ARM: ARM9}
+\begin{itemize}
+\item 32-bit RISC CPU design
+\item ARM9T (based on ARMv4T)
+\item ARM9E (based on ARMv5TE, longer pipelines, enhanced instruction set)
+\end{itemize}
+\end{frame}
+
+\subsection{ARM: Xscale}
+\begin{frame}
+\frametitle{Xscale}
+\begin{itemize}
+\item Xscale is Marvell's implementation of the ARMv5 architecture
+\item The Xscale family consists of five different families:
+\begin{itemize}
+\item IXP (network processors)
+\item IXC (control plane processors)
+\item IOP (i/o processors)
+\item PXA (application processors)
+\item CE (consumer electronics processors)
+\end{itemize}
+\end{itemize}
+\end{frame}
+
+\begin{frame}
+\frametitle{ARM: ARM9 - Caches}
+\begin{itemize}
+\item V irtually I ndexed, V irtually T agged (VIVT)
+\end{itemize}
+\end{frame}
+
+\begin{frame}
+\frametitle{ARM: Caches}
+\begin{figure}[h]
+\centering
+\includegraphics[width=11cm]{images/caches.png}
+\label{img:caches}
+\end{figure}
+\end{frame}
+
+\begin{frame}
+\frametitle{ARM: ARM9 - Caches: Latency drawbacks}
+\begin{itemize}
+\item BUT: On Linux each process has its own virtual address space.
+\pause
+\item VIVT leads to a more frequent cache flushing
+\pause
+\item The cost of the cache flushing is about 1k - 18k CPU cycles
+\pause
+\item ''indirect cost'' up to 50k CPU cycles\\
+(200us on a 250MHz CPU!!)
+\end{itemize}
+\end{frame}
+
+\begin{frame}
+\frametitle{ARM: ARM9 - Fast Context Switching Extension}
+\begin{figure}[h]
+\centering
+\includegraphics[width=11cm]{images/fcse.png}
+\label{img:fcse}
+\end{figure}
+\pause
+\begin{itemize}
+\item The first 32MB of the address space are augmented with the contents of the 7 bit
+PID register.
+\pause
+\item This leads to 128 x 32MB address spaces
+\end{itemize}
+\end{frame}
+
+\begin{frame}
+\frametitle{ARM: ARM11}
+\begin{itemize}
+\item V irtually I ndexed, P hysically T agged caches (VIPT)
+\item High performance memory system
+\item Designed to run at high CPU frequencies
+\end{itemize}
+\end{frame}
+
+\begin{frame}
+\frametitle{ARM: Cortex - The new generation of ARM CPUs}
+Splitted into three families:
+\begin{itemize}
+\item Cortex A: Application (variable caches, MMU / MPU)
+\item Cortex M: Microcontroller (no cache, MPU optional)
+\item Cortex R: Realtime (variable cache, MPU optional)
+\end{itemize}
+\end{frame}
+
+\begin{frame}
+\frametitle{PowerPC}
+\end{frame}
+
+\begin{frame}
+\frametitle{CELL}
+\end{frame}
+
\begin{frame}
-\frametitle{ARM}
-\begin{enumerate}
-\item v1
-\end{enumerate}
+\frametitle{x86}
\end{frame}
\subsubsection{Voraussetzungen f\"ur Linux}
diff --git a/images/caches.dia b/images/caches.dia
new file mode 100644
index 0000000..a990772
--- /dev/null
+++ b/images/caches.dia
Binary files differ
diff --git a/images/caches.png b/images/caches.png
new file mode 100644
index 0000000..37d266a
--- /dev/null
+++ b/images/caches.png
Binary files differ
diff --git a/images/fcse.dia b/images/fcse.dia
new file mode 100644
index 0000000..418be7d
--- /dev/null
+++ b/images/fcse.dia
Binary files differ
diff --git a/images/fcse.png b/images/fcse.png
new file mode 100644
index 0000000..85d6997
--- /dev/null
+++ b/images/fcse.png
Binary files differ