TAKE A RISC

RISC ( Reduced Instruction Set Computer)-Prozessoren haben - wie ihr Name besagt - einen eingeschränkten, dafür aber sehr leistungsfähigen  Befehlssatz. Die Befehlscodierung wird dadurch verkürzt.  Das bewirkt einfacherer Prozessor-Architektur, weil die Anzahl der zu implementierenden Gatter stark reduziert und die Chipherstellung dadurch billiger wird. Der PIC 1684 verwendet z.B. eine 14 Bit breites Befehlswort. Davon sind sieben Bit für Adressen oder Konstanten vorbehalten. Ein Bit wird dafür verwendet, um das Ergebnis des Befehls im adressierten Register bzw. im Work-Register abzulegen. Es verbleiben noch 6 Bit ( entspricht 64 verschiedenen Befehlen) um den Opcode darzustellen. Damit kann man problemlos die  35 verschiedenen Befehlen des Prozessors implementieren.

Der Vorteil dieses Art der Befehlscodierung ist, das man nahezu alle Befehle (außer den Sprungbefehlen) mit einem einzigen Codewort d.h. mit einem Prozessortakt umsetzen kann. Die einzigen Ausnahmen sind Sprungbefehle, die zwei Prozessorzyklen benötigen.

Beispiel

Der Befehl  ADDWF f,d  (Addiere Workregister zu Register) wird mit Hilfe des folgenden Befehlswort codiert: 00 0111 dfff ffff,  wobei die sieben Bit f das Register beschreiben und d, ob das Ergebnis im Register oder im Workregister abgelegt wird.

Eine zweite Maßnahme, den Prozessor schneller zu machen ist das sogenannte pipelining. Das bedeutet, dass die verschiedenen Phasen einer Befehlsausführung nicht stur Befehl für Befehle  nacheinander ausgeführt werden, sondern dass verschiedene Phasen sich geschickt überlappen und  dann gleichzeitig ausgeführt werden. Wenn man einmal darüber nachdenkt, wie viele Schritte vom Holen eines Befehls aus dem ROM bis hin zur Ausführung des Befehls notwendig sind,  dann beginnt man zu überlegen, ob die dazu notwendige Zeit nicht besser ausgenutzt werden kann als auf den nächsten Befehl zu warten. Es gibt eine Reihe von anschauliche Erklärungen des pipelining-Prinzips bei Miko-Prozessoren. Am besten sucht man mit einer Suchmaschine nach diesem Begriff, weil eine Reihe dieser Seite Uni-Seiten sind, die häufig wechseln.

Aufgabe: Suche eine Seite, in der das Prinzip des Pipelining erklärt wird  und arbeite sie durch. Welche Schritte sind zur Bearbeitung eines Befehl notwendig?  Wie werden diese Schritte beim pipelining sinnvoll  gestaffelt, um einen höheren Befehlsdurchsatz beim Mikro-Prozessor zu erreichen? Welche Probleme gibt es, wenn manche Befehle längere Ausführungszeiten benötigen als andere.? Mit welchen Mitteln versucht man diese Probleme zu lösen?

 

Zurück