2010-02-23 8 views
5

In meiner Arbeit beschäftige ich mich mit verschiedenen Mikrocontrollern, Mikroprozessoren und DSP-Prozessoren. Viele von ihnen haben 24-Bit-Register und Zähler.Warum 24 Bits registriert?

Ich weiß, wie man sie benutzt, das ist nicht meine Frage.

Meine Frage ist, warum sie 24-Bit-Register haben! Warum nicht 32 Bit machen? und wie ich weiß, ist es kein Problem der Größe, denn die Register sind bereits 32bits, haben aber maximal 0xFFFFFF.

Ermöglicht dies eine einfachere HW-Implementierung? Schnellere Berechnungen? Oder es ist nur "hmmm, lassen Sie 24-Bit-Register setzen, um die Arbeit von Programmierern schwerer zu machen"?

+0

Ich vermisse etwas - wie können Sie behaupten, die Register sind "wirklich 32 Bits", wenn das Maximum 0xFFFFFF ist? –

+0

Sie taten dies aus dem gleichen Grund, weil der Himmel blau ist. –

+0

FF = 16x16 = 256 = 8 Bits zu speichern, FFFFFF = 24 Bits, also ist es auch eine Frage der Größe ... –

Antwort

7

Meine Vermutung ist, dass die meisten DSP-Anwendungen einfach nicht 32-Bit benötigen. Digitales Audio verwendet die höchste 24-Bit-Wiedergabetreue. Die Implementierung von 32 Bits würde mehr Transistoren erfordern, was zu höheren Kosten führen würde.

Warum wären 32 Bits für den Programmierer einfacher?

Sie geben auch an, dass die Register ein Maximum von 0xFFFFFF haben, was sie 24-Bit per Definition macht, nicht 32-Bit, wie Sie vorschlagen.

+0

Ich denke, Sie haben wahrscheinlich Recht (obwohl es interessant wäre, eine endgültige Antwort zu hören). Ein Blick auf Wikipedia legt nahe, dass 24 Bit eine natürlichere Größe sind, die auf der Verarbeitungsgeschwindigkeit und/oder der Beziehung zur Frequenz des Eingangssignals basiert, was für High-End-Audio-Sampling ausreichend ist. – Paolo

+0

Guter Punkt. Ich habe irgendwie vergessen, dass es auch interessant sein könnte, warum digitale Audio-24-Bits am meisten verwendet :) – Tomas

+0

Das Handbuch sagt, dass es ein 32bit mit den meisten 8 Bits wird immer Null sein. Arbeiten mit 32 Bits ist einfacher, weil Die allgemeinen Register sind 32 Bit. Zum Beispiel, wenn Sie den Wert aus dem 24-Bit-Register in eine Variable lesen. Operationen, die mit dieser Variable ausgeführt werden, werden in 32 Bit ausgeführt. Dies wird zusätzlichen Code zur Behandlung von Überläufen bedeuten. – Yousf

2

Markiert man Tomas 'Antwort, haben einige DSPs einen Registermodus, in dem das Überlaufen den Wert im höchsten Zustand sperrt. Wenn die Daten 24-Bit sind und auf das 25. Bit übergehen, sollte es sich dort und nicht beim 32-Bit-Rollover sperren.

4

Es gibt keinen besonderen Grund für 8/16/32/64 Bits. Es gibt 24 Bit DSPs, 18 Bit PICs, 36 Bit PDP ... Jedes Bit kostet Zeit, Geld und Macht, also genug Bits zu haben ist gut genug. Keine Notwendigkeit, es zu übertreiben. Schauen Sie sich nur die Original-PCs mit 20 Adresszeilen an, obwohl die Speicherzeiger bis zu 32 Bit groß sein könnten.

+0

Die 18-Bit-PIC (oder 12, 14 ..) sind einfach weil der Speicher (alle on-sterben) kleiner ist (Registergröße stimmt nicht überein).PDPs verwendeten einfach Vielfache von 6 (die Zeichengröße) und 3 (die Zifferngröße bei Verwendung von Oktal). Heutzutage sind Vielfache von 8 häufiger, weshalb 24 Bits bequem sind. Adressen auf dem 8086 waren tatsächlich 20 Bit; Da sie aber in kein Register passten, verwendeten sie Segmentregister - vergleichen Sie sie mit den Seitenauswahlregistern auf PIC. 32-Bit-Prozessoren tendieren dazu, ausreichend breite Register zu haben, so dass solche Erweiterungen des Adressraums nicht benötigt werden. –

2

Für Audio würden Sie normalerweise 16 Bit-Ausgabe wünschen. Da Sie während der Verarbeitung etwas an Genauigkeit verlieren, wählen Sie eine vernünftige Größe, die etwas größer als 16 Bit ist, was zufällig 24 Bit ist.

Der Grund, nicht zu vollen 32 Bits zu gehen, ist, dass das wesentlich mehr Hardware benötigen würde, besonders für die Multiplikation.