Computación de 128 bits - 128-bit computing
Anchos de bits de arquitectura de computadora |
---|
Poco |
Solicitud |
Precisión binaria de coma flotante |
Precisión de coma flotante decimal |
En la arquitectura de la computadora , los enteros de 128 bits , las direcciones de memoria u otras unidades de datos son aquellos que tienen 128 bits (16 octetos ) de ancho. Además, las arquitecturas de CPU y ALU de 128 bits son aquellas que se basan en registros , buses de direcciones o buses de datos de ese tamaño.
Si bien actualmente no hay procesadores convencionales de propósito general diseñados para operar con números enteros o direcciones de 128 bits , varios procesadores tienen formas especializadas de operar con fragmentos de datos de 128 bits.
Representación
Los procesadores de 128 bits se pueden utilizar para direccionar directamente hasta 2 128 (más3,40 × 10 38 ) bytes, lo que superaría en gran medida el total de datos capturados, creados o replicados en la Tierra a partir de 2018, que se ha estimado en alrededor de 33 zettabytes (más de 274 bytes).
Un registro de 128 bits puede almacenar 2 128 (más de 3,40 × 10 38 ) valores diferentes. El rango de valores enteros que se pueden almacenar en 128 bits depende de la representación de enteros utilizada. Con los dos más comunes las representaciones, el rango es de 0 a 340,282,366,920,938,463,463,374,607,431,768,211,455 (2 128 - 1) para la representación como una ( sin signo ) número binario , y -170,141,183,460,469,231,731,687,303,715,884,105,728 (-2 127 ) a través de 170,141,183,460,469,231,731,687,303,715,884,105,727 (2 127 - 1) para la representación como complemento a dos .
Los números de coma flotante de precisión cuádruple (128 bits) pueden almacenar números enteros o números de coma fija de 113 bits con precisión sin perder precisión (por lo tanto, enteros de 64 bits en particular). Los flotadores de precisión cuádruple también pueden representar cualquier posición en el universo observable con al menos una precisión micrométrica.
Los números de coma flotante Decimal128 pueden representar números con hasta 34 dígitos significativos.
Historia
Un multicomparador de 128 bits fue descrito por investigadores en 1976.
El IBM System / 370 podría considerarse la primera computadora simple de 128 bits, ya que utiliza registros de coma flotante de 128 bits . La mayoría de las CPU modernas cuentan con una sola instrucción, conjuntos de instrucciones de datos múltiples (SIMD) ( Extensiones de Streaming SIMD , AltiVec , etc.) donde se utilizan registros vectoriales de 128 bits para almacenar varios números más pequeños, como cuatro números de coma flotante de 32 bits. Entonces, una sola instrucción puede operar en todos estos valores en paralelo. Sin embargo, estos procesadores no funcionan con números individuales de 128 dígitos binarios de longitud; solo sus registros tienen un tamaño de 128 bits.
El DEC VAX admitía operaciones en tipos de datos enteros de 128 bits ('O' u octapalabra) y de punto flotante de 128 bits ('H-float' o HFLOAT). El soporte para tales operaciones era una opción de actualización en lugar de ser una característica estándar. Dado que los registros del VAX tenían 32 bits de ancho, una operación de 128 bits usaba cuatro registros consecutivos o cuatro palabras largas en la memoria.
La serie ICL 2900 proporcionó un acumulador de 128 bits y su conjunto de instrucciones incluía aritmética decimal empaquetada y de coma flotante de 128 bits .
Los investigadores diseñaron una CPU con extensiones multimedia de 128 bits en 1999.
La Dreamcast y PlayStation 2, entre la sexta generación de consolas de juegos de vídeo utilizan el término "128 bits" en su comercialización para describir su capacidad. La CPU de la Playstation 2 tenía capacidades SIMD de 128 bits . Ninguna consola admitía direccionamiento de 128 bits ni aritmética de números enteros de 128 bits.
Hardware
La especificación RISC-V ISA de 2016 incluye una reserva para una versión de 128 bits de la arquitectura, pero los detalles permanecen sin definir intencionalmente, porque todavía hay muy poca experiencia práctica con sistemas de memoria tan grandes.
Los chips de la unidad de procesamiento de gráficos (GPU) comúnmente mueven datos a través de un bus de 128 bits.
Software
De la misma manera que los compiladores emulan, por ejemplo, la aritmética de enteros de 64 bits en arquitecturas con tamaños de registro inferiores a 64 bits, algunos compiladores también admiten la aritmética de enteros de 128 bits. Por ejemplo, el compilador de GCC C 4.6 y posterior tiene un tipo entero de 128 bits __int128
para algunas arquitecturas. Los compiladores GCC y compatibles señalan la presencia de aritmética de 128 bits cuando __SIZEOF_INT128__
se define la macro . Para el lenguaje de programación C , el soporte de 128 bits es opcional, por ejemplo, a través del int128_t
tipo, o puede implementarse mediante una extensión específica del compilador. El lenguaje de programación Rust tiene soporte integrado para enteros de 128 bits (originalmente a través de LLVM ), que se implementa en todas las plataformas. Un tipo de 128 bits proporcionado por un compilador de C puede estar disponible en Perl a través del Math::Int128
módulo.
Usos
- El software libre utilizado para implementar la arquitectura RISC-V está definido para 32, 64 y 128 bits de ancho de datos enteros.
- Los identificadores únicos universales (UUID) constan de un valor de 128 bits.
- IPv6 enruta el tráfico de la red informática entre un rango de direcciones de 128 bits.
- ZFS es un sistema de archivos de 128 bits.
- 128 bits es un tamaño de clave común para cifrados simétricos y un tamaño de bloque común para cifrados de bloque en criptografía .
- El conjunto de instrucciones virtuales de IBM i define todos los punteros como de 128 bits. Esto se traduce al conjunto de instrucciones reales del hardware según sea necesario, lo que permite que el hardware subyacente cambie sin necesidad de volver a compilar el software. El hardware anterior era CISC de 48 bits , mientras que el hardware actual es PowerPC de 64 bits . Debido a que los punteros se definen como de 128 bits, el hardware futuro puede ser de 128 bits sin incompatibilidad de software.
- El aumento del tamaño de la palabra puede acelerar múltiples precisión bibliotecas matemáticas, con aplicaciones a la criptografía , y potencialmente acelerar los algoritmos utilizados en el procesamiento complejo de matemático ( análisis numérico , procesamiento de señales , complejo de edición de fotos y de audio y procesamiento de vídeo ).
- MD5 es una función hash que produce un valor hash de 128 bits.
- Apache Avro utiliza un número aleatorio de 128 bits como marcador de sincronización para la división eficiente de archivos de datos.