Wie rechnet ein Rechenwerk Befehle aus?

3 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

ganz einfach , es geht um 0 und 1

beim laden eines befehls macht der cpu nix anderes als eine folge von 0 und 1 zu laden die dem rechenwerk dann z.b. sagt welches programm ablaufen muss .

will das programm etwas berechnen z.b. 2 +3 , hat es z.b. register und natürlich speicher

der ablauf könnte wie folgt sein .

wert1 = 2

wert2 = 3

wert3 = add(wert1,wert2)

was passiert nun im Rechenknecht :

erstmal liesst er das ganze

wert1 = 2 , bedeutet also lege einen speicher an und pack da den wert 2 rein

wert2 = 3 , bedeutet also lege einen speicher an und pack da den wert 3 rein

add(wert1,wert2) , hole dir den wert aus speicherstelle mit dem namen wert1 packe das ins register , hole dir den wert aus speicherstelle mit dem namen wert2 packe das in ein weiteres register , nehm den code für add und tu deine arbeit mit den beiden registern . schreibe das ergebnis auf den speicher mit dem namen wert3

der befehl add ist schon vordefiniert im CPU .

jetzt fragste dich natürlich wie komplexere sachen gemacht werden können .

naja das ist eigentlich ganz einfach . turing maschine ist das mittel aller mittel .

und das sich alle möglichen lösungen nur aus schaltern und logik erzeugen lassen .

denn wenn du dein leben runterbrichst auf dein chromosom , bestht das auch nur aus 3 Säuren , und dennoch hast du beine ohren etc . das leben besteht auch nur aus atomen , so viele sind das jetzt nicht im verhältnis was du alles aus den atomen bauen kannst .

und genauso läuft das mit dem CPU und natürlich durch die pheripherie .

um ein bild anzuzeigen braucht es 3 farben und die müssen nur einen bestimmten leucht wert haben , im speicher muss nur stehen welcher punkt welchen wert hat für jede farbe . Und schon kannst du jedes Bild erzeugen . der CPU hat keine ahnung was das wird , der monitor auch nicht , der kümmert sich nur um die punkte , aber dein auge ... macht daraus ein bild .


Pfranzy 
Beitragsersteller
 02.04.2019, 18:48

Danke . Aber was ist , wenn man ein Programm startet . Da rechnet er doch bestimmt auch tauesend Befehle aus . Welche denn zum Beispiel?

RakonDark  02.04.2019, 18:56
@Pfranzy

naja, das was halt im programm steht .
nennen wir das doch einfach arbeitsanweisungen.

erstmal wird beim programmstart , das programm in den hauptspeicher geladen .

dann geht die turing maschine ab dem start des speichers los , stelle dir das vor wie ein streifen wo du buchstaben hintereinander hast .

wenn du den streifen nimmst und beim ersten buchstaben anfängst, weisste ab den nächsten leerzeichen das es ein wort ist . so wie du ließt und das wort im gehirn übersetzt , so macht es auch der CPU mit dem speicher . wein 64bit programm , ließt also immer 64bit also 64 x 0 bzw 1 und guckt dann in seiner Programmbibliothek nach welches miniporgramm er starten muss .

Das miniprogramm sagt dann z.b. als nächstes kommt wert1 und wert2 , also ließt das miniporgramm die nächsten speicher aus und hat dann wert1 und wert2 .

und so weiter uns so fort .

genauso wie du also z.b. ein kochrezept ließt und die anweisungen befolgst , so tut der CPU das programm ausführen .

und damit wir nicht ständig nachgucken müssen welcher befehl welche 64 bit zahl ist, gibt es programmiersprachen , die wandeln also nach lesen des wortes den befehl in einen computercode um .

Pfranzy 
Beitragsersteller
 02.04.2019, 19:23
@RakonDark

Danke nochmal ! Also rechnet er Wert 1 + Wert 2 , und wenn dann aus dem beiden Werten z.B 5 rauskommt dann mach das und das , und wenn 7 rauskommt dann mach das und das . Habe ich das so richtig verstanden?

RakonDark  02.04.2019, 19:29
@Pfranzy

wenn das in dem programm so steht , ja

deine kochanleitung ist ja nicht anders .

nudeln kochen :

nehme topf

packe nudeln rein

gehe zum wasserhahn

dreh wasser hahn auf

warte bis nodeln unter wasser

drehe wasserhahn wieder zu

gehe zum herd und stell topf auf herd

schalte kochplatte auf 2

warte bis wasser kocht

stelle wecker auf 10 minuten

wenn wecker klingelt mach kochplatte auf 0

nehm topf und geh zur spüle

nehm sieb

kipp topf inhalt ins sieb

warte bis nix mehr durch sieb tropft.

Pfranzy 
Beitragsersteller
 03.04.2019, 17:22
@RakonDark

Ich weiß , dass ist jetzt ein dummes Beispiel , aber in Minecraft kann man ja auch Befhle ausführen . Wie z.B "/summon Zombie" oder sowas . Wie wird das ausgerechnet ?

RakonDark  04.04.2019, 10:06
@Pfranzy

Da hat der Spiele Programmierer seine eigenen Befehlssprache eingebaut. Der Befehl führt dann eine funktion innerhalb des Programmes aus . Wie ein Mausklick nur das es eben per Text geht :)

Nein, die Befehle werden ins Steuerwerk geladen, welches dann wieder das Rechenwerk ansteuert.

Numerischer Opcode als Binärzahl wird vom Steuerwerk dekodiert. Im einfachsten Fall entsteht dabei eine Liste von Zahlenfolgen, die wiedrum die Stimuli (Eingänge) der Steuerleitungen des Rechenwerkes sind.