domingo, 18 de enero de 2009

Administración del sistema

El modo de administración de sistema (SMM) proporciona un entorno operativo alternativo que se usa para administrar y monitorizar varios sistemas para que usen la energía de modo mas eficiente, para controlar el hardware del sistema, y/o para ejecutar código propietario. Se introdujo con la arquitectura IA-32 en el procesador Intel386 SL, y está disponible en los procesadores Pentium M, Pentium 4, Intel Xeon, en la familia P6, y en los procesadores Pentium y Intel 486.
SMM es un modo de operación de propósito especial proporcionado para administrar funciones grandes del sistema como la administración de energía, o el control del hardware. Se creó con la intención de ser usado sólo por el firmware del sistema, no por las aplicaciones o por el software de propósito general. El beneficio principal de SMM es que ofrece un entorno del procesador completa y fácilmente aislado que opera transparentemente en el sistema operativo y en el software. Cuando se invoca el SMM a través de una interrupción de administración del sistema (SMI), el procesador guarda el estado del procesador, y cambia a un entorno operativo diferente contenido en la RAM de administración del sistema (SMRAM). Mientras en SMM, el procesador ejecuta el código de administración SMI para responder a operaciones como apagar unidades de discos o monitores que no se usan, ejecutar código propietario, etc. Cuando el administrador de SMI se completa, se ejecuta la instrucción de recuperación (RSM). Esto provoca que el procesador restaure el contexto guardado del procesador, vuelva a cambiar al modo protegido o real-mode, y retome la ejecución de la aplicación interrumpida.
La única manera de entrar en SMM es señalando un SMI a través del pin SMI# en el procesador o a través de un mensaje SMI recibido a través del bus APIC. El SMI es una interrupción externa no enmascarable que opera independientemente desde el mecanismo de interrupciones y excepciones del procesador y del APIC local. El SMI tiene preferencia ante una interrupción enmascarada y ante una NMI.
La única opción para salir de la SMM es ejecutando una instrucción RSM. Esto hará que se siga con el transcurso de la ejecución; durante la ejecución del SMM se desactivan todas las interrupciones hardware.
Si el procesador está en estado HALT cuando recibe una SMI, guarda el hecho en la bandera de auto HALT restart en el estado guardado del procesador. La instrucción HLT no se debe ejecutar durante el SMM, excepto si las interrupciones se activaron poniendo a uno la bandera IF en el registro EFLAGS. Si el procesador se para en SMM, el único evento que puede 'despertarlo' de este estado es una interrupción hardware enmascarada o un reset de hardware.
Si la bandera de restart de instrucción E/S en el campo de identificador de revisión de SMM está activa, el mecanismo de restart de instrucción E/S estará presente en el procesador. Este mecanismo permite que una instrucción de E/S interrumpida se pueda reejecutar cuando se regrese del modo SMM.
Lo siguiente se debe tener en cuenta cuando se diseñan sistemas de procesadores múltiples:
- Cualquier procesador en un sistema multiprocesador puede responder a una SMM
- Cada procesador necesita su propio espacio SMRAM. Este espacio puede estar en la memoria del sistema o en una RAM separada.
- Las SMRAMs para diferentes procesadores se pueden solapar en el mismo espacio de memoria. El código y datos estáticos se pueden compartir entre procesadores.
- El administrador SMI necesitará inicializar el SMBASE para cada procesador.
- Los procesadores pueden responder a SMIs locales a través de sus pines SMI# o SMIs recibidos a través de la interfaz APIC. Esta interfaz puede distribuir SMIs a diferentes procesadores.
- Dos o mas procesadores pueden ejecutarse en SMM al mismo tiempo.
- Cuando se opera con procesadores Pentium en modo de procesamiento dual (DP), el pin SMIACT# se controla sólo por el procesador MRM.
En procesadores que soportan estados extendidos del procesador usando XSAVE/XRSTOR, el procesador no guarda todos los estados relacionados XSAVE/XRSTOR en un SMI. Es responsabilidad del código del administrador SMM preservar el estado de la información.

No hay comentarios: