2010-02-23 14 views
5

В своей работе я занимаюсь различными микроконтроллерами, микропроцессорами и процессорами DSP. Многие из них имеют 24-битные регистры и счетчики.Почему регистрируется 24 бита?

Я знаю, как их использовать, это не мой вопрос.

Мой вопрос, почему у них есть 24-битный регистр! почему бы не сделать это 32 бит? и, как я знаю, это не проблема размера, потому что регистры уже 32 бита, но имеют максимум 0xFFFFFF.

Это облегчает внедрение HW? Более быстрые расчеты? Или это просто «хммм, давайте ставим 24-битные регистры, чтобы усложнить работу программистов»?

+0

У меня что-то не хватает - как вы можете утверждать, что регистры «действительно 32 бит», если максимум 0xFFFFFF? –

+0

Они сделали это по той же причине, что и небо голубое. –

+0

FF = 16x16 = 256 = 8 бит для хранения, FFFFFF = 24 бит, так что это тоже вопрос размера ... –

ответ

7

Я полагаю, что большинству приложений DSP просто не нужны 32-битные. Цифровой звук использует 24-битную точность. Таким образом, реализация 32-бит потребует больше транзисторов, что приведет к увеличению затрат.

Почему для программиста проще было бы 32 бита?

Кроме того, вы указываете, что регистры имеют максимум 0xFFFFFF, что делает их 24-битными по определению, а не 32-битные, как вы предлагаете.

+0

Я думаю, что вы, вероятно, правы (хотя было бы интересно услышать окончательный ответ). Взглянув на Википедию, предполагается, что 24-бит является более естественным размером, основанным на скорости обработки и/или соотношении с частотой входного сигнала, что является достаточным для высококачественной выборки аудио. – Paolo

+0

Хорошая точка. Я как бы забыл, что это также может быть интересно ПОЧЕМУ цифровой звук использует 24 бита больше всего :) – Tomas

+0

В руководстве говорится, что это 32-битный с 8 разрядами всегда будет нулевым. , работающий с 32 битами, проще, потому что регистры общего назначения - 32 бит. Например, когда вы читаете значение из 24-битного регистра в переменную. Операции, выполняемые с этой переменной, будут выполняться в 32 бит. Это будет означать дополнительный код для обработки переполнения. – Yousf

2

Помещая на ответ Томаса, некоторые DSP имеют режим регистрации, при котором переполнение блокирует значение в самом высоком состоянии. Если данные 24-битные и переходят к 25-му биту, он должен блокироваться там, а не при 32-битном опрокидывании.

4

Нет особых оснований для бит 8/16/32/64. Есть 24-разрядные ЦСП, 18 бит ПОС, 36 бит PDP ... Каждый бит стоит времени, денег и мощности, поэтому наличие достаточного количества бит достаточно хорошее. Не нужно это делать. Просто посмотрите на оригинальные ПК с 20 адресами, хотя указатели на память могут быть до 32 бит.

+0

18 бит PIC (или 12, 14 ..) просто потому, что память (все на уме) меньше по размеру (размер регистра не совпадает).PDP просто использовали кратные 6 (размер символа) и 3 (размер цифры при использовании восьмеричного). В настоящее время более 8 раз более распространены, и именно поэтому 24 бита удобны. Адреса на 8086 были на самом деле 20 бит; но так как это не вписывалось ни в какой регистр, они использовали регистры сегментов - сравнивали их с регистрами выбора страниц на ПОС. 32-разрядные процессоры, как правило, имеют достаточно большие регистры, которые не требуются для таких расширений адресного пространства. –

2

Для аудио обычно требуется 16-разрядный выход. Поскольку вы теряете некоторую точность во время обработки, они выбирают разумный размер, который несколько больше, чем 16 бит, что бывает 24 бит.

Причина, по которой не переходить на полные 32 бита, заключается в том, что для этого потребуется значительно больше оборудования, особенно для умножения.