Articulo de referencia

Ejecutar instrucción

En una arquitectura de conjunto de instrucciones (ISA) de computadora , una instrucción de ejecución es una instrucción en lenguaje máquina que trata los datos como una instrucc...

En una arquitectura de conjunto de instrucciones (ISA) de computadora , una instrucción de ejecución es una instrucción en lenguaje máquina que trata los datos como una instrucción de máquina y la ejecuta.

Puede considerarse un cuarto modo de secuenciación de instrucciones después de la ejecución secuencial ordinaria , la bifurcación y la interrupción . [ 1 ] Dado que es una instrucción que opera sobre otras instrucciones como la instrucción de repetición , también se ha clasificado como una meta-instrucción. [ 2 ]

Modelos informáticos

Muchas familias de computadoras introducidas en las décadas de 1950 y 1960 incluyen instrucciones de ejecución : la IBM 709 [ 1 ] y la IBM 7090 ( código de operación mnemónico : XEC ), [ 3 ] la IBM 7030 Stretch ( EX , EXIC ), [ 4 ] [ 1 ] la PDP-1 / -4 / -7 / -9 / -15 ( XCT ), [ 5 ] [ 6 ] la UNIVAC 1100/2200 ( EXRI ), [ 7 ] la CDC 924 ( XEC ), [ 8 ] la PDP-6 / -10 ( XCT ), la IBM System/360 ( EX ), [ 9 ] [ a ] ​​la GE-600 / Honeywell 6000 ( XEC , XED ), [ 10 ] la SDS-9xx ( EXU ), [ 11 ] la SDS 92 ( EXU ), [ 12 ] la serie SDS Sigma ( EXU ), [ 13 ] y la serie Varian 620 ( XEC e instrucciones de ejecución condicional). [ 14 ]

Menos diseños de la década de 1970 incluyen instrucciones de ejecución : la minicomputadora Nuclear Data 812 (1971) ( XCT ), [ 15 ] la HP 3000 (1972) ( XEQ ), [ 16 ] y la Texas Instruments TI-990 (1975) [ 17 ] y su versión de microprocesador, la TMS9900 (1976) ( X ). [ 18 ] Se propuso una instrucción de ejecución para la PDP-11 en 1970, [ 19 ] pero nunca se implementó para ella [ 20 ] ni para su sucesora, la VAX . [ 21 ] La Western Digital WD16 (1976) (XCT) es similar a la PDP-11 y su ejecución se usa comúnmente para ejecutar programas paso a paso . [ 22 ] El Signetics 8X300 (1976) (XEC) ejecuta una instrucción de una tabla de hasta 255 instrucciones. La mayoría de las instrucciones actúan como subrutinas de una sola instrucción, pero se utilizan bifurcaciones para implementar tablas de salto . [ 23 ]

Los conjuntos de instrucciones modernos no incluyen instrucciones de ejecución porque interfieren con la segmentación , la precarga y otras optimizaciones.

Semántica

La instrucción que se va a ejecutar, la instrucción objetivo, puede estar en un registro o recuperarse de la memoria. Algunas arquitecturas permiten que la instrucción objetivo sea en sí misma una instrucción de ejecución ; otras no.

La instrucción de destino se ejecuta como si estuviera en la ubicación de memoria de la instrucción execute . Si, por ejemplo, se trata de una instrucción de llamada a subrutina, la ejecución se transfiere a la subrutina, y la ubicación de retorno es la que sigue a la instrucción execute . Sin embargo, algunas arquitecturas implementan variantes de la instrucción execute que impiden las bifurcaciones. [ 1 ]

El System/360 admite instrucciones de destino de longitud variable. También admite la modificación de la instrucción de destino antes de su ejecución. La instrucción de destino debe comenzar en un byte par . [ 9 ]

La serie GE-600 admite la ejecución de secuencias de dos instrucciones, que deben estar alineadas a doble palabra . [ 10 ]

Algunas arquitecturas admiten una instrucción de ejecución que opera en un modo de protección y reubicación de direcciones diferente . Por ejemplo, el dispositivo de paginación ITS PDP-10 admite una instrucción XCTR de modo privilegiado , 'ejecutar reubicado', que permite que las lecturas, escrituras o ambas operaciones de memoria utilicen las asignaciones de página en modo usuario. [ 24 ] De manera similar, la variante KL10 del PDP-10 admite la instrucción privilegiada PXCT , 'XCT de contexto anterior'. [ 25 ]

La instrucción execute puede causar varios problemas cuando una instrucción execute apunta a otra, y así sucesivamente:

  • El procesador puede permanecer ininterrumpido durante varios ciclos de reloj si la instrucción de ejecución no puede interrumpirse en medio de la ejecución;
  • De manera similar, el procesador puede entrar en un bucle infinito si la serie de instrucciones de ejecución es circular e ininterrumpible;
  • Si las instrucciones de ejecución están en diferentes páginas de intercambio , es necesario intercambiar todas las páginas para que la instrucción se complete, lo que puede provocar un thrashing (sobrecarga de memoria ).

Problemas similares surgen con los modos de direccionamiento indirecto multinivel .

Aplicaciones

