Registreer overdrachtstaal - Register transfer language

In de informatica is registeroverdrachtstaal ( RTL ) een type objectcode, een soort tussenrepresentatie (IR) die heel dicht bij assembleertaal lijkt , zoals die wordt gebruikt in een compiler . Het wordt gebruikt om de gegevensstroom op het registeroverdrachtsniveau van een architectuur te beschrijven . Academische papers en studieboeken gebruiken vaak een vorm van RTL als architectuurneutrale assembleertaal. RTL wordt gebruikt als de naam van een specifieke tussenvertegenwoordiging in verschillende compilers, waaronder de GNU Compiler Collection (GCC), Zephyr en de Europese compilerprojecten CerCo en CompCert .

Geschiedenis

Het idee achter RTL werd voor het eerst beschreven in The Design and Application of a Retargetable Peephole Optimizer .

GCC

In GCC wordt RTL gegenereerd vanuit de GIMPLE- weergave, getransformeerd door verschillende passages in het GCC- middengedeelte en vervolgens geconverteerd naar assembleertaal.

GCC's RTL wordt meestal geschreven in een vorm die lijkt op een Lisp S-uitdrukking :

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

Deze neveneffectuitdrukking zegt "tel de inhoud van register 138 op met de inhoud van register 139 en sla het resultaat op in register 140". De SI specificeert de toegangsmodus voor elk register. In het voorbeeld is het "Simode", dwz "toegang tot het register als 32-bits geheel getal".

De volgorde van de gegenereerde RTL is enigszins afhankelijk van de kenmerken van de processor waarvoor GCC code genereert. De betekenis van de RTL is echter min of meer onafhankelijk van het doelwit: het is meestal mogelijk om een ​​stukje RTL te lezen en te begrijpen zonder te weten voor welke processor het is gegenereerd. Evenzo hangt de betekenis van RTL meestal niet af van de oorspronkelijke taal op hoog niveau van het programma.

Een registeroverdrachtstaal is een systeem voor het in symbolische vorm uitdrukken van de microoperatiesequenties tussen de registers van een digitale module. Het is een handig hulpmiddel om de interne organisatie van digitale computers beknopt en nauwkeurig te beschrijven. Het kan ook worden gebruikt om het ontwerpproces van digitale systemen te vergemakkelijken.

Referenties

Externe links