En informática , el vector de reinicio es la ubicación predeterminada a la que irá una unidad central de procesamiento para encontrar la primera instrucción que ejecutará después de un reinicio . El vector de reinicio es un puntero o dirección , donde la CPU siempre debe comenzar tan pronto como pueda ejecutar instrucciones. La dirección está en una sección de memoria no volátil inicializada para contener instrucciones para iniciar el funcionamiento de la CPU, como primer paso en el proceso de arranque del sistema que contiene la CPU.
- El vector de reinicio para el procesador 8086 está en la dirección física FFFF0h (16 bytes por debajo de 1 MB). El valor del registro CS en el reinicio es FFFFh y el valor del registro IP en el reinicio es 0000h para formar la dirección segmentada FFFFh: 0000h, que se asigna a la dirección física FFFF0h. [1]
- El vector de reinicio para el procesador 80286 está en la dirección física FFFFF0h (16 bytes por debajo de 16 MB). El valor del registro CS en el reinicio es F000h con la base del descriptor establecida en FF0000h y el valor del registro IP en el reinicio es FFF0h para formar la dirección segmentada FF000h: FFF0h, que se asigna a la dirección física FFFFF0h en modo real . [2] Esto se cambió para permitir suficiente espacio para cambiar al modo protegido sin modificar el registro CS. [3]
- El vector de reinicio para los procesadores 80386 y posteriores x86 es la dirección física FFFFFFF0h (16 bytes por debajo de 4 GB). El valor de la parte del selector del registro CS en el reinicio es F000h, el valor de la parte base del registro CS es FFFF0000h y el valor del registro IP en el reinicio es FFF0h [4] para formar la dirección segmentada FFFF0000h: FFF0h , que se asigna a la dirección física FFFFFFF0h en modo real. [5] [6]
- El vector de reinicio para los procesadores PowerPC / Power ISA se encuentra en una dirección efectiva de 0x00000100 para procesadores de 32 bits y 0x0000000000000100 para procesadores de 64 bits.
- El vector de reinicio para los procesadores de arquitectura m68k es 0x0 para el registro de pila de interrupción inicial (IISR; no es realmente un vector de reinicio y se usa para inicializar el puntero de la pila después del reinicio) y 0x4 para el contador de programa inicial (reinicio). [7]
- El vector de reinicio para los procesadores SPARC versión 8 está en una dirección de 0x00; [8] el vector de reinicio para los procesadores SPARC versión 9 está en una dirección de 0x20 para reinicio de encendido, 0x40 para reinicio de perro guardián, 0x60 para reinicio iniciado externamente y 0x80 para reinicio iniciado por software. [9]
- El vector de reinicio para los procesadores MIPS32 está en la dirección virtual 0xBFC00000, [10] que se encuentra en los últimos 4 Mbytes de la región de memoria no almacenable en caché KSEG1. [11] El núcleo entra en modo kernel tanto en el reinicio como cuando se reconoce una excepción, por lo que es capaz de asignar la dirección virtual a la dirección física. [12]
- El vector de reinicio para la familia de procesadores ARM es la dirección 0x0 [13] o 0xFFFF0000. Durante la ejecución normal, la RAM se vuelve a asignar a esta ubicación para mejorar el rendimiento, en comparación con la tabla de vectores basada en ROM original. [14]
Referencias
- ^ "Manual del usuario de iAPX 86,88" (PDF) . Intel . 1981. Reinicio del sistema, p. 2-29, tabla 2-4 . Consultado el 15 de abril de 2018 .
- ^ "Hoja de datos AMD 80286" (PDF) . AMD . 1985. p. 13.
el 286 comienza la ejecución en modo real con la instrucción en la ubicación física FFFFF0H.
- ^ "Manual de referencia del programador de iAPX 286" (PDF) . Intel. 1983. Apéndice D, Consideraciones de compatibilidad de software iAPX 86/88, p. D-2 . Consultado el 15 de abril de 2018 .
Después del reinicio, CS: IP = F000: FFF0 en el iAPX 286. Este cambio se realizó para permitir suficiente espacio de código para ingresar al modo protegido sin recargar CS.
- ^ "Manual de referencia del programador 80386" (PDF) . Intel. 1990. Sección 10.1 Estado del procesador después del reinicio, páginas 10-1 - 10.3.
- ^ "Manual de referencia del programador 80386" (PDF) . Intel. 1990. Sección 10.2.3 Primera instrucción, p. 10-4 . Consultado el 3 de noviembre de 2013 .
La ejecución comienza con la instrucción dirigida por el contenido inicial de los registros CS e IP. Para permitir que el software de inicialización se coloque en una ROM en la parte superior del espacio de direcciones, se establecen los 12 bits altos de direcciones emitidos para el segmento de código, hasta la primera instrucción que carga el registro CS, como un salto lejano o una llamada. . Como resultado, la búsqueda de instrucciones comienza desde la dirección 0FFFFFFF0H.
- ^ "Manual del desarrollador de software de arquitecturas Intel® 64 e IA-32" (PDF) . Intel. Mayo de 2012. Sección 9.1.4 Primera instrucción ejecutada, p. 2611 . Consultado el 23 de agosto de 2012 .
La primera instrucción que se obtiene y se ejecuta después de un reinicio del hardware se encuentra en la dirección física FFFFFFF0h. Esta dirección está 16 bytes por debajo de la dirección física más alta del procesador. La EPROM que contiene el código de inicialización del software debe estar ubicada en esta dirección.
- ^ Labrosse, Jean J. (2008). Software integrado . Newnes. ISBN 9780750685832.
- ^ El Manual de arquitectura SPARC, versión 8 . SPARC Internacional . pag. 75.
- ^ El Manual de arquitectura SPARC, versión 9 . SPARC Internacional. págs. 109–112.
- ^ "Arquitectura MIPS32 para programadores; Vol III: La arquitectura de recursos privilegiados MIPS32" (PDF) . Tecnologías MIPS.
- ^ Noergaard, Tammy (28 de febrero de 2005). Arquitectura de sistemas integrados: una guía completa para ingenieros y programadores . Elsevier. ISBN 9780080491240.
- ^ "Manual del usuario del software principal del procesador MIPS32 M4K" (PDF) . cdn2.imgtec.com . 29 de agosto de 2008. Archivado desde el original (PDF) el 26 de agosto de 2017.
- ^ "5.9.1. Tabla de vectores y Reset" . Manual de referencia técnica de Cortex-M3 . Consultado el 10 de noviembre de 2017 .
- ^ "Secuencia de arranque para un sistema integrado basado en ARM -2 - DM" . www.embeddedrelated.com . Consultado el 10 de noviembre de 2017 .
Ver también
- Arranque
- Reiniciar (informática)
- Control-Alt-Suprimir
- Poder en la auto prueba
- Reinicio de hardware