stringtranslate.com

ISA de poder

Un diagrama esquemático de muy alto nivel de un procesador Power ISA genérico.

Power ISA es una arquitectura de conjunto de instrucciones (ISA) de computadora con conjunto de instrucciones reducido (RISC ) desarrollada actualmente por la Fundación OpenPOWER , liderada por IBM . Fue desarrollado originalmente por IBM y el ahora desaparecido grupo industrial Power.org . Power ISA es una evolución de PowerPC ISA, creada mediante la fusión del PowerPC ISA central y el Libro E opcional para aplicaciones integradas. La fusión de estos dos componentes en 2006 fue liderada por los fundadores de Power.org, IBM y Freescale Semiconductor .

Antes de la versión 3.0, la ISA se divide en varias categorías. Los procesadores implementan un conjunto de estas categorías según sea necesario para su tarea. Se requieren diferentes clases de procesadores para implementar ciertas categorías, por ejemplo, un procesador de clase de servidor incluye las categorías: Base , Servidor , Punto flotante , 64 bits , etc. Todos los procesadores implementan la categoría Base.

Power ISA es una arquitectura de carga/almacenamiento RISC . Tiene múltiples conjuntos de registros :

Las instrucciones hasta la versión 3.0 tienen una longitud de 32 bits, con la excepción del subconjunto VLE (codificación de longitud variable) que proporciona una mayor densidad de código para aplicaciones integradas de gama baja, y la versión 3.1 que introdujo prefijos para crear instrucciones de 64 bits. . La mayoría de las instrucciones son triádicas , es decir, tienen dos operandos de origen y uno de destino. Se admiten operaciones de punto flotante de precisión simple y doble que cumplen con IEEE-754 , incluidas instrucciones adicionales de multiplicación y suma fusionadas (FMA) y de punto flotante decimal. Existen disposiciones para operaciones de instrucción única y datos múltiples (SIMD) en datos enteros y de punto flotante en hasta 16 elementos en una instrucción.

Power ISA tiene soporte para caché Harvard , es decir, cachés de instrucciones y datos divididos , y soporte para cachés unificados. Las operaciones de memoria son estrictamente de carga/almacenamiento, pero permiten la ejecución fuera de orden . También hay soporte para direccionamiento big y little endian con categorías separadas para endianidad modelada y por página, y soporte para direccionamiento tanto de 32 como de 64 bits .

Los diferentes modos de operación incluyen usuario, supervisor e hipervisor.

Categorías

Libros

La especificación Power ISA se divide en cinco partes, denominadas "libros":

Cumplimiento

Lo nuevo de la versión 3 de Power ISA es que no es necesario implementar toda la especificación para cumplirla. La proliferación de instrucciones y tecnologías ha hecho que la especificación completa sea difícil de manejar, por lo que la Fundación OpenPOWER ha decidido habilitar el cumplimiento por niveles.

Estos niveles incluyen requisitos opcionales y obligatorios; sin embargo, un malentendido común es que no hay nada que impida que una implementación sea compatible en un nivel inferior pero tenga funciones adicionales seleccionadas de niveles superiores y extensiones personalizadas. Sin embargo, se recomienda proporcionar una opción para deshabilitar cualquier función agregada más allá del nivel de subconjunto declarado del diseño.

Un diseño debe cumplir en su nivel de subconjunto declarado para hacer uso de la protección de la Fundación con respecto al uso de la propiedad intelectual , ya sean patentes o marcas comerciales . Esto se explica en el CLUF de OpenPOWER. [1]

Un diseño compatible debe: [2]

Si la extensión es lo suficientemente general, la Fundación OpenPOWER solicita que los implementadores la envíen como una Solicitud de comentarios (RFC) al grupo de trabajo OpenPOWER ISA. Tenga en cuenta que no es estrictamente necesario unirse a la Fundación OpenPOWER para enviar RFC. [3]

Discrepancia de cumplimiento de EABI y Linux

Las especificaciones de EABI son anteriores al anuncio y creación de los subconjuntos de Cumplimiento.

Con respecto al subconjunto de compatibilidad de Linux que tiene VSX (SIMD) opcional: en 2003–4, EABI v1.9 de 64 bits hizo que SIMD fuera opcional, [4] pero en julio de 2015, para mejorar el rendimiento de los sistemas IBM POWER9, SIMD se hizo obligatorio en EABI v2.0. [5] Esta discrepancia entre que SIMD sea opcional en el nivel de cumplimiento de Linux pero obligatorio en EABI v2.0 no se puede rectificar sin un esfuerzo considerable: la incompatibilidad hacia atrás para distribuciones de Linux no es una opción viable. En la actualidad, esto deja a los nuevos implementadores de OpenPOWER que desean ejecutar distribuciones estándar de Linux teniendo que implementar una enorme cantidad de 962 instrucciones. Por el contrario, RISC-V RV64GC, el mínimo para ejecutar Linux, requiere sólo 165. [6]

