stringtranslate.com

Decimal densamente empaquetado

El decimal densamente empaquetado ( DPD ) es un método eficiente para codificar en binario dígitos decimales .

El sistema tradicional de codificación binaria para dígitos decimales, conocido como decimal codificado en binario (BCD), utiliza cuatro bits para codificar cada dígito, lo que da como resultado un desperdicio significativo de ancho de banda de datos binarios (ya que cuatro bits pueden almacenar 16 estados y se utilizan para almacenar solo 10), incluso cuando se utiliza BCD empaquetado . El decimal densamente empaquetado es un código más eficiente que empaqueta tres dígitos en diez bits utilizando un esquema que permite la compresión desde, o la expansión a, BCD con solo dos o tres retardos de compuerta de hardware . [1]

La codificación decimal densamente empaquetada es un refinamiento de la codificación Chen-Ho ; ofrece las mismas ventajas de compresión y velocidad, pero la disposición particular de los bits utilizados confiere ventajas adicionales:

Historia

En 1969, Theodore M. Hertz y, en 1971, Tien Chi Chen (陳天機) con Irving Tze Ho (何宜慈) idearon códigos de prefijo sin pérdida (conocidos como codificaciones de Hertz y Chen–Ho [2] ) que empaquetaban tres dígitos decimales en diez bits binarios utilizando un esquema que permitía la compresión o expansión a BCD con solo dos o tres retrasos de compuerta en el hardware. El decimal densamente empaquetado es un refinamiento de esto, ideado por Mike F. Cowlishaw en 2002, [1] que se incorporó a los estándares IEEE 754-2008 [3] e ISO/IEC/IEEE 60559:2011 [4] para coma flotante decimal .

Codificación

Al igual que la codificación Chen-Ho, la codificación DPD clasifica cada dígito decimal en uno de dos rangos, según el bit más significativo de la forma binaria: los dígitos "pequeños" tienen valores de 0 a 7 (binario 0000-0111), y los dígitos "grandes", de 8 a 9 (binario 1000-1001). Una vez que se sabe o se ha indicado que un dígito es pequeño, se requieren tres bits más para especificar el valor. Si se ha indicado un valor grande, solo se requiere un bit para distinguir entre los valores 8 o 9.

Al codificar, los bits más significativos de cada uno de los tres dígitos que se van a codificar determinan uno de los ocho patrones de codificación para los bits restantes, según la siguiente tabla. La tabla muestra cómo, al decodificar, los diez bits de la forma codificada en las columnas b9 a b0 se copian en los tres dígitos d2 a d0 , y los bits restantes se rellenan con ceros o unos constantes.

Los bits b7, b4 y b0 ( c, fy i) pasan a través de la codificación sin cambios y no afectan el significado de los otros bits. Los siete bits restantes pueden considerarse una codificación de siete bits para tres dígitos de base 5.

Los bits b8 y b9 no son necesarios y se ignoran al decodificar grupos DPD con tres dígitos grandes (marcados como "x" en la última fila de la tabla anterior), pero se rellenan con ceros al codificar.

Los ocho valores decimales cuyos dígitos son todos 8 o 9 tienen cuatro codificaciones cada uno. Los bits marcados con x en la tabla anterior se ignoran en la entrada, pero siempre serán 0 en los resultados calculados. (Las codificaciones no estándar 3 × 8 = 24 llenan el espacio entre 10 3  = 1000 y 2 10  − 1 = 1023).

Ejemplos

Esta tabla muestra algunos números decimales representativos y sus codificaciones en BCD, Chen-Ho y decimal densamente empaquetado (DPD):

Véase también

Referencias

  1. ^ ab Cowlishaw, Michael Frederic (2002-08-07) [mayo de 2002]. "Codificación decimal densamente empaquetada". IEE Proceedings - Computers and Digital Techniques . 149 (3). Londres, Reino Unido: Institution of Electrical Engineers : 102–104. doi :10.1049/ip-cdt:20020407. ISSN  1350-2387. Archivado desde el original el 2017-05-20 . Consultado el 2016-02-07 .
  2. ^ Cowlishaw, Michael Frederic (2014) [junio de 2000]. "Un resumen de la codificación de datos decimales Chen-Ho". IBM . Archivado desde el original el 24 de septiembre de 2015 . Consultado el 7 de febrero de 2016 .
  3. ^ IEEE Computer Society (29 de agosto de 2008). Estándar IEEE para aritmética de punto flotante. IEEE . doi :10.1109/IEEESTD.2008.4610935. ISBN 978-0-7381-5753-5. IEEE Std 754-2008 . Consultado el 8 de febrero de 2016 .
  4. ^ ISO/IEC/IEEE 60559:2011. 2011. Archivado desde el original el 3 de junio de 2020. Consultado el 8 de febrero de 2016 .
  5. ^ Cowlishaw, Michael Frederic (13 de febrero de 2007) [3 de octubre de 2000]. "Un resumen de la codificación decimal densamente empaquetada". IBM . Archivado desde el original el 24 de septiembre de 2015 . Consultado el 7 de febrero de 2016 .

Lectura adicional