Articulo de referencia

Vector de reinicio

En informática , el vector de reinicio es la ubicación predeterminada a la que acude la unidad central de procesamiento para encontrar la primera instrucción que ejecutará tras ...

En informática , el vector de reinicio es la ubicación predeterminada a la que acude la unidad central de procesamiento para encontrar la primera instrucción que ejecutará tras un reinicio . El vector de reinicio es un puntero o dirección donde la CPU debe comenzar siempre que esté lista para ejecutar instrucciones. Esta dirección se encuentra en una sección de memoria no volátil (como la BIOS o la ROM de arranque ) inicializada para contener las instrucciones que inician el funcionamiento de la CPU, como primer paso en el proceso de arranque del sistema que contiene la CPU.

Ejemplos

A continuación se muestra una lista de direcciones que suelen utilizar diferentes microprocesadores:

Familia x86 (Intel)

  • El vector de reinicio del procesador Intel 8086 se encuentra en la dirección física FFFF0h (16 bytes por debajo de 1  MB). El valor del registro CS al reiniciarse es FFFFh y el valor del registro IP al reiniciarse es 0000h, formando así la dirección segmentada FFFFh:0000h, que se corresponde con la dirección física FFFF0h. [ 1 ]
  • El vector de reinicio del procesador Intel 80286 se encuentra en la dirección física FFFFF0h (16 bytes por debajo de 16  MB). El valor del registro CS al reiniciarse es F000h con la base del descriptor establecida en FF0000h y el valor del registro IP al reiniciarse es FFF0h para formar la dirección segmentada FF0000h:FFF0h, que se asigna a la dirección física FFFFF0h en modo real . [ 2 ] Esto se modificó para permitir suficiente espacio para cambiar al modo protegido sin modificar el registro CS. [ 3 ]
  • El vector de reinicio para los procesadores Intel 80386  y posteriores x86 es la dirección física FFFFFFF0h (16 bytes por debajo de 4 GB). El valor de la porción selectora del registro CS en el reinicio es F000h, el valor de la porción 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 ]

Otros

  • El vector de reinicio para los procesadores ARM es la dirección 0x0 [ 7 ] [ 8 ] o 0xFFFF0000. [ 9 ] Durante la ejecución normal, la RAM se reasigna a esta ubicación para mejorar el rendimiento, en comparación con la tabla de vectores original basada en ROM. [ 10 ]
  • El vector de reinicio para los procesadores MIPS32 se encuentra en la dirección virtual 0xBFC00000, [ 11 ] que está ubicada en los últimos 4 Mbytes de la región de memoria no caché KSEG1. [ 12 ] El núcleo entra en modo kernel tanto al reiniciarse como cuando se reconoce una excepción, por lo que puede mapear la dirección virtual a la dirección física. [ 13 ]
  • 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 SPARC versión 8 se encuentra en la dirección 0x00000000; [ 14 ] el vector de reinicio para los procesadores SPARC versión 9 se encuentra en la dirección 0x20 para el reinicio por encendido, 0x40 para el reinicio por watchdog, 0x60 para el reinicio iniciado externamente y 0x80 para el reinicio iniciado por software. [ 15 ]
  • El vector de reinicio para la familia de procesadores 68000 es 0x00000000 para el Registro de pila de interrupción inicial (IISR; en realidad no es un vector de reinicio y se utiliza para inicializar el puntero de pila después del reinicio) y 0x00000004 para el contador de programa inicial (reinicio). [ 16 ]
  • El vector de reinicio del Western Digital WD16 puede variar según la causa del reinicio. Si el reinicio se debe a un error de paridad, el vector se obtiene de la dirección 0x0012. Si el reinicio se debe a un error de bus, el vector se obtiene de la dirección 0x0018. Si no se da ninguna de las dos situaciones, el vector se obtiene de la dirección 0x0016. [ 17 ]

procesadores de 8 bits

  • El vector de reinicio para la familia de procesadores 6502 es una dirección de 16 bits almacenada en 0xFFFC y 0xFFFD.
  • El vector de reinicio para las familias de procesadores 6800 y 6809 es una dirección de 16 bits almacenada en 0xFFFE y 0xFFFF.
