Wie funktioniert der Übergang zwischen Soft- und Hardware?

Probleme mit Computern und Zubehör dürfen hier erläutert werden

Moderatoren: Tim Sasdrich, Sebi

Wie funktioniert der Übergang zwischen Soft- und Hardware?

Beitragvon Pelle » 11.11.2017, 21:59

Eigentlich wollte ich das schon immer mal wissen und kann es mir bei den Anfängen mit der Relaistechnik auch vorstellen. Da wurde ähnlich, wie bei Spieluhren, eine Vorlage abgestastet und die dort enthaltene Information (der Code) in Schaltimpulse umgesetzt.
Wie funktioniert das denn auf Halbleiterebene? Wie wird eine Hochsprache in Maschinencode übersetzt? Gibt es da eine Art Tabelle? Und diese Nullen und Einsen, der Binärcode, wie bewirkt er die Ansteuerung von welchen Transistoren?

Kann mir das jemand kurz, knapp und ohne ganze Bücher zu zitieren, erklären?
Pelle
 
Beiträge: 187
Registriert: 19.12.2012, 19:46

Re: Wie funktioniert der Übergang zwischen Soft- und Hardware?

Beitragvon Tim Sasdrich » 11.11.2017, 23:33

Quasi alles gespeicherte ist in Register unterteilt. Jedes Register hat eine Adresse und einen Wert sowie üblicherweise die gleiche Bitzahl (8-Bit-Prozessor = 8-Bit). Es gibt den Arbeitsspeicher und Festspeicher aber auch Ein- und Ausgänge.

Das Steuerwerk holt sich der Reihe nach Befehle. Früher wurde einfach der Lochstreifen eins weiter geschoben, heutzutage zählt ein Register bei jedem Befehl hoch und liest den Befehl von der entsprechenden Adresse des Speichers. Bei Sprungbefehlen wird dieses Register entsprechend geändert. Der Befehlsdecoder ist auch Teil des Steuerwerkes und übersetzt die Befehle, sodass sie ausgeführt werden können.

Beispielsweise für eine Addition wird erst Eingang 1 in RAM-Register 1 geladen, Eingang 2 in RAM-Register 2.
Nun werden diese RAM-Registerinhalte in die Eingangsregister der Arithmetisch-logischen Einheit (ALU) geladen und diese bekommt an den Steuereingängen den Wert für "Addition" mitgeteilt. Nachdem die Berechnung durchgeführt wurde, wird deren Ausgangsregister auf RAM-Register 1 übernommen und RAM-Register 1 auf das Ausgangs-Register 1 übernommen.

Je nach Controller gibt es unterschiedliche Befehle, wodurch die Controller unterschiedliche Dinge können. Für diese Aufgaben wäre es z.B. praktisch, der Controller könnte direkt den Eingangswert an die ALU weitergeben, ohne ihn im RAM zwischenspeichern zu müssen.
Ebenso ist es auch unterschiedlich, was die ALU kann. Z.B. ob man für das 8-fache von 5 das Register einfach um 3 verschieben kann, ein Multiplizierer vorhanden ist oder 5+5+5+5+5+5+5+5 gerechnet werden muss.

Die ersten Computer kamen mit wenigen Befehlen aus, da jeder Befehl vom Programmierer herausgesucht werden musste und das Programm letztendlich auch mit 5+5+5+5+5+5+5+5 noch schneller war als ein Mensch. Heutzutage wird üblicherweise mit einer höheren Sprache programmiert, der Compiler übersetzt das geschriebene in Maschinencode und sucht idealerweise auch die richtigen Funktionen heraus, die der Controller besitzt. Geht es aber wirklich um Performance (Live-Bildverarbeitung, Crypto-Mining, ...) wird weiterhin mit Assembler (sehr nach an Maschinencode) programmiert oder programmierbare Logik verwendet.


Programmierbare Logik sind im Prinzip nur verbundene Speicher deren Adressleitungen angesprochen werden. Für ein AND wird einfach ["0","0","0","1"] eingetragen.
00 (=0) => 0
01 (=1) => 0
10 (=2) => 0
11 (=3) => 1

Meist arbeitet man mit 4 Eingängen und Dinge wie "((A UND (NICHT B)) ODER (B UND D) ODER ((NICHT A) UND C) UND (NICHT (A UND B UND C UND D))" lassen sich so in einem "Gatter" erledigen: Wertetabelle ausrechnen und eintragen: ["0","1","0","0","0","1","0","0","0","1","1","0","1","1","1","0"]
Für z.B. einen Addierer nimmt man eben mehrere "Gatter", gibt ihnen die selben Eingänge und legt die Werte für die Ausgänge bei den verschiedenen Eingangskombinationen an.
Da nicht alle Berechnungen von einer einzelnen ALU durchgeführt werden müssen, kann dies durch die Parallelisierung für spezielle Anwendungen durchaus schneller sein.

Und natürlich lassen sich auch noch Controller und programmierbare Logik kombinieren.
"Der Kluge lernt aus allem und von jedem, der Normale aus seinen Erfahrungen und der Dumme weiß alles besser." - Sokrates (470 - 399 v. Chr.), griechischer Philosoph
Tim Sasdrich
 
Beiträge: 2934
Registriert: 07.01.2009, 14:15
Wohnort: Villingen-Schwenningen

Re: Wie funktioniert der Übergang zwischen Soft- und Hardware?

Beitragvon Pelle » 12.11.2017, 11:42

Vielen Dank, Tim. :P Jetzt seh ich klarer. Schön kurz, kompakt und ausreichend präzise, sodaß ich es verstehe.
Pelle
 
Beiträge: 187
Registriert: 19.12.2012, 19:46


Zurück zu Probleme und Hilfen

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron