Ejecutar instrucción


De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda

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

Puede considerarse un cuarto modo de secuenciación de instrucciones después de la ejecución secuencial ordinaria , la ramificació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 metainstrucción. [2]

Modelos de computadora

Muchas familias informático introducido en la década de 1950 y 1960 incluyen ejecutar instrucciones: el IBM 709 [1] y el IBM 7090 ( código de operación mnemotécnica : XEC ), [3] el IBM 7030 ( EX , Méxic ), [4] [1] la PDP-1 / -4 / -9 / -15 ( XCT ), [5] [6] el UNIVAC 1100/2200 ( EXRI ), [7] el CDC 924 ( XEC), [8] el PDP-6 / -10 ( XCT ), el IBM System / 360 ( EX ), [9] el GE-600 / Honeywell 6000 ( XEC , XED ), [10] el SDS-9xx ( EXU ). [11] [12]

Menos diseños de la década de 1970 incluyen instrucciones de ejecución . Se propuso una instrucción de ejecución para el PDP-11 en 1970, [13] pero nunca se implementó para él [14] o su sucesor, el VAX . [15] Las arquitecturas con una instrucción de ejecución incluyen: la minicomputadora Nuclear Data 812 (1971) ( XCT ), [16] la HP 3000 (1972) ( XEQ ), [17] y la Texas Instruments TI-990 (1975) [18 ] y su versión con microprocesador, el TMS9900(1976) ( X ). [19]

Los conjuntos de instrucciones modernos no incluyen instrucciones de ejecución porque interfieren con la canalización , la captación previa y otras optimizaciones. [ cita requerida ]

Semántica

La instrucción a ejecutar, la instrucción de destino, puede estar en un registro o recuperada de la memoria. Algunas arquitecturas permiten que la instrucción de destino sea en sí misma una instrucción de ejecución ; Otros no lo hacen.