Especificaciones

Energía ISA v.2.03

La especificación para Power ISA v.2.03 [7] se basa en el antiguo PowerPC ISA v.2.02 [8] en POWER5 + y la extensión del Libro E [9] de la especificación PowerPC . El Libro I incluyó cinco capítulos nuevos sobre unidades de procesamiento auxiliares como DSP y la extensión AltiVec .

Núcleos compatibles

Energía ISA v.2.04

La especificación para Power ISA v.2.04 [10] se finalizó en junio de 2007. Se basa en Power ISA v.2.03 e incluye cambios principalmente en la parte del Libro III-S con respecto a virtualización , funciones de hipervisor , particionamiento lógico y manejo de páginas virtuales .

Núcleos compatibles

Energía ISA v.2.05

La especificación para Power ISA v.2.05 [11] se publicó en diciembre de 2007. Se basa en Power ISA v.2.04 e incluye cambios principalmente en el Libro I y el Libro III-S , incluidas mejoras significativas como la aritmética decimal (Categoría: Decimal). Punto flotante en el Libro I ) y mejoras en el hipervisor del servidor.

Núcleos compatibles

Energía ISA v.2.06

La especificación para Power ISA v.2.06 [12] se publicó en febrero de 2009 y se revisó en julio de 2010. [13] Está basada en Power ISA v.2.05 e incluye extensiones para el procesador POWER7 y el núcleo e500-mc . Una nueva característica importante son las instrucciones de punto flotante escalar vectorial ( VSX ). [14] El Libro III-E también incluye mejoras significativas para la especificación integrada con respecto al hipervisor y la virtualización en implementaciones de uno y varios núcleos.

La especificación se revisó en noviembre de 2010 a la especificación Power ISA v.2.06 revisión B, mejorando las funciones de virtualización. [13] [15]

Núcleos compatibles

Energía ISA v.2.07

La especificación para Power ISA v.2.07 [16] se publicó en mayo de 2013. Se basa en Power ISA v.2.06 e incluye importantes mejoras en las funciones de partición lógica , memoria transaccional , supervisión de rendimiento ampliada, nuevas funciones de control de almacenamiento y adiciones a la Instalaciones vectoriales VMX y VSX (VSX-2), junto con AES [16] : 257  [17] y Galois Counter Mode (GCM), SHA-224, SHA-256, [16] : 258  SHA-384 y SHA-512 [16] : 258  ( SHA-2 ) extensiones criptográficas y algoritmos de verificación de redundancia cíclica (CRC) . [18]

La especificación se revisó en abril de 2015 a la especificación Power ISA v.2.07 B. [19] [20]

Núcleos compatibles

Energía ISA v.3.0

La especificación para Power ISA v.3.0 [21] [22] se publicó en noviembre de 2015. Es la primera en aparecer después de la fundación de OpenPOWER Foundation e incluye mejoras para un amplio espectro de cargas de trabajo y elimina el servidor y las categorías integradas. manteniendo la compatibilidad con versiones anteriores y agrega soporte para instrucciones VSX-3. Las nuevas funciones incluyen operaciones de punto flotante de cuatro precisión de 128 bits, un generador de números aleatorios , recolección de basura asistida por hardware y computación confiable aplicada por hardware.

La especificación se revisó en marzo de 2017 a la especificación Power ISA v.3.0 B, [19] [23] y se revisó nuevamente a v3.0C en mayo de 2020. [19] [24] [25] Un cambio importante con respecto a v3.0 a v3.0B es la eliminación del soporte para la recolección de basura asistida por hardware. La diferencia clave entre v3.0B y v3.0C es que los niveles de cumplimiento enumerados en v3.1 también se agregaron a v3.0C.

Núcleos compatibles

Energía ISA v.3.1

La especificación para Power ISA v.3.1 [19] [27] se publicó en mayo de 2020. Principalmente brinda soporte para nuevas funciones introducidas en Power10, pero también incluye la noción de opcionalidad de la especificación PowerISA. Las instrucciones ahora pueden tener ocho bytes de longitud, "instrucciones con prefijo", en comparación con las habituales "instrucciones de palabra" de cuatro bytes. También se agregan muchas funciones nuevas a las instrucciones SIMD y VSX. VSX y la extensión SVP64 brindan soporte de hardware para flotantes de media precisión de 16 bits. [28] [29]

Un beneficio clave de las nuevas instrucciones con prefijo de 64 bits es la extensión de los inmediatos en las ramas a 34 bits.

La especificación se revisó en septiembre de 2021 a la especificación Power ISA v.3.1B. [19] [30]

La especificación se revisó en mayo de 2024 a la especificación Power ISA v.3.1C. [19] [31]

