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.
4 Konzept und Implementierung 43<br />
Da bei allen Register-Tests das Register R1 als Referenz dient, wird dieses auf eine<br />
andere Weise überprüft. Anstelle der Schiebeoperation LSL wird die zweier Multiplikation<br />
verwendet. Durch das Testen des Register R1 auf zwei verschiedene Weisen wird<br />
mit sehr hoher Wahrscheinlichkeit sichergestellt, dass das Register fehlerfrei ist. Die<br />
Funktionsweise kann an dem folgenden Listing nachvollzogen werden:<br />
1. " mov r0,#0x1; "<br />
2. " mov r1,#0x1; "<br />
3. " mov r2,#0x2; "<br />
4. " Schleife_r0_r1: mul r3,r0,r2;"<br />
5. " mov r0,r3; "<br />
6. " mov r3,#0; "<br />
7. " mul r3,r1,r2; "<br />
8. " mov r1,r3; "<br />
9. " mov r3,#0; "<br />
10. " teq r0,r1; bne Error;"<br />
11. " teq r0,#0x80000000; bne Schleife_r0_r1;"<br />
Wobei zu diesem Listing gesagt werden muss, dass die Fehlerfreiheit des Registers R3<br />
angenommen wird.<br />
4.1.4 CPU-Test<br />
Konzept<br />
Wie schon in den Grundlagen erwähnt wurde, bedeutet das Testen <strong>einer</strong> CPU eigentlich<br />
das Testen von einzelnen Befehlen der CPU. Die Befehle des Philips LPC2148 wurden<br />
in dem Kapitel Grundlagen aufgelistet.<br />
Beim Testen wird das Vergleichsprinzip der Fehleraufdeckung benutzt. Der CPU-Test<br />
wird in mehrere kl<strong>einer</strong>e Tests aufgeteilt. In einzelnen Funktionen werden arithmetische<br />
und logische, Load und Store, Vergleichs- sowie Sprungbefehle getestet.<br />
Implementierung der arithmetischen, logischen und Multiplikation-Befehl-Tests<br />
Wie bei der Implementierung aller CPU-Tests wird die Assemblersprache verwendet,<br />
weil sich nicht alle Befehle der CPU in Programmiersprache C implementieren lassen.<br />
Die Funktionsweise des Testens aller arithmetischen, logischen sowie Multiplikations-<br />
Befehlen ist folgende:<br />
1. Zwei Register werden mit Testmustern beladen.<br />
2. Der zu prüfende Befehl wird auf diese Register angewendet.<br />
3. Das Resultat wird mit dem erwarteten Wert verglichen.<br />
4. Ist die Prüfung erfolgreich, wird der nächste Befehl getestet.