% !TEX root = dt-slides-cpu.tex %\begin{frame} %\titlepage %\end{frame} \section{CPU Architektur} \begin{frame} \frametitle{CPU Architektur} \begin{center} \Huge CPU Architektur \end{center} \end{frame} \begin{frame} \frametitle{Microprocessor Trend Data} \begin{center} \includegraphics[width=.9\textwidth]{cpuarch/50-years-processor-trend} \end{center} \tiny{source: K. Rupp \url{https://www.karlrupp.net/2018/02/42-years-of-microprocessor-trend-data/} CC-BY-4.0} \end{frame} \begin{frame} \frametitle{Apple SoC CPU vs Spezialhardware} \begin{center} \includegraphics[width=1.0\textwidth]{cpuarch/appleacc} \end{center} \tiny{source: Apple / IRDS 2022 Executive Summary} \end{frame} \begin{frame} \frametitle{General Purpose CPU / Spezialhardware} \begin{center} \includegraphics[width=1.0\textwidth]{cpuarch/gpcpu-customsilicon} \end{center} \tiny{source: Broadcom / IRDS 2022 Executive Summary} \end{frame} \begin{frame} \frametitle{CPU Architektur} \begin{center} \Huge Was ist denn jetzt die CPU? \end{center} \end{frame} \begin{frame} \frametitle{Compiler, Assembler, Maschinensprache} %\begin{center} \begin{tikzpicture} \node (c2m-c) at (0,0) {\includegraphics[width=0.5\textwidth]{cpuarch/c2m-c}}; \node (c2m-a) at (0,-3) {\includegraphics[width=0.5\textwidth]{cpuarch/c2m-a}}; \node (c2m-m) at (0,-6) {\includegraphics[width=0.5\textwidth]{cpuarch/c2m-m}}; \path [->] (c2m-c) edge[out=190,in=170] node[left] {Compiler} (c2m-a); \path [->] (c2m-a) edge[out=190,in=170] node[left] {Assembler} (c2m-m); \end{tikzpicture} \tiny{source: Patterson und Hennessy, Rechnerorganisation und Rechnerentwurf, Seite 15, 2014} %\end{center} \end{frame} \begin{frame} \frametitle{Das C Programm} %\begin{center} \includegraphics[width=0.5\textwidth]{cpuarch/c2m-c} %\end{center} \end{frame} \begin{frame} \frametitle{Das Rust Programm - hier mit Extrachecks} %\begin{center} \includegraphics[width=0.5\textwidth]{cpuarch/c2m-rust} %\end{center} \end{frame} \begin{frame} \frametitle{Compiler Explorer - C für RISC-V} %\begin{center} \includegraphics[width=1.0\textwidth]{cpuarch/compiler-explorer-c-riscv} \tiny{source: Compiler Explorer: \url{https://godbolt.org}} %\end{center} \end{frame} \begin{frame} \frametitle{Compiler Explorer - Rust für ARM7} %\begin{center} \includegraphics[width=1.0\textwidth]{cpuarch/compiler-explorer-rust-arm7} \tiny{source: Compiler Explorer: \url{https://godbolt.org}} %\end{center} \end{frame} \begin{frame} \frametitle{Prozessorsystem} %\begin{center} \includegraphics[width=1.0\textwidth]{cpuarch/hoffmann-mikroprozessorsystem} \tiny{source: Dirk Hoffmann, Grundlagen der Technischen Informatik, 2023, Hanser Verlag, Kap. 11} %\end{center} \end{frame} \begin{frame} \frametitle{Prozessorsystem} %\begin{center} \includegraphics[width=1.0\textwidth]{cpuarch/hoffmann-cpu} \tiny{source: Dirk Hoffmann, Grundlagen der Technischen Informatik, 2023, Hanser Verlag, Kap. 11} %\end{center} \end{frame} \begin{frame} \frametitle{MIPS - 32 Register} %\begin{center} \includegraphics[width=1.0\textwidth]{cpuarch/mips-register} \tiny{source: Patterson und Hennessy, Rechnerorganisation und Rechnerentwurf, 2014} %\end{center} \end{frame} \begin{frame} \frametitle{MIPS - Befehlskodierung - Teil 1} %\begin{center} \includegraphics[width=1.0\textwidth]{cpuarch/mips-instr1} \tiny{source: Patterson und Hennessy, Rechnerorganisation und Rechnerentwurf, 2014} %\end{center} \end{frame} \begin{frame} \frametitle{MIPS - Befehle - Teil 1} %\begin{center} \includegraphics[width=1.0\textwidth]{cpuarch/mips-instr-overview1} \tiny{source: Patterson und Hennessy, Rechnerorganisation und Rechnerentwurf, 2014} %\end{center} \end{frame} \begin{frame} \frametitle{MIPS - Befehle - Teil 2} %\begin{center} \includegraphics[width=1.0\textwidth]{cpuarch/mips-instr-overview-head} \includegraphics[width=1.0\textwidth]{cpuarch/mips-instr-overview2} \tiny{source: Patterson und Hennessy, Rechnerorganisation und Rechnerentwurf, 2014} %\end{center} \end{frame} \begin{frame} \frametitle{CPU Architektur} \begin{center} \Huge CPU Aufbau \end{center} \end{frame} \begin{frame} \frametitle{CPU Aufbau - Übersicht} %\begin{center} \includegraphics[width=1.0\textwidth]{cpuarch/a-overview} \tiny{source: Patterson und Hennessy, Rechnerorganisation und Rechnerentwurf, 2014} %\end{center} \end{frame} \begin{frame} \frametitle{CPU Aufbau - Übersicht - Multiplexer} %\begin{center} \includegraphics[width=0.9\textwidth]{cpuarch/a-overview-mux} \tiny{source: Patterson und Hennessy, Rechnerorganisation und Rechnerentwurf, 2014} %\end{center} \end{frame} \begin{frame} \frametitle{CPU Aufbau - Befehlszähler } %\begin{center} \includegraphics[width=0.7\textwidth]{cpuarch/a-icounter} \tiny{source: Patterson und Hennessy, Rechnerorganisation und Rechnerentwurf, 2014} %\end{center} \end{frame} \begin{frame} \frametitle{CPU Aufbau - Registersatz / ALU } %\begin{center} \includegraphics[width=0.9\textwidth]{cpuarch/a-register} \tiny{source: Patterson und Hennessy, Rechnerorganisation und Rechnerentwurf, 2014} %\end{center} \end{frame} \begin{frame} \frametitle{CPU Aufbau - Datenspeicher} %\begin{center} \includegraphics[width=0.9\textwidth]{cpuarch/a-datenspeicher} \tiny{source: Patterson und Hennessy, Rechnerorganisation und Rechnerentwurf, 2014} %\end{center} \end{frame} \begin{frame} \frametitle{CPU Datenpfad - Sprungbefehl} %\begin{center} \includegraphics[width=0.9\textwidth]{cpuarch/a-sprung} \tiny{source: Patterson und Hennessy, Rechnerorganisation und Rechnerentwurf, 2014} %\end{center} \end{frame} \begin{frame} \frametitle{CPU Datenpfad - Store und R Befehle} %\begin{center} \includegraphics[width=0.9\textwidth]{cpuarch/a-store-r-befehle} \tiny{source: Patterson und Hennessy, Rechnerorganisation und Rechnerentwurf, 2014} %\end{center} \end{frame} \begin{frame} \frametitle{CPU Datenpfad - einfach} %\begin{center} \includegraphics[width=0.9\textwidth]{cpuarch/a-datenpfad-einfach} Unterstützt: load word, store word, ALU Befehle, branch. Jump fehlt noch. \tiny{source: Patterson und Hennessy, Rechnerorganisation und Rechnerentwurf, 2014} %\end{center} \end{frame} \begin{frame} \frametitle{CPU ALU - Steuerung} %\begin{center} \includegraphics[width=0.5\textwidth]{cpuarch/a-alu-control} \includegraphics[width=0.9\textwidth]{cpuarch/a-alu-befehle} \tiny{source: Patterson und Hennessy, Rechnerorganisation und Rechnerentwurf, 2014} %\end{center} \end{frame} \begin{frame} \frametitle{CPU Datenpfad - mit RegDest} %\begin{center} \includegraphics[width=0.9\textwidth]{cpuarch/a-datenpfad-regdest} \tiny{source: Patterson und Hennessy, Rechnerorganisation und Rechnerentwurf, 2014} %\end{center} \end{frame} \begin{frame} \frametitle{CPU Datenpfad - mit Steuerung} %\begin{center} \includegraphics[width=0.9\textwidth]{cpuarch/a-datenpfad-steuerung} \tiny{source: Patterson und Hennessy, Rechnerorganisation und Rechnerentwurf, 2014} %\end{center} \end{frame} \begin{frame} \frametitle{CPU Datenpfad - Befehlsdekodierung} %\begin{center} \includegraphics[width=1.0\textwidth]{cpuarch/a-steuerung-befehl} \tiny{source: Patterson und Hennessy, Rechnerorganisation und Rechnerentwurf, 2014} %\end{center} \end{frame} \begin{frame} \frametitle{CPU Datenpfad - add \$t1,\$t2,\$t3} %\begin{center} \includegraphics[width=0.9\textwidth]{cpuarch/a-datenpfad-add} \tiny{source: Patterson und Hennessy, Rechnerorganisation und Rechnerentwurf, 2014} %\end{center} \end{frame} \begin{frame} \frametitle{CPU Datenpfad - lw \$t1, 20(\$t2)} %\begin{center} \includegraphics[width=0.9\textwidth]{cpuarch/a-datenpfad-load} \tiny{source: Patterson und Hennessy, Rechnerorganisation und Rechnerentwurf, 2014} %\end{center} \end{frame} \begin{frame} \frametitle{CPU Datenpfad - beq \$t1,\$t2,25 } %\begin{center} \includegraphics[width=0.9\textwidth]{cpuarch/a-datenpfad-beq} \tiny{source: Patterson und Hennessy, Rechnerorganisation und Rechnerentwurf, 2014} %\end{center} \end{frame}