Was bedeutet "N-Bit"?
MN
Ein Mikrocontroller oder Prozessor wird als "N-Bit" bezeichnet, da Controller und Prozessoren eine grundlegende Datenbreite haben. Jedes Register kann N Bits sein, jeder Befehl kann N Bits sein, der Datenbus kann N Bits sein, der Speicher kann mit N Bits adressiert sein. Insbesondere auf der unteren Ebene gibt es Ausnahmen von dieser Regel: Beispielsweise verfügt ein 8-Bit-Controller möglicherweise über einen 12-Bit-Speicherbus. Wie Sie vielleicht vermuten, ist dies jedoch schwierig, wenn Ihre Register nur 8 Bit enthalten. Alle Prozessoren haben jedoch eine grundlegende native Datentypbreite. Betrachten Sie den folgenden Code:
uint32_t x,y,z; // Declare 3 32-bit variables
z=x + y; // Add two of them to store in the third
Wenn Sie nur 8-Bit-Zahlen hinzufügen können, wie würden Sie diesen Vorgang ausführen? Sie müssten jede Variable in 4 8-Bit-Zahlen aufteilen, die Additionen und Übertragungen einzeln vornehmen und sie dann zusammenführen, um das Ergebnis zu erhalten. Dies würde mindestens 16 Anweisungen erfordern! Auf einem 32-Bit-Prozessor ist es jedoch eine einzelne Anweisung, die so einfach ist wie mul r0, r1, r2
. Wie Sie diesem einfachen Beispiel entnehmen können, können größere Prozessorbitbreiten mehr Daten schneller verarbeiten.
Historische Notizen
Der Trend im Laufe der Geschichte ging von kleineren Bitbreiten zu größeren. Bereits in den frühen 1970er Jahren veröffentlichte Intel den 4004, den ersten Single-Chip-Controller. Es war ein 4-Bit-Prozessor. Da Transistoren groß und leistungshungrig waren und das Design revolutionär und kompliziert war, war dies alles, was auf den Chip gedrückt werden konnte. Kurz darauf veröffentlichten sie den 8008, einen 8-Bit-Prozessor. Es werden nur noch wenige 4-Bit-Prozessoren verwendet, aber es gibt viele 8-Bit-Controller. PIC und AVR sind zeitgemäße Beispiele, die noch häufig verwendet werden. Es wurden mehr 8-Bit-Prozessoren hergestellt als bei jedem anderen Typ! Sie sind immer noch die beliebtesten Controller für kleine, einfache und kostensensitive Aufgaben. Der nächste offensichtliche Übergang war zu 16-Bit-Controllern, aber diese hatten nicht die Reichweite ihrer 8-Bit- oder 32-Bit-Brüder. Stattdessen, Es gab einen Sprung zu 32-Bit-Prozessoren, wie sie von ARM entwickelt und vor einigen Jahren in die PC-CPUs integriert wurden. Es gibt keine bedeutenden 64-Bit-Mikrocontroller, die mir bekannt sind, obwohl sie jetzt in PCs eine herausragende Rolle spielen.
8-Bit vs. 32-Bit
Die mit Abstand beliebtesten Typen sind die 8-Bit- und 32-Bit-Prozessoren. Die 32-Bit-Prozessoren werden immer beliebter. Jedes Jahr oder so veröffentlicht ein Fachmagazin einen Artikel mit dem Titel "Ist 8-Bit tot?" 32-Bit-Prozessoren werden immer beliebter, leistungsfähiger und billiger, so dass nur drei Gründe für die Wahl eines 8-Bit-Prozessors übrig bleiben:
- Trägheit - Wenn Sie Code für einen 8-Bit-Prozessor haben und Erfahrung damit haben, erzielen Sie möglicherweise keinen ausreichenden ROI, wenn Sie alles in eine 32-Bit-Architektur konvertieren.
- Geringer Stromverbrauch - Jeder Transistor in einem Controller verbraucht Strom. Obwohl die Größe kein Problem mehr darstellt, verfügen 32-Bit-Prozessoren über mehr Transistoren und verbrauchen daher im ausgeschalteten Zustand mehr Strom. Dies ist nur bei extremen Designs mit Knopfzellenantrieb ein Problem.
- Niedrige Kosten - Wenn Sie nur ein paar Dutzend Montageanleitungen und 2 E / A-Pins benötigen, ist wahrscheinlich sogar ein 8-Bit-Prozessor übertrieben. Am unteren Ende kosten die billigsten 8-Bit-Controller weniger als 0,40 US-Dollar, aber die billigsten 32-Bit-Prozessoren kosten immer noch etwa 0,80 US-Dollar, sind aber wesentlich leistungsfähiger als die 8-Bit-Alternativen. Wenn Sie versuchen, ein Spielzeug mit einer einzigen blinkenden LED für die nächste Million Happy Meals zu bauen, ist dies ein überzeugender Preisnachlass, wenn nicht, macht es keinen wirklichen Unterschied.
32-Bit-Prozessoren werden immer allgegenwärtiger, aber es gibt kaum Anzeichen dafür, dass der 8-Bit-Prozessor aus diesen drei Gründen wie die antiken 4-Bit-Prozessoren verschwindet.
Arduino als Beispiel
Betrachten Sie eine Anwendung wie das Arduino .
Der Arduino verwendet einen Atmel-Controller, einen 8-Bit- ATmega32 . Der ATmega läuft mit 20 MHz, verfügt über 4 KB RAM, SPI-, I2C- und UART-Kommunikation, einige Hardware-Interrupts und 8 10-Bit-ADCs. Dieser Chip kostet $ 3,90 in Mengen von 100.
Ein ähnlicher 32-Bit-Chip könnte ein weiterer Atmel-Teil sein, ein 32-Bit- AT-SAM3 , der den gemeinsam genutzten ARM Cortex-M3-Kern verwendet. Dieser Chip läuft mit 64 MHz (3x so schnell, aber denken Sie daran, dass der ATmega 16 Anweisungen benötigt, um eine einzelne 32-Bit-Addition durchzuführen). Es verfügt über 16 KB RAM, viermal so viel wie das ATmega. Es verfügt über I²C-, MMC-, SPI-, SSC-, UART- und sogar USB-Peripheriegeräte. Es verfügt über DMA (direkter Speicherzugriff, macht es auch schneller und effizienter), einen flexiblen, leistungsstarken Satz von Interrupts, 10 12-Bit-ADCs und 2 DACs. Es übertrifft den ATmega einfach in allen Kategorien. Ich habe versucht, einen 32-Bit-Controller mit vergleichbaren Funktionen zu finden, und dies war das Beste, was ich tun konnte. Wie viel kostet dieser Chip? Es sind 2,34 US-Dollar in Mengen von 100: Sie erhalten mehr Leistung für weniger Geld. Sollte eine einfache Entscheidung sein.
Was ist mit deinem Beispiel?
Für Ihre Beispielsituation hier ,
Die Anzahl der Autos, die auf einem Parkplatz ein- und ausfahren, muss gezählt und die Anzahl auf einem LCD-Bildschirm angezeigt werden. Maximal zehn Autos dürfen auf den Parkplatz.
Sie haben einige sehr einfache Berechnungen mit kleinen Zahlen und einer einfachen Anzeige auf einem LCD (oder wirklich, ein großes Zeichen aus 7-Segment-LED-beleuchteten Zahlen wäre sichtbarer und billiger). Ein 8-Bit-Controller ist für diese Aufgabe wahrscheinlich vollkommen ausreichend. Was aber, wenn Sie wirklich tun ein LCD wollen? Der 8-Bit-Controller kann selbst ein VGA-Display mit niedriger Auflösung nur schwer betreiben, während Sie problemlos Entwicklungsplatinen für 32-Bit-Controller mit HDMI-Ausgängen erhalten können. Was ist, wenn Sie es vorerst auf einem Bildschirm anzeigen möchten, es aber später an ein Ethernet-Kabel im LAN Ihres Unternehmens anschließen und die Ergebnisse auf dem Computer des Vorgesetzten im Parkbüro anzeigen möchten? Mit integrierten Ethernet-Kommunikationsbussen können Sie problemlos 32-Bit-Controller erwerben. Mit einem 8-Bit-Controller ist dies nicht möglich.Xport , aber das enthält einen 32-Bit-Prozessor.
Für einmalige Projekte würde ich jedes Mal einen 32-Bit-Controller empfehlen. Ihre Zeit ist einfach wertvoller als der Preisunterschied zwischen 8- und 32-Bit-Controllern.
In Bezug auf die von Ihnen erwähnten 7-Bit-Prozessoren gab und wird es wahrscheinlich nie solche Maschinen geben. Aus architektonischer Sicht ist es sinnvoller, Bitbreiten zu verwenden, die Potenzen von 2 sind.