Forum: Mikrocontroller und Digitale Elektronik mikrokontroller vs. mikroprozessor


von robi_N (Gast)


Lesenswert?

Hi ich wollte mal fragen ob mir hier jemand den unteschied zwischen nem
mikrokontroller und nem mikroprozessoer erklären kann! danke ne!
schickt die antwort bitte per e-mail!

von Vitali (Gast)


Lesenswert?

Sonst noch Wünsche?
Vielleicht noch eine Überweisung auf dei Konto zwischendurch?

von leo9 (Gast)


Lesenswert?

Bin mir zwar nicht 100%-ig sicher obs eine Definition gibt, aber für
mich ist ein -Prozessor eine "dumme" ALU mit Adress- und Daten-Bus.
Bei einem -Kontroller sind ALU, RAM, ROM und div. Peripherie in einem
Baustein vereint.

grüsse leo9

von Suschman (Gast)


Lesenswert?

Hi

Auch die mir bekannte Definition ist, das ein "Mikroprozessor" nur
die reine Recheneinheit mit Businterface ist (Z80,6502,x86) und ein
"Mikrocontroller" eben die heute bekannten dinger (Pic,AVR) mit
Ram,Rom,und IO Ports ist.

Mfg Suschman

von Dieter (Gast)


Lesenswert?

Letzteres trifft auf einen Pentium (1-4) oder Athlon auch zu...

von ERDI - Soft (Gast)


Lesenswert?

Hm, mein Duron hat nen ROM? Cool. Und was steht da drin?

Mikroprozessor ist die reine Recheneinheit, die lediglich ein
Bussystem hat (8080, 8086...), während der µController den Programm-
und Datenspeicher intus hat und meist mit so netten Funktionen wie A/D-
und D/A-Wandler, SPI, I²C, UART usw. usf. ausgerüstet ist.

von Dieter (Gast)


Lesenswert?

Tja, Erdi, in Deinem Duron laufen Mikroprogramme ab. Damit werden dann
die x86er Befehle ausgeführt, die jeweils aus einigen dieser
Mikrobefehlen bestehen. Und selbstverständlich hat Dein Duron so Sachen
wie RAM (Cache), Counter, etc. Schau einfach mal in ein Datenblatt
sowie ein entsprechendes Lehrbuch.

Die Zeiten, wo sich die beiden Begriffe so einfach trennen ließen, sind
schon lange vorbei...

von ERDI - Soft (Gast)


Lesenswert?

Schon richtig, er hat aber keinen eigenen Programmspeicher, also kein
ROM. Und Counter und so Zeug sind Standart bei nem Mikroprozessor. Das
hat jeder µController auch. Der Unterschied ist nur, dass der
µController auch ohne externe Peripherie funktioniert. Während der
Mikroprozessor (Duron oder ähnliches) immer nen Programmspeicher
braucht, bevor er weiß, was er zu tun hat.

Nach deiner Erklärung ließe sich gar keine Trennung zwischen
Mikrocontroller und Mikroprozessor machen. Es gibt keinen ROM im Duron.
Die Befehle sind Hardwaremäßig realisiert und kein Assemblerbefehl
sorgt dafür, dass mehrere dieser Befehle nacheinander abgerufen werden.
Das mit den Mikroporgrammen ist Schwachsinn. (Belehrt mich eines
Besseren, dalls die Aussage falsch ist.)

von TeslaZwerg (Gast)


Lesenswert?

und warum kann ich in einem Debugger sehen, welche Assembler befehle zu
meiner CPU geschickt werden?

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Weil dein Debugger sie aus dem Speicher ausliest.

von Dieter (Gast)


Lesenswert?

@Erdi:

Was Du schreibst, ist Schwachsinn. Schon der 286er hatte ein
MicrocodeROM, in dem recht umfangreiche Mikrocode-Programme abgelegt
sind.
Dein Duron hat natürlich wesentlich mehr davon.
Wie geschrieben, lesen bildet. Alternativ kannst Du natürlich auch jede
Vorlesung über Rechnerarchitekturen bzw. -Strukturen lesen, dort sollte
das auch stehen.