Núcleos compatibles

Ver también

Referencias

  1. ^ Borrador final del EULA de Power ISA
  2. ^ The Open Power ISA: cumplimiento de la arquitectura y fundamentos futuros
  3. ^ Sección 2.2 del EULA de ISA de OPF Power
  4. ^ ELF PP64 ABI
  5. ^ OpenPOWER EABI v2
  6. ^ Página 18 RISC-V "tarjeta verde"
  7. ^ "Poder ISA v.2.03" (PDF) . Power.org. 29 de septiembre de 2006. Archivado desde el original (PDF) el 27 de julio de 2011.
  8. ^ "Libro de arquitectura de PowerPC, versión 2.02". IBM. 2005-02-24. Archivado desde el original el 18 de octubre de 2007 . Consultado el 16 de marzo de 2007 .
  9. ^ "PowerPC Book E v.1.0" (PDF) . IBM. 2002-05-07. Archivado (PDF) desde el original el 10 de marzo de 2018 . Consultado el 16 de marzo de 2007 .
  10. ^ "Power ISA versión 2.04" (PDF) . Power.org. 2007-06-12. Archivado desde el original (PDF) el 27 de septiembre de 2007 . Consultado el 14 de junio de 2007 .
  11. ^ "Power ISA versión 2.05". Power.org. 2007-10-23. Archivado desde el original el 24 de noviembre de 2012 . Consultado el 18 de diciembre de 2007 .
  12. ^ "Power.org presenta avances en especificaciones y nuevos servicios en la conferencia de desarrolladores de Power Architecture" (Presione soltar). Power.org. 2007-09-24. Archivado desde el original el 12 de octubre de 2007 . Consultado el 24 de septiembre de 2007 .
  13. ^ ab "Power ISA Versión 2.06 Revisión B". Power.org. 2010-07-23. Archivado desde el original el 24 de noviembre de 2012 . Consultado el 12 de febrero de 2011 .
  14. ^ "Aceleración de la carga de trabajo con la arquitectura escalar vectorial de IBM POWER". IBM. 2016-03-01 . Consultado el 2 de mayo de 2017 .
  15. ^ "Power ISA 2.06 Rev. B permite la virtualización completa del hardware para el espacio integrado". EETimes. 2010-11-03 . Consultado el 8 de junio de 2011 .
  16. ^ abcd "Power ISA versión 2.07" (PDF) . Power.org. 2013-05-15 . Consultado el 2 de noviembre de 2023 .
  17. ^ Barbosa, Leónidas (21 de septiembre de 2014). "Criptografía interna de POWER8". IBM.
  18. ^ Técnicas de optimización y ajuste del rendimiento para procesadores IBM Power Systems, incluido IBM POWER8. IBM. Agosto de 2015. pág. 48.ISBN 9780738440927.
  19. ^ abcdef "Arquitectura del conjunto de instrucciones". Fundación OpenPOWER .
  20. ^ "Power ISA versión 2.07 B". Power.org. 2015-04-09 . Consultado el 23 de febrero de 2023 .
  21. ^ Anuncio de una nueva era de apertura con Power 3.0
  22. ^ "Power ISA versión 3.0". openpowerfoundation.org. 2016-11-30 . Consultado el 6 de enero de 2017 .[ enlace muerto ]
  23. ^ "Power ISA versión 3.0 B". IBM. 2017-03-29 . Consultado el 23 de febrero de 2023 .
  24. ^ "Power ISA versión 3.0 C". Fundación OpenPOWER. 2020-05-01 . Consultado el 23 de febrero de 2023 .
  25. ^ lista de especificaciones de Power ISA
  26. ^ [PARCHE, COMPROMETIDO] Agregue soporte completo para binutils Power ISA 3.0 / POWER9
  27. ^ "Power ISA versión 3.1". Fundación OpenPOWER. 2020-05-01 . Consultado el 23 de febrero de 2023 .
  28. ^ "OPF_PowerISA_v3.1B.pdf". Archivos OpenPOWER . Fundación OpenPOWER . Consultado el 2 de julio de 2023 .
  29. ^ "ls005.xlen.mdwn". libre-soc.orgGit . Consultado el 2 de julio de 2023 .
  30. ^ "Power ISA versión 3.1B". Fundación OpenPOWER. 2021-09-14 . Consultado el 23 de febrero de 2023 .
  31. ^ "Power ISA versión 3.1C". Fundación OpenPOWER. 2024-05-26 . Consultado el 4 de julio de 2024 .
  32. ^ Seo, Carlos Eduardo (12 de mayo de 2020). "Lanzamos la arquitectura del conjunto de instrucciones para POWER10. Power ISA v3.1 está disponible en el Portal de IBM para OpenPOWER". twitter.com . Consultado el 23 de mayo de 2020 .