Optimierung einer Softwarebibliothek für sicherheitsrelevante
Optimierung einer Softwarebibliothek für sicherheitsrelevante
Optimierung einer Softwarebibliothek für sicherheitsrelevante
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
2 Grundlagen 11<br />
die RISC-Prozessoren weiterentwickelt wurden, ähneln sie jetzt den CISC-Prozessoren.<br />
RISC-Prozessoren ebenso wie CISC-Prozessoren auch „Universalprozessoren“, die in<br />
vielen Branchen zum Einsatz kommen, wie z.B. PDAs oder Spielkonsolen, auch deswegen,<br />
weil sie stromsparend sind. Für die meisten RISC-Prozessoren gelten weitere<br />
Merkmale [vgl. BEC03]:<br />
• Die Komplexität des Steuerwerkes ist um ein vielfaches reduziert.<br />
o Es wird ein relativ kl<strong>einer</strong> Befehlsatz (30-100 Befehle) verwendet.<br />
o Speicherzugriff nur über LOAD- und STORE-Befehle, grundsätzlich wird<br />
mit Registern gearbeitet .<br />
o Bevorzugt wird das 3-Adress-Format (Opcode / Source1/ Source2/<br />
Destination).<br />
o Ganzzahlige Datentypen (Byte, Wort, Doppelwort).<br />
o Ausführung aller Befehle möglichst in einem Taktzyklus.<br />
• Durch diese Maßnahmen erreicht man ein einfaches, festverdrahtetes Steuerwerk.<br />
• Alle Datenwege sind 32-Bit breit.<br />
• Getrennte Pfade <strong>für</strong> Daten- und Programmspeicher (Harward-Architektur).<br />
• Relativ viele 32-Bit-Register.<br />
• Befehlsverarbeitung durch eine vollständige, lineare Pipeline(meist 3-stufig).<br />
Pipeline-Verarbeitung ist <strong>für</strong> die RISC-Prozessoren sehr wichtig und bedeutet die Zerlegung<br />
eines Befehls in Einzelschritte. Im Falle <strong>einer</strong> 3-stufigen Pipeline wird ein Befehl in<br />
drei Einzelschritte zerlegt [WAL04]: „1. Befehl aus dem Speicher holen (Instruction<br />
Fetch), 2. Befehl decodieren (Instruction Decode), 3. Befehl ausführen (Instruction Execute)“.<br />
Wobei die einzelnen Schritte dieser Pipeline in mehreren Schritten ausgeführt<br />
sein können, je nach Instruktionskomplexität. Das Funktionsprinzip zeigt die Abbildung<br />
1 (hier sind die einzelnen Schritte in einem Taktzyklus ausführbar):<br />
Abbildung 1: 3-stufige Pipeline<br />
Die Funktionsweise <strong>einer</strong> 3-stufigen Pipeline ist folgende: Während im zweiten Zyklus(Cycle<br />
2) der 1. Befehl (Instruction 1) dekodiert (Decode) wird, werden in der zweiten<br />
Stufe der Pipeline bereits die Instruktionen <strong>für</strong> den zweiten Befehl (Instruction 2) geholt.<br />
In drittem Zyklus (Cycle 3) wird der 1. Befehl ausgeführt (Execute), der 2. Befehl decodiert<br />
und Instruktionen <strong>für</strong> den 3. Befehl (Intruction 3) geholt usw. Sind die einzelnen<br />
Befehle einfache Befehle, z.B. logische, so werden sie in dieser Pipeline in einem Takt-