29.01.2013 Aufrufe

Optimierung einer Softwarebibliothek für sicherheitsrelevante

Optimierung einer Softwarebibliothek für sicherheitsrelevante

Optimierung einer Softwarebibliothek für sicherheitsrelevante

MEHR ANZEIGEN
WENIGER ANZEIGEN

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-

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!