\section{Vergleich} %``Hier vergleichen wir die verschiedene ISA's'' copyright \footnote{Markus Hofst\"atter} Bis auf die MCS-51 Architektur sind alle Architekturen RISC und Registermaschinen, MCS-51 ist CISC und Akkumulator. Die L\"ange der Instruktionen ist bei ARM\footnote{Mit Ausnahme des Thumb-Modes, bei diesem sind es 16-Bit pro Instruktion} und PowerPC auf 32-Bit L\"ange fixiert, SPEAR2 auf 16-Bit, bei AVR und MCS-51 k\"onnen die Instruktionen eine unterschiedliche Anzahl von Bytes aufwei\ss en. Bei AVR und SPEAR2 sind die meisten Instruktionen darauf ausgelegt in einem Zyklus abgearbeitet zu werden. Bei SPEAR2 ist es aber nicht garantiert das auch die Instruktionen ohne Verz\"ogerung ausgef\"uhrt werden (zum Beispiel dauert eine Instruktion nach einem Jump zwei Zyklen). Bei Conditional Operations reicht die Anzahl und deren Umfang von sehr beschr\"ankt (MCS-51) bis zu fast alle Instruktionen (ARM). Als Anwendungsgebiete kann man f\"ur alle Architekturen auf jedenfall Embedded Systems angeben. ARM und PowerPC sind auch im Desktop- und Serverbereich anzutreffen. Die Instruktionsetgr\"o\ss e ist bei AVR und MCS-51, durch die 8-Bit bedingt, eher klein. SPEAR2 ist auch eher klein weil die urspr\"ungliche Architektur ebenfalls nur 8-Bit war. ARM und PowerPC haben, auch durch die 32-Bit L\"ange bedingt, ein gro\ss es Instruktionset. \lstinputlisting[caption=Compute Sum, language=C, label=list:sum]{sum.c} Das Sichern der R\"ucksprungadresse wird unterschiedlich gehandhabt. AVR und MCS-51 sichern die Adresse automatisch auf den Stack. PowerPC, SPEAR2 und ARM sichern die R\"ucksprungadresse in ein Register. Codesizes und Ausf\"uhrungszeiten des Codest\"ucks \texttt{sum} aus Listing~\ref{list:sum} sind in Tabelle~\ref{cmp_tab} ersichtlich. Es ist sofort ersichtlich das die Prozessoren mit h\"oherer Instruktionsl\"ange besser abschneiden wenn es um die Anzahl der Zyklen, und dadurch bedingt, um die Codesize geht, was aber auch nicht sehr verwunderlich ist.\\ \begin{table}[ht] \begin{center} \begin{tabular}{|l|c|c|c|c|c|}\hline Anzahl & ARM & AVR & MCS-51 & PowerPC & SPEAR2 \\ \hline Instruktionen & 4 & 8 & 21 & 3 & 6 \\ \hline Zyklen & 8 & 11/12 & 30 & 3 & 7 \\ \hline Bytes & 16 & 16 & 32 & 12 & 12 \\ \hline \end{tabular} \caption{Vergleich der ISAs anhand der erfassten Kennwerte} \label{cmp_tab} \end{center} \end{table}