Ist ARM ein Mikroprozessor oder Mikrocontroller?

Ich hatte Schwierigkeiten zu wissen, ob ARM ein Mikroprozessor oder Mikrocontroller oder etwas anderes ist?

Antworten (4)

Weder.

ARM ist eine CPU-Architektur (genauer gesagt eine Familie verwandter CPU-Architekturen). Wenn Sie diese CPU (oder jede andere) CPU ganz allein auf einen Chip setzen, haben Sie einen Mikroprozessor (wie sie es in den uralten Acorn-Maschinen getan haben). Wenn Sie es mit ROM (Flash), RAM und Peripherie auf einem Chip kombinieren, haben Sie einen Mikrocontroller (Beispiel: LPC2148).

Es kann etwas matschig werden, wenn Sie die CPU mit ROM und RAM kombinieren, aber auch die Daten-, Adress- und Steuerleitungen auf den Pins bereitstellen, sodass externer Speicher hinzugefügt werden kann. Ein solcher Chip kann entweder im Mikrocontroller-Modus oder im Mikroprozessor-Modus verwendet werden. (Beispiel: LPC2478)

Heutzutage sind kleinere Systeme (bis zu 0,5 MB Flash, einige 10 KB RAM) als Mikrocontroller verfügbar. Größere Systeme (normalerweise mit Linux oder ähnlichem) bestehen normalerweise aus einem Mikroprozessor mit externem RAM. (ROM kann auch extern sein oder ein kleines Boot-ROM auf dem Chip + eine SD-Karte oder ähnliches). Beispiele: Der Raspberry Pi und andere kleine Linux-Boards, der ESP8266 oder jedes beliebige Mobiltelefon, Set-Top-Box, Modem/Router usw.

Lustige Anmerkung: Mikrocontroller neigen dazu, wenig RAM zu haben, daher der Lauf von Flash, der oft ihre Geschwindigkeit einschränkt. Mikroprozessoren haben oft viel RAM, haben einen langsameren Flash, aus dem der Code und die Daten zur Ausführung in den RAM geladen werden.

Heutzutage (2015) ist der Begriff ARM zunehmend verwirrend, da er sich auf das Unternehmen beziehen kann, das die ARM-Designs herstellt, oder auf eines der Designs. (Die ARM-Firma selbst stellt keine Chips her, sie lizenziert ihre Designs an Chiphersteller.) Die neue Cortex-„Familie“ von Designs unterscheidet sich ausreichend von den alten ARM-Designs, sodass ich es vorziehe, sie nicht „ARM“ zu nennen.

Ich würde vorschlagen, dass eine nützliche Unterteilung zwischen Mikroprozessoren und Mikrocontrollern darin besteht, zu sagen, dass letztere genug Material auf dem Chip haben, um zumindest einigermaßen nützlich ohne angeschlossenes RAM oder ROM zu laufen. Die einzigen düsteren Fälle wären Geräte, die Platz für Masken-ROM enthalten, aber häufig ohne nützlichen Code darin verkauft werden. Ich würde solche Geräte als Mikrocontroller betrachten, wenn ihr Verhalten im Gebrauch im Wesentlichen nicht von dem Verhalten eines Geräts zu unterscheiden wäre, dessen Masken-ROM "programmiert", aber extern deaktiviert wurde.
@supercat: Meine Einteilung würde nicht danach erfolgen, „wie es verwendet werden kann“, sondern eher, „wie es verwendet wird“ (oder vielleicht „wie es verwendet werden soll“). Ihrer Meinung nach wäre der LPC2478 ein Mikrocontroller, ich betrachte ihn als Hybrid.
Mit 98 KB integriertem RAM und 512 KB integriertem Flash klingt es sicherlich so, als ob es in Systemen ohne externen Speicher recht nützlich eingesetzt werden könnte; Nach einem kurzen Blick auf das Datenblatt würde ich das als im "Mikrocontroller" -Lager betrachten, und ich würde es nicht als knapp betrachten.
Ich weiß, dass du es nicht tust, aber ich tue es. Der Chip wird (oder wurde) regelmäßig verwendet, um beispielsweise Linux auszuführen, daher denke ich, dass er zwar sicherlich als Mikrocontroller verwendet werden kann, aber nicht (nur) ein Mikrocontroller ist.
Vielleicht ist es alles im Namen? Ein Mikrocontroller ist ein Chip mit einer CPU, die hauptsächlich zur Steuerung anderer Komponenten/Chips entwickelt und verwendet wird, aber dennoch Daten verarbeiten kann. Ein Mikroprozessor ist ein Chip mit einer CPU, die hauptsächlich für die Verarbeitung von Daten entwickelt und verwendet wird, obwohl er natürlich auch andere Komponenten (wie zum Beispiel externes RAM) steuern muss.
Das löst das Namensproblem nicht, denn die Designer setzen oft auf beide Pferde, und sie werden Ihnen sicherlich nicht sagen, dass Sie ihren Chip auf eine Weise verwenden, für die er nicht entwickelt wurde. Man kann sich der Tatsache nicht entziehen, dass manche Chips einfach beides sind: Sie sind darauf ausgelegt, beide Rollen zu erfüllen, werden in beiden Rollen verwendet und erfüllen sie gut.
Ich komme etwas spät zur Party, aber kann jemand erklären, was den Cortex so anders macht als frühere ARMs?
Das ist eine ganz andere Frage, zu groß für einen Kommentar und vielleicht zu groß für eine „normale“ Frage. Ganz kurz: ARMs sind eine große Spannweite, Cortexes sind „nur“ eine Umbesetzung und Umbenennung verbunden mit einem nächsten Schritt in der Entwicklung der ARM-Architektur.

Technisch gesehen ist ARM ein Mikroprozessor oder genauer gesagt eine Mikroprozessorarchitektur. Zu verstehen ist jedoch, dass es sich nicht um einen physischen Mikroprozessor handelt, sondern um das Design, das es ermöglicht, einen zu bauen.

ARM Holdings ist ein multinationaler Halbleiterkonzern, der keine CPU herstellt; Stattdessen entwerfen sie sie und verkaufen die Architektur dann unter Lizenz. Die Designs werden zum Bau von Mikroprozessoren und Mikrocontrollern verwendet, aber was ARM bietet, ist nur der Kern.

Es ist auch falsch zu sagen, dass es sich um einen Mikrocontroller handelt, denn es ist der Hersteller, der den ARM-Kern nimmt und alle Peripheriegeräte darum herum baut.

Weder (und beide)

ARM ist ein Unternehmen, das CPU-Kerne lizenziert.

Der ARM-Kern kann und wird von vielen Unternehmen verwendet, um sowohl Mikrocontroller als auch Mikroprozessoren herzustellen.

ARM ist der Kern sowohl für Mikroprozessoren als auch für Mikrocontroller. ARM basiert auf der CPU-Architektur, daher nennen wir es im Allgemeinen einen Mikroprozessor, wenn es auf einem Chip platziert wird. Wenn ARM mit Speichern (RAM und ROM) auf einem einzelnen Chip kombiniert wird, können wir es als Mikrocontroller bezeichnen, es hat begrenzten Speicher, aber wenn es um Mikroprozessoren geht RAM und ROM sind extern verbunden Geschwindigkeit wird mehr sein.