Pergunta

No meu trabalho, lido com diferentes microcontroladores, microcessores e processadores DSP. Muitos deles têm registros e contadores de 24 bits.

Eu sei como usá -los, essa não é a minha pergunta.

Minha pergunta é por que eles têm registro de 24 bits! Por que não fazer 32 bits? E como eu sei, não é um problema de tamanho, porque os registros já são 32 bits, mas têm no máximo 0xffffff.

Isso fornece uma implementação mais fácil de HW? Cálculos mais rápidos? Ou é apenas "Hmmm, vamos colocar registros de 24 bits para tornar mais difícil o trabalho dos programadores"?

Foi útil?

Solução

Meu palpite é que a maioria dos aplicativos DSP simplesmente não precisa de 32 bits. O Digital Audio usa mais a fidelidade de 24 bits. A implementação de 32 bits exigiria mais transistores, portanto, resultaria em custos mais altos.

Por que 32 bits seriam mais fáceis para o programador?

Além disso, você afirma que os registros têm no máximo 0xffffff, o que os torna 24 bits por definição, não 32 bits como você sugere.

Outras dicas

Não há razão específica para 16/08/32/64 bits. Existem DSPs de 24 bits, fotos de 18 bits, PDP de 36 bits ... cada bit custa tempo, dinheiro e energia, portanto, ter pedaços suficientes é bom o suficiente. Não há necessidade de fazer isso. Basta olhar para os PCs originais com 20 linhas de endereço, mesmo que os ponteiros de memória possam ter até 32 bits.

Marcado na resposta de Tomas, alguns DSPs têm um modo de registro em que transbordando o valor bloqueia o valor no estado mais alto. Se os dados forem de 24 bits e rolam até o 25º bit, eles devem travar lá, não na rolagem de 32 bits.

Para o áudio, você normalmente deseja saída de 16 bits. Como você perde alguma precisão durante o processamento, eles escolhem um tamanho razoável um pouco maior que 16 bits, o que é 24 bits.

O motivo de não ir para 32 bits completos é que isso precisaria de hardware substancialmente mais, especialmente para multiplicação.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top