stringtranslate.com

Registrar idioma de transferencia

En informática , el lenguaje de transferencia de registros ( RTL ) es un tipo de representación intermedia (IR) muy similar al lenguaje ensamblador , como el que se utiliza en un compilador . Se utiliza para describir el flujo de datos en el nivel de transferencia de registros de una arquitectura . [1] Los artículos académicos y los libros de texto suelen utilizar una forma de RTL como lenguaje ensamblador independiente de la arquitectura. RTL se utiliza como nombre de una representación intermedia específica en varios compiladores, incluidos GNU Compiler Collection (GCC), Zephyr y los proyectos de compiladores europeos CerCo y CompCert .

Historia

La idea detrás de RTL se describió por primera vez en El diseño y la aplicación de un optimizador de mirilla reorientable . [2]

CCG

En GCC, RTL se genera a partir de la representación GIMPLE , se transforma mediante varios pases en el extremo medio de GCC y luego se convierte a lenguaje ensamblador.

El RTL de GCC generalmente se escribe en un formato que parece una expresión S de Lisp :

( conjunto ( reg: SI 140 ) ( más:SI ( reg:SI 138 ) ( reg: SI 139 )))         

Esta expresión de efecto secundario dice "sumar el contenido del registro 138 con el contenido del registro 139 y almacenar el resultado en el registro 140". La SI especifica el modo de acceso para cada registro. En el ejemplo, es "SImode", es decir, "acceder al registro como un entero de 32 bits".

La secuencia de RTL generada depende en cierta medida de las características del procesador para el que GCC genera el código. Sin embargo, el significado de la RTL es más o menos independiente del objetivo: normalmente sería posible leer y comprender un fragmento de RTL sin saber para qué procesador se generó. De manera similar, el significado de la RTL no suele depender del lenguaje de alto nivel original del programa.

Un lenguaje de transferencia de registros es un sistema para expresar en forma simbólica las secuencias de microoperaciones entre los registros de un módulo digital. Es una herramienta conveniente para describir la organización interna de las computadoras digitales de una manera concisa y precisa. También puede utilizarse para facilitar el proceso de diseño de sistemas digitales. [3]

Referencias

  1. ^ Mahani, Negin (16 de enero de 2013). "Making alive register transfer level and transaction level modeling in Ada" (Haciendo que el modelado de nivel de transferencia de registros y nivel de transacción cobre vida en Ada). ACM SIGAda Ada Letters . 32 (2): 9–16. doi :10.1145/2429574.2429576 . Consultado el 8 de septiembre de 2024 .
  2. ^ "Davidson y Fraser; El diseño y la aplicación de un optimizador de mirilla reorientable; ToPLaS v2(2) 191-202 (abril de 1980)" (PDF) .
  3. ^ Mano, Morris M. (1992). Arquitectura de sistemas informáticos (3.ª ed.). Prentice Hall. pág. 94. ISBN 0131755633.

Enlaces externos