La instrucción de destino se ejecuta como si estuviera en la ubicación de memoria de la instrucción de ejecución . Si, por ejemplo, es una instrucción de llamada de subrutina, la ejecución se transfiere a la subrutina, siendo la ubicación de retorno la ubicación después de la instrucción de ejecución . Sin embargo, algunas arquitecturas implementan variantes de la instrucción de ejecución que inhiben las ramas. [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 ejecutarla. La instrucción de destino debe comenzar en un byte de número par . [9]

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

Algunas arquitecturas admiten una instrucción de ejecución que opera en un modo de reubicación de dirección y protección diferente . Por ejemplo, el dispositivo de búsqueda ITS PDP-10 admite una instrucción XCTR de "ejecución reubicada" en modo privilegiado que permite que la memoria lea, escriba o ambos utilicen las asignaciones de página en modo de usuario. [20] De manera similar, la variante KL10 del PDP-10 admite la instrucción privilegiada PXCT 'contexto previo XCT'. [21]

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

  • el procesador puede ser ininterrumpido durante múltiples ciclos de reloj si la instrucción de ejecución no se puede interrumpir 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 ininterrumpida;
  • si las instrucciones de ejecución se encuentran en páginas de intercambio diferentes, es necesario intercambiar todas las páginas para que se complete la instrucción, lo que puede provocar errores .

Surgen problemas similares con los modos de direccionamiento indirecto multinivel .

Aplicaciones

La instrucción de ejecución tiene varias aplicaciones: [1]

  • Funciona como una subrutina de una sola instrucción , que puede llamar a una subrutina completa si es necesario. [1]
  • Encuadernación tardía
    • Implementación de call by name y otros thunks . [1]
    • Se puede usar una tabla de objetivos de ejecución para el envío dinámico de los métodos o funciones virtuales de un objeto o clase , especialmente cuando el método o función a menudo se puede implementar como una sola instrucción. [14]
    • Un destino de ejecución puede contener un gancho para agregar funcionalidad o para depurar; normalmente se inicializa como un NOP que puede anularse dinámicamente.
    • Un destino de ejecución puede cambiar entre una versión rápida de una operación y una versión con seguimiento completo. [22] [23] [24]
  • Rastreo, monitoreo y emulación
    • Esto puede mantener un contador de pseudoprograma , dejando el contador de programa normal sin cambios. [1]
  • Ejecutar código generado dinámicamente, especialmente cuando la protección de la memoria evita que se pueda escribir en el código ejecutable.
  • Emulando código auto modificable, especialmente cuando debe ser reentrante o de solo lectura. [13]
  • En IBM System / 360, la instrucción de ejecución 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 en el KL10 son utilizadas por los núcleos del sistema operativo para ejecutar operaciones tales como copias en bloque dentro del espacio virtual de los procesos del usuario.

Notas

  1. ↑ a b c d e f g h Brooks, FP (marzo de 1960). "Las operaciones de ejecución: un cuarto modo de secuenciación de instrucciones". Comunicaciones de la ACM . 3 (3): 168-170. doi : 10.1145 / 367149.367168 .
  2. ^ Rossman, George E. (diciembre de 1975). "Un Curso de Estudio en Arquitectura de Hardware de Computadores". Computadora IEEE . 8 (12): 44–63. doi : 10.1109 / CM.1975.218835 ., pag. 50
  3. ^ Manual de referencia, Sistema de procesamiento de datos IBM 7090 (PDF) . IBM . Marzo de 1962. p. 36.
  4. ^ Manual de referencia, sistema de procesamiento de datos 7030 (PDF) . IBM . Agosto de 1961. p. 50.
  5. ^ Manual del procesador de datos programados-1 (PDF) . Corporación de Equipos Digitales . 1961. p. 14.
  6. ^ Supnik, Bob. "Evolución arquitectónica en computadoras 18b de DEC" (PDF) . pag. 8 (no se muestran los números de página).
  7. ^ Computadora central Univac 1107 (PDF) . Noviembre de 1961. p. 12-1.
  8. ^ Control Data 924 Computer Reference Manual (PDF) . Octubre de 1962. p. 2-41.
  9. ^ a b Principios de funcionamiento de IBM System / 360 (PDF) . IBM . 1964. p. 65. A22-6821-0.
  10. ^ a b Manual del sistema GE-635 (PDF) . Departamento de Informática de General Electric. Julio de 1964. p. A-5.
  11. ^ Computadora SDS 92 . Sistemas de datos científicos . Junio ​​de 1965. p. 2-6.
  12. ^ Teoría de funcionamiento SDS 940 (PDF) . Sistemas de datos científicos . Marzo de 1967. p. 2-12. SDS-98-01-26A.
  13. ↑ a b van de Goor, Ad (21 de septiembre de 1970). "La instrucción de ejecución" (PDF) . Memorándum técnico PDP-11/40 18.
  14. ^ a b Manual del procesador PDP11: PDP11 / 04 / 34a / 44/60/60 (PDF) . Corporación de Equipos Digitales . 1979.
  15. ^ Manual de referencia del conjunto de instrucciones y MACRO VAX (PDF) . Compaq Computer Corporation . Abril de 2001. AA-PS6GD-TE.
  16. ^ Principios de programación de la computadora ND812 (PDF) . Nuclear Data, Inc. 1971. pág. 4-4.
  17. ^ Sistema informático HP 3000: Manual de referencia del conjunto de instrucciones de la máquina (PDF) . Hewlett-Packard . 1980. p. 2-31.
  18. ^ 990 Manual de sistemas de la familia de computadoras (PDF) . Texas Instruments . pag. 3-28.
  19. ^ Manual de datos del microprocesador TMS 9900 (PDF) . Texas Instruments . Diciembre de 1976. p. 24.
  20. ^ Holloway, J. (20 de febrero de 1970). "Hardware Memo 2 - Dispositivo de localización PDP-10" (PDF) . Laboratorio de IA del MIT . pag. 11.
  21. ^ DECsystem-10, Manual de referencia del procesador DECSYSTEM-20 (PDF) . Corporación de Equipos Digitales . Junio ​​de 1982. p. 2-63. AA-H391A-TK, AD-H391A-T1.
  22. ^ Gabriel, Richard P. (agosto de 1985). Rendimiento y evaluación de sistemas Lisp (PDF) . pag. 32. ISBN  9780262070935.
  23. ^ Pitman, Kent M. "PURO" . The Revised Maclisp Manual, Sunday Morning Edition .
  24. ^ Moon, David A. (abril de 1974). Manual de referencia de Maclisp (PDF) . Revisión 0. p. 181.
Obtenido de " https://en.wikipedia.org/w/index.php?title=Execute_instruction&oldid=1054524065 "