Sin vector de reinicio
  • Para los microcontroladores 8051 / 8080 / 8085 / Z80 , el reinicio inicia la ejecución del código en la dirección 0x0000.
  • En el caso de AVR , el reinicio inicia la ejecución del código en la dirección 0x0000; a menudo se coloca aquí una instrucción de salto relativo (RJMP) para saltar a la rutina de manejo de reinicio dentro de los 4K inferiores de la memoria.
  • En el caso de los microcontroladores PIC , el reinicio inicia la ejecución del código en la dirección 0x0000.

Véase también

Referencias

  1. "Manual del usuario de iAPX 86,88" (PDF) . Intel . 1981. Reinicio del sistema, pág. 2-29, tabla 2-4 . Consultado el 14 de noviembre de 2025 .
  2. "Hoja de datos del AMD 80286" (PDF) . AMD . 1985. pág. 13. El 286 comienza la ejecución en modo real con la instrucción en la ubicación física FFFFF0H.
  3. "Manual de referencia del programador de iAPX 286" (PDF) . Intel. 1983. Apéndice D, Consideraciones de compatibilidad de software de iAPX 86/88, pág. 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 entrar en modo protegido sin recargar CS.
  4. "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.
  5. "Manual de referencia del programador 80386" ( PDF) . Intel. 1990. Sección 10.2.3 Primera instrucción, pág. 10-4 . Recuperado el 3 de noviembre de 2013. La ejecución comienza con la instrucción a la que apuntan los contenidos iniciales 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 superiores de las direcciones emitidas 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 obtención de instrucciones comienza desde la dirección 0FFFFFFF0H.
  6. "Manual del desarrollador de software para arquitecturas Intel® 64 e IA-32" (PDF) . Intel. Mayo de 2012. Sección 9.1.4 Primera instrucción ejecutada, pág. 2611. Archivado del original (PDF) el 8 de agosto de 2012. Recuperado el 23 de agosto de 2012. La primera instrucción que se obtiene y ejecuta después de un reinicio de 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 de software debe estar ubicada en esta dirección.
  7. "5.9.1. Tabla de vectores y reinicio" . Manual de referencia técnica de Cortex-M3 . Consultado el 10 de noviembre de 2017 .
  8. "Tabla 4-11 Registros de reinicio AArch64" . Manual de referencia técnica del procesador CortexARM Cortex-A72 MPCore r0p3 . Consultado el 30 de enero de 2024 .
  9. "Documentación – Desarrollador de Arm" . developer.arm.com . Consultado el 21 de junio de 2024 .
  10. "Secuencia de arranque para un sistema embebido basado en ARM -2 - DM" . www.embeddedrelated.com . Consultado el 10 de noviembre de 2017 .
  11. "Arquitectura MIPS32 para programadores; Vol. III: La arquitectura de recursos privilegiados MIPS32" (PDF) . Tecnologías MIPS.
  12. Noergaard, Tammy (28 de febrero de 2005). Arquitectura de sistemas embebidos: una guía completa para ingenieros y programadores . Elsevier. ISBN 9780080491240.
  13. "Manual de usuario del software del núcleo del procesador MIPS32 M4K" (PDF) . cdn2.imgtec.com . 29 de agosto de 2008. Archivado del original (PDF) el 26 de agosto de 2017.
  14. Manual de Arquitectura SPARC, Versión 8. SPARC International . pág. 75. 
  15. Manual de arquitectura SPARC, versión 9. SPARC International. págs. 109–112 . 
  16. ^ Labrosse, Jean J. (2008). Software integrado . Newnes. ISBN 9780750685832.
  17. Wilcox, Dick (4 de octubre de 1976). Manual de referencia del programador de microcomputadoras WD16 (PDF) . Western Digital. pág. 3. Consultado el 21 de agosto de 2025 . 
Obtenido de " https://en.wikipedia.org/w/index.php?title=Reset_vector&oldid=1322178068 "