Der Grund für die Mikroprogramme ist natürlich die Performance.
Prozessoren haben mittlerweile so tiefe Pipelines, dass es nahezu
unmöglich wäre, die x86-Befehle rein in Hardware zu entwickeln, so dass
die Pipelines ausgenützt würden. Deshalb wird das in Mikrocode gemacht.

von Matthias (Gast)


Lesenswert?

Hi

in einem modernen Prozessor laufen schon µProgramme ab. Ein
x86-Maschinenbefehl wird in mehrere µOps zerlegt welche dann durch die
Pipline geschickt und damit verarbeitet werden. An die Ebene der µOps
ist von Außen kein rankommen.

Matthias

von Dieter (Gast)


Lesenswert?

@Matthias:
"An die Ebene der µOps ist von Außen kein rankommen":
Leider falsch. Genau das passiert mit den BIOS-Updates. Wenn also Intel
oder AMD einen Fehler entdecken, ändern sie den Mikrocode und geben ihn
an die BIOS-Hersteller weiter, die ihn dann wiederum an die
Boardhersteller weitergeben, so dass der Code dann in die Prozis
kommt.
Im Prinzip kannst Du also auch den Mikrocode ändern...

von Matthias (Gast)


Lesenswert?

Hi

@Dieter
Mikrocode und µOps sind zwei Dinge:

Am Beispiel des PII:
Dieser besitzt drei Dekoder die x86-Befehle direkt in µOps übersetzen.
Zwei dieser Dekoder übersetzen einen x86-Befehl in eine µOp. Der dritte
übersetzt einen komplexeren x86-Befehl in vier µOps. Es gibt aber auch
x86-Befehle die wesentlich mehr als vier µOps benötigen. Und genau hier
kommt der Mikrocode zum Einsatz. Die komplexen x86-Befehle werden an
den Microcode Instruction Sequencer weitergeleitet der diese Befehle in
µOps umsetzt. Mit dem Mikrocode kann man also "nur" die Umsetzung
kmplexer Befehle in µOps beeinflussen.

Matthias

von Jim (Gast)


Lesenswert?

Das ist richtig, aber trotzdem hat der Mikroprozessor dazu ein ROM.
Und letztlich sind die x86-Befehle "nur" eine höhere
Programmiersprache, die der "Interpreter" umsetzt. Von daher hat
Dieter schon recht, dass sich MCs und Prozzis sehr ähneln und sich
schlecht anhand der Funktionseinheiten unterscheiden lassen.

Es gibt ja auch etliche MCs, die kein Flash-ROM onboard haben und nur
eine sehr beschränkte Ausstattung (kein A/D, nur Digitalports, ein
Timer).

von Fritz Ganter (Gast)


Lesenswert?

Ein Prozessor hat aber kein RAM mit dem es (richtig) arbeiten kann. Der
Cache wird nur mit Daten gefüllt wenn vom "echten" RAM Daten kommen
oder ins echte RAM Daten geschrieben werden. Ob die Daten überhaupt im
Cache landen, entscheidet eine eigene Logik, darauf hat der Prozessor
(aus Softwaresicht) keinen Einfluss.
Eigentlich hat der Prozessor also keinen "direkten" Zugriff auf den
Cache (also aus Programmsicht) sondern bekommt statt dem RAM Inhalt die
Daten halt vom Cache wenn sie drin vorhanden sind. Der Cache ist für
die CPU nur eine Durchreiche. Man merkt es auch daran, dass der Cache
nicht linear adressierbar ist, in ihm könne Datenteile stehen, die im
RAM Gigabyte-weit auseinander sind.

Weiters kannst du einen Prozessor auch nicht per Assembler so
programmieren dass er auf sein "ROM" (wie manche hier das
Microcode-ROM bezeichnen) zugreifen kann. Der Microcode ist bloss die
Softwareemulation für Hardware. Mit dem Vorteil, dass man sie *in
Grenzen* ändern kann. Man kann mit einem neuen Microcode natürlich
nicht alle Prozessorbugs beseitigen, nur die, die im Microcode sind
:-)

