En informática , una arquitectura etiquetada es un tipo de arquitectura informática en la que cada palabra de memoria constituye una unión etiquetada , que se divide en una serie de bits de datos y una sección de etiqueta que describe el tipo de datos: cómo deben interpretarse y, si es una referencia, el tipo de objeto al que apunta. [1] [2] [3]
Algunos de los primeros sistemas utilizan el etiquetado de datos en la memoria, pero no tienen todas las características que ahora se consideran parte de las arquitecturas etiquetadas.
El RCA 601 [4] tiene un registro de etiqueta de 3 bits y una etiqueta de 3 bits por cada media palabra de 24 bits. Cada instrucción puede solicitar una prueba de etiqueta igual o desigual y provocar una interrupción enmascarable si la coincidencia especificada falla. No existe una conexión arquitectónica entre la etiqueta y el contenido de la media palabra; está estrictamente determinada por el software.
Los Burroughs B5000 [5] , B5500 [6] y B5700 tienen palabras de 48 bits sin campo de etiqueta adjunto. Sin embargo, si bien no hay campos de etiqueta para palabras de caracteres, instrucciones o números (punto flotante), todos los formatos de palabras de control incluyen una etiqueta de 3 bits. Sin embargo, la arquitectura de reemplazo, a partir del B6500, sí tiene una etiqueta para cada palabra.
Por el contrario, en la arquitectura de von Neumann la memoria de programa y la de datos son indistinguibles , lo que hace que la forma en que se hace referencia a la memoria sea fundamental para interpretar el significado correcto.
Ejemplos notables de arquitecturas etiquetadas estadounidenses fueron las máquinas Lisp , que tenían soporte de puntero etiquetado a nivel de hardware y código de operación , la Burroughs B6500 y sucesoras , que tienen una arquitectura etiquetada y basada en descriptores basada en datos, y la Rice Computer no comercial . [7] Tanto la máquina Burroughs como la Lisp son ejemplos de arquitecturas de computadoras de lenguaje de alto nivel , donde el etiquetado se utiliza para soportar tipos de un lenguaje de alto nivel a nivel de hardware.
Además de esto, la implementación original de Xerox Smalltalk utilizaba el bit menos significativo de cada palabra de 16 bits como bit de etiqueta: si estaba claro, el hardware lo aceptaba como una dirección de memoria alineada , mientras que si estaba configurado, se trataba como un entero de 15 bits ( desplazado ). La documentación actual de Intel menciona que los bits inferiores de una dirección de memoria podrían ser utilizados de manera similar por algunos sistemas basados en intérpretes .
En la Unión Soviética, la serie de supercomputadoras Elbrus fue pionera en el uso de arquitecturas etiquetadas en 1973.