2010-02-23 16 views
5

En mi trabajo trato con diferentes microcontroladores, microprocesadores y procesadores DSP. Muchos de ellos tienen registros y contadores de 24 bits.¿Por qué se registran 24 bits?

Sé cómo usarlos, esta no es mi pregunta.

Mi pregunta es ¿por qué tienen registro de 24 bits? ¿por qué no hacerlo de 32 bits? y como sé, no es un problema de tamaño, porque los registros ya son de 32 bits, pero tienen un máximo de 0xFFFFFF.

¿Esto proporciona una implementación de HW más sencilla? Cálculos más rápidos? O simplemente es "hmmm, vamos a poner registros de 24 bits para hacer el trabajo de los programadores más difícil"?

+0

Me falta algo, ¿cómo se puede decir que los registros son "realmente 32 bits" si el máximo es 0xFFFFFF? –

+0

Lo hicieron por la misma razón que el cielo es azul. –

+0

FF = 16x16 = 256 = 8 bits para almacenar, FFFFFF = 24 bits, por lo que también es una cuestión de tamaño ... –

Respuesta

7

Supongo que la mayoría de las aplicaciones DSP simplemente no necesitan 32 bits. El audio digital usa la fidelidad de 24 bits más. La implementación de 32 bits requeriría más transistores y, por lo tanto, mayores costos.

¿Por qué 32 bits serían más fáciles para el programador?

Además, declara que los registros tienen un máximo de 0xFFFFFF, que los convierte en 24 bits por definición, no 32 bits como usted sugiere.

+0

Creo que probablemente tengas razón (aunque sería interesante escuchar una respuesta definitiva). Tener una mirada en Wikipedia sugiere que 24 bits es un tamaño más natural basado en la velocidad de procesamiento y/o la relación con la frecuencia de la señal de entrada que es suficiente para el muestreo de audio de alta gama. – Paolo

+0

Buen punto. Me olvidé de que también podría ser interesante POR QUÉ el audio digital utiliza más de 24 bits :) – Tomas

+0

El manual dice que es un 32bit con la mayor cantidad de 8 bits siempre será cero .. trabajando con 32 bits es más fácil, porque el registro de propósito general es de 32 bits. Por ejemplo, cuando lee valor de registro de 24 bits en una variable. Las operaciones realizadas en esta variable ocurrirán en 32 bits. Esto implicará un código adicional para manejar los desbordamientos. – Yousf

2

Etiquetando en la respuesta de Tomas, algunos DSP tienen un modo de registro donde el desbordamiento bloquea el valor en el estado más alto. Si la información es de 24 bits y se desplaza al bit 25, debe bloquearse allí, no en la renovación de 32 bits.

4

No hay un motivo en particular para 8/16/32/64 bits. Hay DSP de 24 bits, PIC de 18 bits, PDP de 36 bits ... Cada bit cuesta tiempo, dinero y potencia, por lo que basta con tener suficientes bits. No hay necesidad de hacerlo más. Basta con mirar las PC originales con 20 líneas de dirección, aunque los punteros de memoria podrían ser de hasta 32 bits.

+0

El PIC de 18 bits (o 12, 14 ..) se debe simplemente a que la memoria (todo en el dado) es más pequeña de esa manera (el tamaño del registro no coincide).Los PDP simplemente usaron múltiplos de 6 (el tamaño del carácter) y 3 (el tamaño del dígito cuando se usa octal). Hoy en día, los múltiplos de 8 son más comunes, que es exactamente por qué 24 bits es conveniente. Las direcciones en el 8086 eran de hecho 20 bit; pero como eso no encajaba en ningún registro, utilizaron registros de segmentos: compárenlos con los registros de selección de página en PIC. Los procesadores de 32 bits tienden a tener registros lo suficientemente amplios como para que tales extensiones de espacio de direcciones no sean necesarias. –

2

Para el audio, normalmente querrá una salida de 16 bits. Como pierdes algo de precisión durante el proceso, eligen un tamaño razonable que es algo mayor que 16 bits, que es de 24 bits.

El motivo por el que no se debe utilizar 32 bits completos es que necesitaría sustancialmente más hardware, especialmente para la multiplicación.

Cuestiones relacionadas