Ich hoffe, jetzt endgültig alle verwirrt zu haben.

von Jim (Gast)


Lesenswert?

Tja, und ich setze noch eins drauf: Etliche MCs haben auch kein RAM,
siehe diverse ATtinys, die haben genau wie Prozzis nur Register...

Und man kann selbstverständlich mit neuem Microcode auch Fehler
beseitigen bzw. umgehen, die nicht im Microcode sind. Wird ja auch
zuhauf gemacht.

Also die Unterscheidung zwischen MC und Prozzi ist wohl nicht leicht ;)

von Khani (Gast)


Lesenswert?

Das Killerkriterium, um die beiden doch noch hablwegs unterscheiden zu
können lautet :
µController haben auf einem Chip vereint einen Prozessorkern, einen
internen Bus, sowie Peripheriekomponenten. Dazu kommen können noch
Programmspeicher, Datenspeicher, sowie beliebig viele komplexe
Schnittstellen, Zeitgeber und andere höhere Ein-/Ausgabegeräte. Des
weiteren kommen in Microcontrollern sehr umfangreiche Maßnahmen zur
Energieeinsparung zum Einsatz, da diese meist mit limitierten Resourcen
bezüglich Energiereserve oder Abwärmekpazität konfrontiert sind. Last
but not least wird bei den Microcontrollern größter Wert auf zeitliche
Vorhersagbarkeit des Ablaufs bzw. der Ergebnisse gelegt.

Micorprozessoren besitzen einen Prozessorkern, möglicherweise einen
internen Bus, sowie diverse Speicher- und Speicherzugriffseinheiten.
Nicht integriert sind jedoch Schnittstellen zur direkten Kommunikation
mit Peripheriegeräten.

Bezüglich µOps, µInstructions und Macro-Ops, und wie sie alle heißen
mögen, kann ich nur ein Buch empfehlen. (Microcontroller und
Microprozessoren von U.Brinkschulte und T.Ungerer). Ihr habt oben so
viele Konzepte und Techniken, sowie Microarchitektur und Architektur
durcheinanderegewürfelt, dass keiner mehr durchblickt. Desweiteren
möchte ich bezweifeln, dass hier jeder überhaupt das Rüstzeug hat, sich
überhaupt hier über die modernste Technik in Prozessoren zu diskutieren
(das dürfte erheblich Vorschädigung in Informatik und Elektrotechnik
voraussetzen).

Ich hoffe eine die Unterschiede etwas hervorgehoben zu haben. Ich habe
das aus der zum Buch gleichnamigen Vorlesung an der Universität
Karlsruhe.

MfG, Khani

von Joe (Gast)


Lesenswert?

hmm,ja eine sehr knifflige Frage.

Also meiner Ansicht nach liegt der Unterschied darin, da µController
ein abgeschlossenes System darstellen. Also mit ALU, Speicher(in form
einen EEProm, oder SRam,oder was auch immer) und Peripherie (also Ein
und Ausgänge, A/D Wandler). Wie hald ein kompletter PC auch.

So der µProzessor ist kein vollständiges System, denn er braucht
externen Speicher, externe Peripherie um überhaupt mal zu
funktionieren.

Ich denke daran kann man die 2 Systeme am besten von einander
unterscheiden.

von Winfried Elischberger (Gast)


Lesenswert?

Hi robi_N,

'goggel' mal nach :

"Ein Mikrokontroller ist"
"Ein Mikroprozessor ist"

.....dann erhälst Du die Antwort.

Gruss; Winfried

von Jürgen (Gast)


Lesenswert?

Tja, es gibt ja mittlerweile auch DSPs, die nach obigen Definitionen
Mikrocontroller sind. Und wenn man aktuelle PC-Proz. anschaut, so haben
diese auch diverse DSP-Funktionalitäten...
Es gibt sogar komplette PCs on a chip.

