Transfersprache registrieren - Register transfer language

In der Informatik ist die Registerübertragungssprache ( RTL ) eine Art Objektcode, eine Art Zwischendarstellung (IR), die der Assemblersprache sehr nahe kommt , wie sie beispielsweise in einem Compiler verwendet wird . Es wird verwendet, um den Datenfluss auf Registerübertragungsebene einer Architektur zu beschreiben . In wissenschaftlichen Arbeiten und Lehrbüchern wird häufig eine Form von RTL als architekturneutrale Assemblersprache verwendet. RTL wird in mehreren Compilern als Name einer bestimmten Zwischendarstellung verwendet, darunter in der GNU Compiler Collection (GCC), Zephyr und den europäischen Compilerprojekten CerCo und CompCert .

Geschichte

Die Idee hinter RTL wurde erstmals in Design und Anwendung eines Retargetable Peephole Optimizer beschrieben .

GCC

In GCC wird RTL aus der GIMPLE- Darstellung generiert , durch verschiedene Durchgänge im GCC- Middle-End transformiert und dann in Assemblersprache konvertiert.

Die RTL von GCC wird normalerweise in einer Form geschrieben, die wie ein Lisp- S-Ausdruck aussieht :

(set (reg:SI 140)
     (plus:SI (reg:SI 138)
              (reg:SI 139)))

Dieser Nebenwirkungsausdruck sagt "summiere den Inhalt von Register 138 mit dem Inhalt von Register 139 und speichere das Ergebnis in Register 140". Der SI gibt den Zugriffsmodus für jedes Register an. Im Beispiel ist es "SImode", dh "Zugriff auf das Register als 32-Bit-Ganzzahl".

Die Sequenz der erzeugten RTL hängt in gewissem Maße von den Eigenschaften des Prozessors ab, für den GCC Code generiert. Die Bedeutung der RTL ist jedoch mehr oder weniger unabhängig vom Ziel: Normalerweise ist es möglich, eine RTL zu lesen und zu verstehen, ohne zu wissen, für welchen Prozessor sie generiert wurde. Ebenso hängt die Bedeutung der RTL normalerweise nicht von der ursprünglichen Hochsprache des Programms ab.

Eine Registerübertragungssprache ist ein System zum symbolischen Ausdrücken der Mikrooperationssequenzen zwischen den Registern eines digitalen Moduls. Es ist ein praktisches Werkzeug, um die interne Organisation digitaler Computer präzise und präzise zu beschreiben. Es kann auch verwendet werden, um den Entwurfsprozess digitaler Systeme zu erleichtern.

Verweise

Externe Links