La instrucción execute tiene varias aplicaciones: [ 1 ]

  • Funciona como una subrutina de una sola instrucción sin la sobrecarga habitual de las llamadas a subrutinas ; esa instrucción puede llamar a una subrutina completa si es necesario. [ 1 ]
  • Unión tardía
  • Rastreo, monitoreo y emulación
  • Ejecutar código generado dinámicamente, especialmente cuando la protección de memoria impide que el código ejecutable sea modificable.
  • Emulación de código automodificable, especialmente cuando debe ser reentrante o de solo lectura. [ 19 ]
  • En el IBM System/360, la instrucción execute puede modificar los bits 8-15 de la instrucción de destino, convirtiendo efectivamente una instrucción con un argumento fijo (por ejemplo, un campo de longitud) en una instrucción con un argumento variable.
  • Las instrucciones de ejecución en modo privilegiado, como las del KL10, son utilizadas por los núcleos del sistema operativo para ejecutar operaciones como copias de bloques dentro del espacio virtual de los procesos de usuario.

Notas explicativas

  1. El último IBM Z (originalmente llamado eServer zSeries) agrega Execute Relative Long ( EXRL ).

Citas

  1. 1 2 3 4 5 6 7 8 Brooks, FP (marzo de 1960). "Las operaciones de ejecución: un cuarto modo de secuenciación de instrucciones" . Communications of the ACM . 3 (3): 168– 170. doi : 10.1145/367149.367168 . S2CID 37725430 . 
  2. Rossman, George E. (diciembre de 1975). "Un curso de estudio sobre arquitectura de hardware informático". IEEE Computer . 8 (12): 44– 63. doi : 10.1109/CM.1975.218835 . S2CID 977792 . pág. 50
  3. Manual de referencia, Sistema de procesamiento de datos IBM 7090 (PDF) . IBM . Marzo de 1962. pág. 36. 
  4. Manual de referencia, Sistema de procesamiento de datos 7030 (PDF) . IBM . Agosto de 1961. pág. 50. 
  5. Manual del Procesador de Datos Programado-1 (PDF) . Digital Equipment Corporation . 1961. pág. 14. 
  6. Supnik, Bob. "Evolución arquitectónica en las computadoras 18b de DEC" (PDF) . pág. 8 (no se muestran los números de página). 
  7. Computadora central Univac 1107 (PDF) . Noviembre de 1961. pág. 12 - 1. 
  8. ↑ Manual de referencia del ordenador Control Data 924 (PDF) . Octubre de 1962. págs. 2-41 . 
  9. 1 2 Principios de funcionamiento del sistema IBM/360 (PDF) . IBM . 1964. pág. 65. A22-6821-0. 
  10. 1 2 Manual del sistema GE-635 (PDF) . Departamento de informática de General Electric. Julio de 1964. pág. A - 5. 
  11. Teoría de funcionamiento del SDS 940 (PDF) . Scientific Data Systems . Marzo de 1967. págs. 2-12 . SDS-98-01-26A. 
  12. SDS 92 Computadora . Sistemas de datos científicos . Junio ​​de 1965. págs. 2-6 . 
  13. Computadora Xerox SIGMA 7: Manual de referencia (PDF) . Xerox Corporation. Octubre de 1973. págs. 70–71 . 90 09 5J; XG46, Archivo n.° 1X03. 
  14. "Manual de referencia del sistema Varian DATA 620/i" (PDF) . Varian Data Machines. Marzo de 1969. págs. 3-44 . Consultado el 13 de febrero de 2026 . 
  15. Principios de programación del ordenador ND812 (PDF) . Nuclear Data, Inc. 1971. pág. 4 - 4. 
  16. Sistema informático HP 3000: Manual de referencia del conjunto de instrucciones de la máquina ( PDF) . Hewlett-Packard . 1980. págs. 2-31 . 
  17. ↑ Manual de sistemas de la familia de computadoras 990 (PDF) . Texas Instruments . págs. 3-28 . 
  18. Manual de datos del microprocesador TMS 9900 (PDF) . Texas Instruments . Diciembre de 1976. pág. 24. 
  19. 1 2 van de Goor, Ad (21 de septiembre de 1970). "La instrucción de ejecución" (PDF) . Memorando técnico PDP-11/40 18.
  20. 1 2 Manual del procesador PDP11: PDP11/04/34a/44/60/60 (PDF) . Digital Equipment Corporation . 1979.
  21. Manual de referencia del conjunto de instrucciones y macros VAX (PDF) . Compaq Computer Corporation . Abril de 2001. AA-PS6GD-TE.
  22. Wilcox, Dick (4 de octubre de 1976). Manual de referencia del programador de microcomputadoras WD16 (PDF) . Western Digital . Consultado el 21 de agosto de 2025 .
  23. "Microcontrolador SL8X305" (PDF) . Lansdale Semiconductor Inc. Consultado el 20 de junio de 2017 .
  24. Holloway, J. (20 de febrero de 1970). "Hardware Memo 2 - Dispositivo de paginación PDP-10" (PDF) . MIT AI Lab . pág. 11. 
  25. Manual de referencia del procesador DECsystem-10, DECSYSTEM-20 (PDF) . Digital Equipment Corporation . Junio ​​de 1982. págs. 2-63 . AA-H391A-TK, AD-H391A-T1. 
  26. Gabriel, Richard P. (agosto de 1985). Rendimiento y evaluación de sistemas Lisp (PDF) . MIT Press. pág. 32. ISBN  9780262070935.
  27. Pitman, Kent M. "PURE" . El manual revisado de Maclisp, edición del domingo por la mañana .
  28. Moon, David A. (abril de 1974). Manual de referencia de Maclisp (PDF) . Revisión 0. pág. 181.