Dies ist ein großes Thema und ich kann keine einfache Antwort geben, aber ...
Sie können dieser Antwort ein wenig näher kommen, indem Sie einige geteilte und erobern, und da die andere Antwort versucht, dieses Problem aus hw-Sicht anzugreifen, werde ich es aus einer hochrangigen SW-Sicht versuchen.
Wenn Sie eine Software in C-Code schreiben (ein sehr hohes Maß an Abstraktion), sehen Sie nicht wirklich, was passiert, und verstehen nicht wirklich alle Liebhaber-Dinge, nach denen Sie fragen.
Aber fangen wir trotzdem dort an.
Ein einfaches Programm, das nur eine Variable enthält.
int main(void)
{
int i=0;
while(1) {
i++;
}
}
Dann müssen wir den Assembler-Code abrufen, damit wir verstehen können, was los ist. Dieser Schritt kann auf jeder Plattform ausgeführt werden, aber um es einfach zu halten, verwende ich gcc auf einem PC (aber es spielt keine Rolle ...)
gcc -O0 -S main.c -o main.lst
Dann haben wir so etwas:
.file "main.c"
.text
.globl main
.type main, @function
main:
pushl %ebp
movl %esp, %ebp
subl $16, %esp
movl $0, -4(%ebp)
.L2:
addl $1, -4(%ebp)
jmp .L2
.size main, .-main
.ident "GCC: (Ubuntu 4.4.3-4ubuntu5) 4.4.3"
.section .note.GNU-stack,"",@progbits
Dann versuchen Sie, jede Codezeile zu verstehen und zu verstehen, was sie bewirkt.
Und dann fangen Sie an zu untersuchen, wie jede Anweisung implementiert wird ... Zum Beispiel das subl
subl $16, %esp
Zu diesem Zeitpunkt ist es auf verschiedenen Architekturen unterschiedlich und x86, arm, pic ist irgendwie anders ... Aber da mein Beispiel x86 war.
Und auf dieser Ebene sehen die meisten Aktionen beim Lesen der Kopie so aus, als würden Sie nur Zahlen verschieben, und in gewissem Sinne geschieht dies. Wir haben ein vordefiniertes Programm, das wir durchlaufen. Dieses Programm wird in einer Art Flash-Speicher gespeichert, bei dem es sich normalerweise um eine elektronische Logik handelt, die einen Logikpegel abfängt.
Wenn Sie für jedes Bit eine Art " Flip-Flop " sehen, sind Sie ziemlich nah dran, und dann brauchen wir viele davon. Hier fangen wir an, Ihre Einsen und Nullen zu finden.
Damit eine Aktion ausgeführt werden kann, fügen wir eine coole Logik hinzu, die eine Zahl in eine andere Zahl umwandeln kann (die CPU selbst).
Und dann folgen wir dem Programm Schritt für Schritt und um zu wissen, wo wir sind, haben wir einen Programmzähler (PC). Und verschieben Sie die Zahlen zurück und viertens und speichern Sie diese in einem anderen Speicher, der auch eine Art Gitter mit Flip-Flops ist.
Aber lassen Sie uns noch einmal auf ein bestimmtes Beispiel zurückkommen. Um die CPU ein wenig besser zu verstehen, können wir uns die ALU und dieses vereinfachte Bild ansehen . Wenn Sie sehen, dass wir am Ausgang ein neues Ergebnis erhalten, wenn wir Daten in diesen Logikblock verschieben und eine Operation mit den OP-Pins auswählen. Dass wir wiederum an einen Ort in der Erinnerung zurückkehren können.
Und Ihre ALU in Ihrem CPU-Teil Ihrer MCU zu verfluchen, ist viel komplexer als diese, aber sie funktioniert nach dem gleichen Grundprinzip.
An diesem Punkt sehen wir eine Art Logikschaltung, die auf der einen Seite die "Arbeit" erledigt, und auf der anderen Seite etwas Speicher. Der Speicher besteht aus zwei Teilen, einem für das Programm und einem für die Daten. Aber wie "bewegen" wir uns dann tatsächlich, diese müssen irgendwie miteinander verbunden sein ...
Und hier verbinden wir diese Teile mit einem Bus.
Ein Bus besteht nur aus einigen Drähten, die die verschiedenen Teile miteinander verbinden. Die Steuerlogik teilt dem Speicher dann mit, welche Daten auf diesen Bus gesendet werden sollen und welcher Teil der CPU diese gesendeten Daten abhören soll. Dies geschieht mit einigen parallelen Steuerleitungen, die die verschiedenen Teile aktivieren / deaktivieren.
...
Wenn Sie also ein mcu Ihrer Wahl nehmen und ein sehr kleines Programm sezieren, und solange Sie nicht verstehen, was passiert, sezieren Sie es noch mehr, bis Sie ein schönes kleines Puzzle haben, mit dem Sie ein "mcu" erstellen können.
Und vergessen Sie nicht, das Datenblatt für Ihr mcu zu lesen und zu prüfen, mit welchen Teilen es hergestellt wurde, z. B. mit welcher Art von Speicher, Alu, Bussen usw. usw.
Hoffe das hilft ein wenig ???
Viel Glück