Sistemas de numeración

Contenido

SISTEMAS DE NUMERACIÓN

Tipos de procesadores

SISTEMAS DE NUMERACIÓN

EL FORMATO IQ

¿Cómo se guarda en memoria un número representado en IQ?

REPRESENTACIÓN EN COMA FLOTANTE

Benchmarks

 

Tipos de procesadores

Procesadores de coma fija/integer

  • Unidad aritmética coma fija, opera con números enteros
  • Mayoría de microcontroladores
  • Bajo precio por MIPS

Procesadores de coma flotante/float

  • Unidad interna via hardware que soporta operaciones en coma flotante (MFLOPS = millones de operaciones de coma flotante por segundo)
  • Alto rango dinámico para cálculo numérico
  • Normalmente muy caros

 

SISTEMAS DE NUMERACIÓN

Cada número se representa según la base

N_{b} = a_{b}b^{n}+a_{b-1}b^{n-1}+...+a_{0}b^{0}+a_{-1}b^{-1}+...+a_{-p}b^{-p}

Donde b es la base

Bases usadas típicamente: binario (2), octal (8), decimal (10), hexadecimal (16)

  • Números binarios enteros sin signo: cada bit representa un valor decimal equivalente a la potencia de 2 correspondiente a la posición del bit que ocupa
  • Números binarios enteros con signo: se usa un bit para el signo. Complemento a dos: los números negativos se representan mediante el número complementario más 1
  • Números binarios con decimales: para operar se obliga a pre-redondear antes, por lo que se produce un error de cuantización. Se podría reservar en la memoria una parte para los enteros y otra para los decimales, logrando mayor precisión. La elección del formato incide directamente en los resultados.Los binarios permiten representar cantidades decimales sabiendo la posición que ocupa la coma decimal.
    • En coma fija el número de bits de la parte decimal es fija
    • En coma flotante el número de bits decimales es variable

En coma fija se puede expresar este formato como ImQn

  • m: es el número de bits de la parte entera
  • n: es el número de bits de la parte decimal

Hay casos particulares como el formato I1Qn con 1 bit en la parte entera que, en números con signo, limita números con valores entre +1 y -1, por lo que se denomina fraccionario puro.

EL FORMATO IQ

Si tenemos un formato I9Q23 se representa un número en 32 bits de la siguiente forma, un bit para el signo, 8 para la parte entera y 23 para la parte decimal:

S IIIIIIII.QQQQQQQQQQQQQQQQQQQQQQQ

Esto da una precisión igual para todos los números en el formato IQ, aunque tiene un rango dinámico limitado frente a la coma flotante.

(El rango dinámico es la diferencia entre el valor máximo y el mínimo que se puede representar en el formato dado)

Por ejemplo el I1Q3 representa un rango entre -1 y 0.875 (aprox 1) con una resolución de 2^{-3} = 0.125. La precisión del número viene dada por el número de bits de la parte decimal.

Es decir, podemos tener un formato I1Q31, con signo, con una resolución de 0.000000000465

¿Cómo se guarda en memoria un número representado en IQ?

Pongamos por ejemplo un IQ15 en un sistema de 16 bits: -0.42

  • Se multiplica 0.42 por 2^{15}= 13763
  • En hexadecimal esto es 0x35C3
  • En binario, 0011 0101 1100 0011
  • Se hace el complemento a dos, el complementario del número es
    1100 1010 0011 1100 y se le suma 1 al final, dando como resultado
    1100 1010 0011 1101
  • Este resultado ya se guarda en memoria

Como anotación final, el compilador por defecto usa Q24, que se compone de I8Q24, un número que con signo puede llegar entre -128 y 128 (\pm 2^{7})

REPRESENTACIÓN EN COMA FLOTANTE

Se basa en expresar un número en forma de mantisa (M) y exponente(E):

y = Mb^{E}

N\circ=signo*Mantisa*2^{exponente}

En general un número en coma flotante tiene E bits asignados al exponente y M bits asignados a la mantisa, escribiéndose como una palabra de (E,M) bits, el exponente  primero.

  • IEEE Standard 754 Single precision floating-point
    Es un Sistema de representación con

    • 1 bit de signo
    • 8 bits para el exponente, que va a ir entre -126 y 127, pero se le suma 127 al valor real del exponente y se codifica entre 1 y 254
    • 23 bits para la mantisa

El exponente toma un rango dinámico grande, pero la precisión depende del exponente.

Benchmarks

Comparación de resultados con distintos tipos de procesador y operación.

Fixed – point Floating – point

Library

Floating – point

Hardware

Code size (words) 5 89 8
Clock cycles 4 112 4

 

Se observa que una operación en coma flotante usando hardware es mucho más rápida (la diferencia entre 4 y 112 ciclos de reloj es realmente grande)

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *