Configuración avanzada y la Interfaz de energía ( ACPI ) proporcionan un estándar abierto que los sistemas operativos pueden usar para descubrir y configurar los componentes de hardware de la computadora , para realizar la administración de la energía (por ejemplo) poner los componentes no utilizados en suspensión y realizar el monitoreo de estado . Lanzado por primera vez en diciembre de 1996, ACPI pretende reemplazar la Administración avanzada de energía (APM), la Especificación de multiprocesador y la Especificación de BIOS Plug and Play (PnP). [1]ACPI pone la administración de energía bajo el control del sistema operativo, a diferencia del anterior sistema centrado en BIOS que se basó en el firmware específico de la plataforma para determinar la administración de energía y las políticas de configuración. [2] La especificación es fundamental para la configuración dirigida por el sistema operativo y el sistema de administración de energía ( OSPM ), una implementación para ACPI que elimina las responsabilidades de administración de dispositivos de las interfaces de firmware heredadas a través de una interfaz de usuario.
Internamente, ACPI anuncia los componentes disponibles y sus funciones al kernel del sistema operativoutilizando listas de instrucciones ("métodos") provistas a través del firmware del sistema ( Unified Extensible Firmware Interface (UEFI) o BIOS ), que analiza el kernel. ACPI luego ejecuta las operaciones deseadas escritas en el lenguaje de máquina ACPI (como la inicialización de componentes de hardware) utilizando una máquina virtual mínima incrustada .
Intel , Microsoft y Toshiba originalmente desarrollaron el estándar, mientras que HP , Huawei y Phoenix también participaron más tarde. En octubre de 2013, ACPI Special Interest Group (ACPI SIG), los desarrolladores originales del estándar ACPI, acordaron transferir todos los activos al Foro UEFI , en el que se llevará a cabo todo el desarrollo futuro. [3]
El Foro UEFI publicó la última versión de la norma, "Revisión 6.3", a finales de enero de 2019.
Arquitectura [ editar ]
El nivel de firmware ACPI tiene tres componentes principales: las tablas ACPI, el BIOS ACPI y los registros ACPI. A diferencia de sus predecesores, como el BIOS APM o PnP, el ACPI implementa poca funcionalidad en el código del BIOS ACPI, cuya función principal es cargar las tablas ACPI en la memoria del sistema. En cambio, la mayor parte de la funcionalidad ACPI firmware se proporciona en el código de bytes de ACPI Machine Language(AML), un Turing completo , específico de dominio lenguaje de bajo nivel , almacenada en las tablas ACPI. [5]Para hacer uso de estas tablas, el sistema operativo debe tener un intérpretepara el bytecode AML. La arquitectura de componentes ACPI (ACPICA) proporciona una implementación de intérprete de AML de referencia. En el momento del desarrollo del BIOS, el código de bytes AML se compila a partir del código ASL (lenguaje de origen ACPI). [6] [7]
Como ACPI también reemplaza al BIOS PnP, también proporciona un enumerador de hardware, implementado principalmente en la tabla ACPI de la Tabla de descripción de sistemas diferenciados (DSDT). La ventaja de un enfoque de bytecode es que, a diferencia del código BIOS PnP (que era de 16 bits), el bytecode ACPI se puede usar en cualquier sistema operativo, incluso en el modo largo de 64 bits . [7]
La decisión general de diseño no estuvo exenta de críticas. En noviembre de 2003, Linus Torvalds, autor del kernel de Linux, describió a ACPI como "un completo desastre de diseño en todos los sentidos". [8] [9] En 2001, otros desarrolladores senior de software de Linux como Alan Cox expresaron su preocupación por los requisitos de que el kernel debe ejecutar el bytecode de una fuente externa con todos los privilegios, así como la complejidad general de la especificación ACPI. [10] En 2014, Mark Shuttleworth , fundador de la distribución de Ubuntu Linux , comparó ACPI con caballos de Troya . [11]
Arquitectura de componentes ACPI (ACPICA) [ editar ]
La arquitectura de componentes ACPI ( ACPICA ), principalmente escrita por ingenieros de Intel, proporciona una implementación de referencia de código abierto independiente del código ACPI relacionado con el sistema operativo. [12] El código ACPICA es utilizado por Linux, Haiku y FreeBSD, [6] que lo complementan con su código específico del sistema operativo.
Historia [ editar ]
La primera revisión de la especificación ACPI se lanzó en diciembre de 1996, y admite espacios de direccionamiento de 16 y 32 bits . No fue hasta agosto de 2000 cuando ACPI recibió soporte para direcciones de 64 bits , así como soporte para estaciones de trabajo multiprocesador y servidores con revisión 2.0.
En septiembre de 2004, se lanzó la revisión 3.0, que lleva a la especificación ACPI para controladores SATA , bus PCI Express , soporte multiprocesador para más de 256 procesadores, sensores de luz ambiental y dispositivos de presencia de usuarios, así como para extender el modelo térmico más allá del anterior. Soporte centrado en el procesador.
Lanzada en junio de 2009, la revisión 4.0 de la especificación ACPI agregó varias características nuevas al diseño; las más notables son la compatibilidad con USB 3.0 , la compatibilidad con el ralentí del procesador lógico y la compatibilidad con x2APIC .
La revisión 5.0 de la especificación ACPI se publicó en diciembre de 2011, [13] seguida de la revisión 5.1 que se publicó en julio de 2014. [14]
La última revisión de la especificación es 6.3, que se publicó a finales de enero de 2019. [4]
Sistemas operativos [ editar ]
Windows 98 de Microsoft fue el primer sistema operativo en implementar ACPI, [15] [16] pero su implementación fue algo defectuosa o incompleta, [17] [18] aunque algunos de los problemas asociados con ella fueron causados por la primera generación de hardware ACPI . [19] La primera edición de Windows 98 deshabilitó ACPI de forma predeterminada, excepto en una lista blanca de sistemas. Otros sistemas operativos, incluidas versiones posteriores de Windows , eComStation , FreeBSD , NetBSD , OpenBSD , HP-UX , OpenVMS , Linux y versiones para PC deSolaris , tiene al menos algo de soporte para ACPI. [20] Algunos sistemas operativos más nuevos, como Windows Vista , requieren un BIOS compatible con ACPI para funcionar. [21] Sin embargo, Windows Vista a veces no funciona con el ACPI de una placa base.
La serie 2.4 del kernel de Linux tenía un soporte mínimo para ACPI, con un mejor soporte implementado (y habilitado de forma predeterminada) desde la versión 2.6.0 del kernel en adelante. [22] Las implementaciones antiguas de BIOS ACPI tienden a ser bastante defectuosas y, por lo tanto, no son compatibles con sistemas operativos posteriores. Por ejemplo, Windows 2000 , Windows XP y Windows Server 2003 solo usan ACPI si la fecha de la BIOS es posterior al 1 de enero de 1999, y para Windows 98 Segunda edición esta fecha es el 1 de diciembre de 1999. [23] De manera similar, el kernel de Linux 2.6 está en la lista negra cualquier ACPI BIOS desde antes del 1 de enero de 2001. [22]
Responsabilidades OSPM [ editar ]
Una vez que un sistema operativo compatible con OSPM activa ACPI, toma el control exclusivo de todos los aspectos de la administración de energía y la configuración del dispositivo. La implementación de OSPM debe exponer un entorno compatible con ACPI a los controladores de dispositivo, lo que expone ciertos estados del sistema, dispositivo y procesador.
Estados de poder [ editar ]
Estados globales [ editar ]
La especificación ACPI define los siguientes cuatro estados globales "Gx" y seis estados de suspensión "Sx" para un sistema informático compatible con ACPI: [24] [25]
Gx | Nombre | Sx | Descripción |
---|---|---|---|
G0 | Trabajando | S0 | La computadora está funcionando y la CPU ejecuta las instrucciones. "Awaymode" es un subconjunto de S0, donde el monitor está apagado pero las tareas en segundo plano se están ejecutando |
G1 | Dormido | S1 | Power on Suspend (POS): las memorias caché del procesador se vacían y la CPU deja de ejecutar las instrucciones. Se mantiene la alimentación de la (s) CPU (s) y RAM. Los dispositivos que no indican que deben permanecer encendidos pueden estar apagados |
S2 | CPU apagada. Caché sucio se vacía a la memoria RAM | ||
S3 | comúnmente se conoce como modo de espera , Sleep , o suspensión a RAM (STR) :RAM sigue siendo accionado | ||
S4 | Hibernación o Suspensión a disco: todo el contenido de la memoria principal se guarda en una memoria no volátil , como un disco duro , y el sistema se apaga | ||
G2 | Suave apagado | S5 | G2 / S5 es casi lo mismo que el apagado mecánico G3 , excepto que la unidad de fuente de alimentación (PSU) aún suministra energía, como mínimo, al botón de encendido para permitir el retorno a S0. Se requiere un reinicio completo. No se retiene ningún contenido anterior. Otros componentes pueden permanecer encendidos para que la computadora pueda "despertar" en la entrada del teclado, reloj, módem , LAN odispositivo USB |
G3 | Apagado mecánico | La energía de la computadora ha sido totalmente eliminada a través de un interruptor mecánico (como en la parte posterior de una fuente de alimentación). El cable de alimentación se puede quitar y el sistema es seguro para el desmontaje (por lo general, solo el reloj en tiempo real continúa funcionando con su propia pequeña batería) |
La especificación también define un estado Legacy : el estado en un sistema operativo que no es compatible con ACPI. En este estado, el hardware y la alimentación no se administran a través de ACPI, lo que deshabilita efectivamente a ACPI.
Estados del dispositivo [ editar ]
Los estados del dispositivo D0 - D3 son dependientes del dispositivo:
- D0 o Totalmente encendido es el estado operativo.
- D1 y D2 son estados de energía intermedios cuya definición varía según el dispositivo.
- D3 : el estado D3 se divide en D3 en caliente (tiene alimentación auxiliar) y en D3 en frío (sin alimentación):
- Caliente : un dispositivo puede hacer valer las solicitudes de administración de energía para hacer la transición a estados de mayor potencia.
- Frío o Apagado tiene el dispositivo apagado y no responde a su bus.
Estados del procesador [ editar ]
Los estados de potencia de la CPU C0 - C3 se definen de la siguiente manera:
- C0 es el estado operativo.
- C1 (a menudo conocido como Halt ) es un estado donde el procesador no está ejecutando instrucciones, pero puede regresar a un estado de ejecución esencialmente de forma instantánea. Todos los procesadores conformes con ACPI deben admitir este estado de alimentación. Algunos procesadores, como el Pentium 4 , también admiten un estado C1 mejorado ( C1E o estado de parada mejorado) para un menor consumo de energía. [26]
- C2 (a menudo conocido como Stop-Clock ) es un estado en el que el procesador mantiene todo el estado visible del software, pero puede tardar más en despertarse. Este estado del procesador es opcional.
- C3 (a menudo conocido como Sleep ) es un estado en el que el procesador no necesita mantener su caché coherente , sino que mantiene otro estado. Algunos procesadores tienen variaciones en el estado C3 (Deep Sleep, Deeper Sleep, etc.) que difieren en cuanto al tiempo que tarda en activar el procesador. Este estado del procesador es opcional.
- Los estados adicionales son definidos por los fabricantes para algunos procesadores. Por ejemplo, la plataforma Haswell de Intel tiene estados hasta C10 , donde distingue estados centrales y estados de paquetes . [27]
Estados de rendimiento [ editar ]
Mientras un dispositivo o procesador funciona (D0 y C0, respectivamente), puede estar en uno de varios estados de rendimiento de potencia . Estos estados son dependientes de la implementación. Sin embargo, P0 es siempre el estado de más alto rendimiento; siendo P1 a P n estados sucesivamente de menor rendimiento, hasta un límite específico de la implementación de n no mayor que 16. [28]
Los estados P se han conocido como SpeedStep en procesadores Intel , como PowerNow! o Cool'n'Quiet en procesadores AMD , y como PowerSaver en procesadores VIA .
- P0 potencia máxima y frecuencia
- P1 menos que P0 , escalado de voltaje y frecuencia
- P2 menor que P1 , escalado de voltaje y frecuencia
- Pn menor que P (n – 1) , escalado de voltaje y frecuencia
Interfaz de hardware [ editar ]
Los sistemas compatibles con ACPI interactúan con el hardware a través de una "Interfaz de hardware de función fija (FFH)", o un modelo de programación de hardware independiente de la plataforma que se basa en el lenguaje de máquina ACPI (AML) específico de la plataforma proporcionado por el fabricante del equipo original (OEM).
Las interfaces de hardware fijo de función son características específicas de la plataforma, proporcionadas por los fabricantes de la plataforma con fines de rendimiento y recuperación de fallas. Las PC estándar basadas en Intel tienen una interfaz de función fija definida por Intel, [29] que proporciona un conjunto de funciones centrales que reduce la necesidad de un sistema compatible con ACPI de pilas de controladores completas para proporcionar una funcionalidad básica durante el tiempo de arranque o en el caso de un sistema principal fracaso.
La interfaz de error de plataforma ACPI (APEI) es una especificación para informar errores de hardware, por ejemplo, del chipset, al sistema operativo.
Interfaz de firmware [ editar ]
ACPI define muchas tablas que proporcionan la interfaz entre un sistema operativo compatible con ACPI y el firmware del sistema. Esto incluye, por ejemplo, la Tabla de descripción de sistemas diferenciados (DSDT), la Tabla de descripción de sistemas secundarios (SSDT) y la Tabla de afinidad de recursos estáticos (SRAT). [30]
Las tablas permiten la descripción del hardware del sistema de manera independiente de la plataforma, y se presentan como estructuras de datos de formato fijo o en AML. La tabla principal de AML es la DSDT (tabla de descripción del sistema diferenciado).
El puntero de descripción del sistema raíz se ubica de manera dependiente de la plataforma y describe el resto de las tablas.
Riesgos de seguridad [ editar ]
El fundador de Ubuntu , Mark Shuttleworth, ha comparado el ACPI con los caballos de Troya . [31] Él describió elfirmware propietario (relacionado con ACPI o cualquier otro firmware) como un riesgo de seguridad, diciendo que "el firmware de su dispositivo es el mejor amigo de la NSA " y el firmware de llamada (ACPI o no ACPI) "un troyano Caballo de proporciones monumentales ". Señaló que el firmware de código cerrado y de baja calidad es una amenaza importante para la seguridad del sistema: [8] "Su mayor error es asumir que la NSA es la única institución que abusa de esta posición de confianza; de hecho, es razonable suponer que todo el firmware es un pozo de inseguridad, cortesía de incompetencia del mayor grado de los fabricantes y competencia del más alto grado de una amplia gama de agencias. ".
Como solución a este problema, ha solicitado un firmware declarativo (ACPI o no ACPI). [8] El firmware debe ser de código abierto para que el código pueda verificarse y verificarse. El firmware debe ser declarativo, lo que significa que debe describir "vínculos y dependencias de hardware" y no debe incluir código ejecutable .
El proceso de configuración de los Estándares de acceso directo de California en 1997 identificó la necesidad de estandarizar el identificador de la etiqueta del medidor eléctrico para crear un identificador único para cada medidor eléctrico en los Estados Unidos. El formato de etiqueta del medidor AEP es una solución recomendada para esta necesidad. [1]
Formato [ editar ]
El formato de la etiqueta del medidor AEP cumple con los requisitos de ANSI C12.10 para el formato de las etiquetas del medidor eléctrico. (Ver abajo) El formato de la etiqueta de código de barras es:
dónde
Uso [ editar ]
El código de prueba del medidor es utilizado por los fabricantes de equipos de calibración para configurar automáticamente su equipo para calibrar un medidor determinado. El usuario escanea el código de barras AEP en el medidor y el calibrador utilizará el voltaje y los amperios de prueba correctos . Los últimos cinco caracteres son especificados por el usuario y muchas utilidades eléctricas usan estos caracteres para un código de inventario o fecha de fabricación.
No hay comentarios:
Publicar un comentario