Hallo zusammen,
wie kann es eigentlich sein dass komplette Mikroprozessoren (MPU) à la
Cortex-A günstiger sind als die ja eigentlich kleineren Mikrocontroller
(MCU)?
Beispielsweise bekommt man einen TI AM3352 Cortex-A8 mit 1GHz und einer
Unmenge an Peripherie für ca. 8$, während ein STM32F7 mit 200MHz 12€
aufwärts kostet. Bei Rockchip bekommt man GHz-Quadcores für 5$ während
manche Händler mehr für einen AVR verlangen! Es hängt natürlich stark
davon ab wo man kauft, aber irgendwie stehen Preis-Leistung in keinem
Verhältnis.
Wenn man dann z.B. hier [1] liest dass man immer MCU's bevorzugen soll
und hier [2] dass MCU's billiger sein sollen verstehe ich nicht wie das
zusammen passt. Für sehr einfache Steuerungs-Aufgaben, bei denen ein
8-Bitter reicht sind diese noch billiger, aber sobald es um Grafik,
Netzwerk, viel Speicher (SDRAM) geht scheint man mit MPU's allein aus
Preisgründen besser dran zu sein. Wozu werden Controller wie der STM32F7
überhaupt hergestellt, wenn es billigere und leistungsfähigere MPU's
gibt? Kann der Preisunterschied wirklich nur an den Stückzahlen liegen -
schließlich werden MCU's vermutlich in noch größeren Mengen verkauft?
1:
https://predictabledesigns.com/microcontroller-or-microprocessor-which-is-right-for-your-new-product/
2: https://electronics.stackexchange.com/q/167524
>wie kann es eigentlich sein dass komplette Mikroprozessoren (MPU) à la>Cortex-A günstiger sind als die ja eigentlich kleineren Mikrocontroller>(MCU)?
Das hängt im wesentlichen von den verkauften Stückzahlen und dem Käufer
ab.
Wenn Du eine Million F7 kaufst, kriegst Du die bestimmt auch unter 5€.
Außerdem ist die Entwicklung eins Chips extrem teuer. Ich schätze mal,
dass die Entwicklung eines F7 mindestens 10Mio kostet. Falls nur eine
Mio davon verkauft wird, muss auf jeden Chip mindestens 10€
Entwicklungskosten drauf geschlagen werden.
Ich denke auch, es liegt hauptsächlich an den Stückzahlen.
Und sicher wird der Hersteller auch so viel Geld einnehmen, wie er kann.
Solange alle vergleichbaren Mikrocontroller x Euro kosten, wird er für
seinen wohl auch x Euro verlangen, egal wie hoch die tatsächlichen
Produktionskosten sind.
Dennoch haben die kleinen Mikrocontroller in gewissen
Anwendungsbereichen Vorteile gegenüber den großen, deswegen gibt es sie
noch:
1) Sie sind kleiner
2) Sie nehmen weniger Strom auf
3) Ihre Ausgänge sind höher belastbar
4) Ihre Programmierung ist einfacher, und damit billiger
5) Sie haben potentiell weniger Fehler
6) Sie funktionieren zuverlässiger
All dies sind auch Gründe für einen gewissen Aufpreis.
Man könnte die Liste sicher noch fortsetzen. Und ja, es gibt für jeden
Punkt Gegenbeispiele.
Zum einen geht es um die genannten Stückzahlen, aber ein ganz
wesentlicher Aspekt wurde noch nicht genannt.
Halbleiterprozesse für Logik und Flash unterscheiden sich teilweise
erheblich, auch wenn natürlich auch in einem Flash-Baustein Logikzellen
z.B. für Adressdekoder, Latches usw. benötigt werden. Bei MCU muss man
aber "viel" Logik mit "viel" Flash unter einen Hut bringen, was
dementsprechend aufwändigere Halbleiterprozesse bedingt. Und das erhöht
die Zahl der Prozessschritte und senkt die Fertigungsausbeute.
Im ST32F7 befindet sich ein Boot-ROM. Dieses wird vermutlich als
Masken-ROM vorliegen, d.h. es verhält sich prozesstechnisch wie Logik.
Statisches RAM ist kompatibel zu auf Logik optimierte Prozesse; bei
dynamischem RAM sieht das ggf. schon wieder anders aus, was man z.B.
daran sieht, dass bisher noch kein Hersteller eine CPU mit großem
internen DRAM auf den Markt gebracht hat. Gerade bei Low-Cost-Büro-PCs
und Notebooks könnte man sehr viel Platz usw. sparen, wenn man x86 mit
z.B. 4GB RAM kombinieren würde. Aber offenbar wäre solch ein
Halbleiterprozess teurer als die Kostenersparnis bei der Montage.
Zwischen "sehr einfache Steuerungs-Aufgaben" und "Grafik, Netzwerk, viel
Speicher" gibt es noch eine ganze Menge Platz für Mikrocontroller aller
Couleur.
Außerdem, ohne Bootmedium und externes RAM wirst Du mit so einem
Prozessor nicht viel anfangen können, ganz abgesehen vom
"Leiterplattenaufwand", da ist nix mehr mit zweilagig.
Und integriertes Flash (der dem Prozessor fehlt) braucht m.W.n.
zusätzliche Prozessschritte bei der Herstellung, die sich mit anderen
Technologien (z.B. Analog) auf dem gleichen Chip etwas beissen.
Andreas S. schrieb:> Im ST32F7 befindet sich ein Boot-ROM. Dieses wird vermutlich als> Masken-ROM vorliegen, d.h. es verhält sich prozesstechnisch wie Logik.
Laut ST ist es kein Masken-ROM.
Aus AN2606 (STM32 microcontroller system memory boot mode):
"The bootloader is stored in the internal boot ROM memory (system
memory) of STM32devices. It is programmed by ST during production."
Ich denke, dass es sich dabei um geschützte Flash-Bereiche handelt - was
durchaus sinnvoll ist, da es später einfache Änderungen erlaubt.
Flash und RAM brauchen massig Chipfläche und machen damit den Chip
teuer.
Die genannte CPU AM3352 hat neben üppigen Caches (die auch RAM sind)
gerade mal 64K On-Chip RAM. Zusammen mit den Caches sind das insgesamt
384K RAM und 176K On-Chip Boot-ROM (vermutlich Flash).
Der STM32F7 hat mindestens 256 RAM und 256K Flash. Ein Derivat mit
dieser Speichergröße ist der STM32F722RCT6 und kostet bei DK derzeit
4,96984€/960. Ein STM32F765IIK7 mit 2MB Flash und 512K RAM kostet bei DK
derzeit 9,02264€/1008.
Die Zukunft bei den embedded-CPUs ist wohl ein wenig On-Chip Flash,
damit jeder sein eigenes Secure-Boot implementieren kann, der Rest ist
encryptet im QSPI-Flash gespeichert und wird beim booten ins DDR4-SDRAM
geschrieben.
Programmierer schrieb:> wie kann es eigentlich sein dass komplette Mikroprozessoren (MPU) à la> Cortex-A günstiger sind als die ja eigentlich kleineren Mikrocontroller> (MCU)?
Das liegt großteils am Smartphone-Markt.
Hunderte Millionen, wenn nicht sogar Milliarden Stückzahlen wirken sich
auf den Preis aus.
Gäbe es keine Smartphones und Tablets, gäbe es auch keine Raspberrys
oder Beaglebones für 20-30 Euro.
Für die Mikrokontroller spricht aber dass sie noch im TQFP-Gehäuse
verfügbar sind und sich einfacher programmieren lassen.
Die Peripherie der Mikrokontroller ist vielseitiger (SPI, UART, CAN,
Timer, A/D-D/A) während die Prozessoren eher auf Multimedia (Grafik,
Video, Kamera, Audio, USB, Netzwerk) ausgelegt sind. Verglichen mit
einem STM32H ist die Peripherie eines Raspberyy Pi eher spartanisch.
Gruß
"Prozessoren" ist ja eigentlich die Bezeichnung für CPU-ICs wie 8051,
Z80 bis hin zu 8086, Pentium usw. denen man extern ROM, RAM und
Peripherie-ICs zufügen musste, um ein funktionsfähiges Gerät zu
erhalten. In diesem Sinn gibt es Prozessoren nur noch auf PC-Mainboards,
und auch da ist schon so einiges integriert, was früher in Zusatz-ICs
enthalten war. Im Embedded-Bereich gibt es nur noch komplette
Controller, die auch allein für sich schon funktionsfähig sind und im
Idealfall alle Peripherei enthalten, die für den Anwendungszweck
gebraucht wird.
Mir ist nicht klar, wo genau der TO hier einen Unterschied zwischen
Controllern und Prozessoren macht. Es gibt einfach nur ein riesiges
Spektrum von kleinsten Chips mit nur dem notwendigsten bis zu
umfangreichen Systemen mit mehr Funktionen als man je brauchen wird.
Chips die einen externen Programmspeicher brauchen gibt es kaum noch.
Und natürlich hängt der Preis nicht nur von der Anzahl der Transistoren
und der Die-Grösse ab, sondern auch von den produzierten Stückzahlen.
Georg
georg schrieb:> Mir ist nicht klar, wo genau der TO hier einen Unterschied zwischen> Controllern und Prozessoren macht.
Vermutlich meinte er SoC und normaler Microcontroller^^ ;)
georg schrieb:> Chips die einen externen Programmspeicher brauchen gibt es kaum noch.
Das erzähle mal den Herstellern und Nutzern der meisten x86-Prozessoren
sowie den Smartphoneherstellern. Welche vollintegrierten
Prozessoren/Controller mit mehr als 2MB Flash und 2MB RAM kennst Du
denn? Bei den "ganz großen Prozessoren", z.B. Intel Core-<irgendwas>
oder IBM Power gibt es zwar teilweise zig MB an vermutlich statischem
RAM, welches aber als Cache dient und nur einen Tropfen auf den heißen
Stein des extern angeschlossenen DRAMs mit etlichen GB bis TB darstellt.
Wenn es nur darum geht, große Mengen an Bildern, Videos o.ä. abzulegen,
werden wiederum seriell (SPI o.ä.) angebundene NAND-Flashes eingesetzt.
Andreas S. schrieb:> Das erzähle mal den Herstellern und Nutzern der meisten x86-Prozessoren> sowie den Smartphoneherstellern. Welche vollintegrierten> Prozessoren/Controller mit mehr als 2MB Flash und 2MB RAM kennst Du> denn?
Viele SoCs von Smartphones und Tablets haben das RAM zwar nicht auf dem
gleichen Die, aber genau wie beim Raspberry auf dem gleichen Baustein
drauf. Damit ist der gesamte für Programme direkt nutzbare Speicher auf
dem Baustein. Das ist nicht weit weg vom STR9 Mikrocontroller mit RAM
intern und Flash huckepack.
Andreas S. schrieb:> Das erzähle mal den Herstellern und Nutzern der meisten x86-Prozessorengeorg schrieb:> In diesem Sinn gibt es Prozessoren nur noch auf PC-Mainboards
Lesen ist halt doch schwierig, oder zumindest viel zu mühsam.
Georg
Joachim schrieb:> Für die Mikrokontroller spricht aber dass sie noch im TQFP-Gehäuse> verfügbar sind und sich einfacher programmieren lassen.
Das ist aber bei größeren Serien relativ egal.
Joachim schrieb:> Die Peripherie der Mikrokontroller ist vielseitiger (SPI, UART, CAN,> Timer, A/D-D/A)
Viele Cortex-A haben von diesen Schnittstellen eine ganze Menge. Nur
ADC's sind eher rar.
georg schrieb:> Mir ist nicht klar, wo genau der TO hier einen Unterschied zwischen> Controllern und Prozessoren macht.
Typischerweise zwischen Cortex-A und Cortex-M. Oder zwischen denen die
man ohne OS nutzen kann bzw. auf denen normale OSe nicht gut laufen (-M)
und denen für die man Linux braucht (-A) weil es viele Treiber nur dafür
gibt (gern auch als Binary-Blob).
georg schrieb:> Es gibt einfach nur ein riesiges> Spektrum von kleinsten Chips mit nur dem notwendigsten bis zu> umfangreichen Systemen mit mehr Funktionen als man je brauchen wird.
Und warum gibt es in der Mitte des Spektrums - beim Übergang zwischen
Cortex-M und -A - so einen riesigen Sprung im
Preis-Leistungs-Verhältnis?
Joachim schrieb:> Das liegt großteils am Smartphone-Markt.> Hunderte Millionen, wenn nicht sogar Milliarden Stückzahlen wirken sich> auf den Preis aus.
Sowas wie der TI AM335x ist nicht wirklich für Smartphones geeignet (zu
wenig Leistung), eher für Industrie-Anwendungen (Unterstützung für
Feldbusse); der ist aber trotzdem ziemlich billig. Mikrocontroller
werden ja auch in riesigen Mengen verkauft, die sind ja auch überall
drin.
Die beste Erklärung ist die, dass RAM & Flash teuer sind. Wenn man aber
eine Anwendung hat die davon so viel braucht, dass externe
Speichermodule sowohl bei MPU als auch MCU erforderlich sind, scheinen
MPU's (ohne internen Speicher) im Endeffekt billiger zu sein.
Der Aufwand für den Hersteller hängt auch von der Fertigungstechnik ab,
mit der der Chip hergestellt wird.
Üblicherweise werden die Massenchips mit kleinsten Strukturbreiten und
neuesten Maschinen hergestellt. Die alten Fertigungslinien werden Chips,
die in kleineren Stückzahlen laufen verwendet.
Kleine Strukturbreite heißt wenig Flächenverbrauch, mehr Chips pro Wafer
und damit kleiner Kosten pro Chip.
Deshalb wurde der Pizza-Wafer ( ich glaube 30cm Durchmesser ) und starke
UV-Belichtung für kleine Strukturbreiten eingeführt.
Normalerweise hat Intel die modernsten Fertigungslinien mit denen sie
die kleinsten Strukturen und die höchsten Taktfrequenzen erreichen.
Viele andere Herstelle nutzen externe Dienstleister wie TSMC, deren
Technologie natürlich dann auch den Konkurrenten zur Verfügung steht.
Herbi schrieb:> Üblicherweise werden die Massenchips mit kleinsten Strukturbreiten und> neuesten Maschinen hergestellt.
Nicht die Massenchips, sondern die Highend-Chips. Es werden sehr viel
mehr simple Standard-ICs hergestellt, als x86-Prozessoren oder
Grafikchips.
> Die alten Fertigungslinien werden Chips,> die in kleineren Stückzahlen laufen verwendet.
Und für die Fertigung alter und neuer Massenchips, die für ebendiese
Fertigung konstruiert wurden.
> Kleine Strukturbreite heißt wenig Flächenverbrauch, mehr Chips pro Wafer> und damit kleiner Kosten pro Chip.
Neue Anlagen bedeuten aber auch geringere Ausbeute, hohe
Anlagenabschreibung und eine Nachfrage, die höher ist als das Angebot.
Das treibt den Preis nach oben.
Weshalb auch schnelle und neue Chips nur dann auf neuesten Anlagen
produziert werden, wenn das von der Funktion her erforderlich ist. So
sind die Support-Chips ("Chipsatz") für PC-Mainboards zwar oft genauso
neu wie deren Prozessoren, bei gleicher Stückzahl wie diese, verwenden
aber eine wesentlich ältere Fertigungstechnik.
georg schrieb:> "Prozessoren" ist ja eigentlich die Bezeichnung für CPU-ICs wie 8051,> Z80 bis hin zu 8086,8051 aber nicht. Das war eine der erfolgreichsten Mikrocontrollerserien
überhaupt.
Gruß
Joachim
Steffen K. schrieb:> Heute ist das Unterscheidungskriterium die MMU.> CPU: Mit MMU.> MCU: Ohne MMU.>> Linux, Windows, ... benötigen eine MMU.
Das stimmt so nicht. Eine (natürlich abgespeckte) version des linux
kernels kann auch ohne MMU:
https://www.kernel.org/doc/Documentation/nommu-mmap.txt
Natürlich muss man dann mit malloc und Konsorten aufpassen wegen Memory
Fragmentation. Aber für Minimalsysteme durchaus geeignet.
Vielleicht muss man noch einwerfen, dass der Mikrocontrollermarkt
ziemlich umkämpft ist. Einige Firmen werden vielleicht vom Markt
verschwinden und andere neue versuchen Anteile zu erkämpfen.
Das kann auch zu Marketingpreisen führen, bei denen man am Anfang mit
Verlusten verkauft in der Erwartung später hohe Stückzahlen zu erzielen.
Fazit ganz allgemeine: Der Preis eines Mikrocontrollers ist von vielen
Faktoren abhängig. Speicher und Rechengeschwindigkeit sind beileibe
nicht alle Kriterien.