Als Fazit lässt sich wohl sagen, dass die Grenzen schwimmend sind und
sich viele Prozessoren, Mikrocontroller und DSPs nicht mehr eindeutig
nur einer Kategorie zuordnen lassen.

von m@u (Gast)


Lesenswert?

Für mich ist ein Mikrocontroller ein Baustein, der sich programmieren
lässt und dann autonom funktionieren kann, also einen
Single-Chip-Betrieb möglich macht. Ein Mikroprozessor benötigt als
Programmspeicher externe Bauteile. Ich habe noch nie einen
Mikroprozessor gesehen, der das auszuführende Programm direkt
einprogrammiert hat.

Ist vielleicht etwas zu einfach, aber sicher verständlich...

von Don (Gast)


Lesenswert?

@m@u: Tja, demnach sind viele Mikrocontroller also in Wirklichkeit
Mikroprozessoren...

Ist also in der Tat zu einfach.

von Uwe (Gast)


Lesenswert?

Ich staune nur, daß sonst so nüchterne und pragmatische Elektroniker
hier zu emotional geführten philosophischen Diskussionen auflaufen.
:-)

Meine (zweckorientierte) Sicht der Dinge:

Es kommt auf die konkrete Anwendung an.

Wenn ich eine bestimmte Regelungs-/meßtechnische oder vergleichbare
Aufgabe lösen will, suche ich mir einen Chip, der es mir erlaubt, mit
minimaler Zusatzbeschaltung und ausreichender Rechenleistung dieses
Problem zu lösen. Das wäre imho ein Microcontroller. Z.B. habe ich
schon einen Z80 (kennt den noch jemand? ;-) als intelligente Türklingel
gesehen, augestattet lediglich mit einem Eprom und etwas diskreter
Beschaltung. Dabei wäre der Z80 eigentlich ein klassischer
Microprozessor. Verwendet wurde er im Beispiel aber als Controller.

Ein Microprozessor würde ich dann brauchen, wenn ich eine bestimmte
Rechenleistung zur Lösung einer Aufgabe haben muß und den gewählten
Chip dann mit der nötigen Peripherie ergänze, um diese Rechenleistung
aus ihm herauszukitzlen und nutzbar zu machen. Beispiel: PC,
mainframes

Manche Chips sind von ihrem Entwurf her eher als Prozessor geeignet
(hat schon mal jemand versucht, mit einem nackten Duron ein 2x16
LCD-Display anzusteuern?), andere eher als Controller. Es gibt auch
Zwitter wie z.B. den 80C186, den man wie einen 8086 in einem PC
betreiben kann, aber auch unter Nutzung der auf dem Chip vorhandenen
Peripherie als Microcontroller verwenden kann.

PS:
Das elektor-Microcontroller-Handbuch definiert wie folgt: "Spezifisch
an Microcontrollern ist, daß neben dem eigentlichen Prozessor noch eine
Menge Peripherie auf einem Chip integriert ist, so daß mit wenig
zusätzlicher Hardware ein eigenständiger Microcomputer entstehen
kann."

von marc (Gast)


Lesenswert?

was für ein kunde der threadsteller!
durch die beantwortung der fragen im forum habe ich jetzt 6 jahre später 
ein paar gute antworten parat...

man man man kunden gibts..

von egon (Gast)


Lesenswert?

Mikroprozessoren:
Z80,6502,8085,80486,Pentium ..., 68000,

Mikrocontroller:
8051,Pic,AVR,manche ARM,

von Klaus W. (mfgkw)


Lesenswert?

sind da in den letzten 6 Jahren keine neuen dazu gekommen?
:-)

von Andreas M. (elektronenbremser)


Lesenswert?

Egon,
der den das interessierte hat vor über ""6 JAHREN" danach gefragt!

von Eric (Gast)


Lesenswert?

Das verdient die Auszeichnung "Rostiger Spaten mit Stern" ;)
für das Ausgaben eines so alten Threads.

Schönes Wochenende,
Eric.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.