Ich bin seit vielen, vielen Jahren ein Computer-Nerd. Ich kann in einigen Sprachen programmieren und sie sogar erstellen. Ich habe mich neulich mit einem Kumpel zusammengesetzt und gefragt, wie ein Computer tatsächlich Strom verbraucht und etwas damit macht, und wir konnten es einfach nicht herausfinden, und Google hat auch nicht viel geholfen.
Ich meine, wie nimmt ein Computer einen konstanten Stromfluss auf und wandelt ihn in Einsen und Nullen um und macht dann tatsächlich etwas mit diesen Einsen und Nullen, wie ein Licht für 15 Sekunden anzuschalten?
Ich verstehe Gates (AND, OR, NOR, NAND, NOT) und ein wenig über Dioden , Widerstände und Transistoren , aber ich dachte, dies wäre der perfekte Ort, um es in wahren Laienbegriffen erklären zu lassen!
Kann jemand mich in die richtige Richtung weisen oder mir eine kurze Erklärung geben?
Antworten:
Dies ist eine weit gefasste Frage, auf die es keine einfache Antwort gibt. Es ist ein langer Weg von Elektronen, die über Kupferdrähte huschen, bis zum Rendern einer Website in Firefox. Ich werde versuchen, Ihnen einen Überblick von unten nach oben zu geben und Sie auf die richtigen Dinge hinzuweisen, um nachzuschlagen.
Zahlen kodieren
Die grundlegende Motivation besteht darin, Dinge wie beim Rechnen zu berechnen¹. Das erste, was man sich ansehen muss, ist, wie man Zahlen darstellt. Es gab viele Ansätze, die Dezimal- oder Dreistellensysteme verwendeten, und ich denke sogar Oktalsysteme, aber am Ende setzte sich die Binärfunktion durch. Jetzt wissen wir, dass wir Geräte bauen müssen, die mit zwei Werten umgehen - nennen wir sie und .10 1
Beachten Sie, dass es auch mehrere Möglichkeiten gibt, Zahlen in Binärform zu codieren. Nachdem Sie Ihren ersten Prozessor aufgebaut haben, erkennen Sie die Vorteile einer bestimmten Vorgehensweise. Beliebte Beispiele sind die Floats mit zwei Komplementen und IEEE . Beschränken Sie sich zunächst auf natürliche Zahlen.
Tore
Angenommen, wir verwenden eine binäre Codierung. Stellen Sie sich vor, wie Sie in der Grundschule das Hinzufügen gelernt haben, und schreiben Sie dasselbe für Binärzahlen auf. Wie sich herausstellt, sind die Bausteine der Booleschen Algebra bereits für Sie da; Es ist einfach, einen Basisaddierer (und andere arithmetische Funktionen) unter Verwendung von Logikgattern zu erstellen .
Wie solche Tore gebaut werden, liegt außerhalb des Rahmens der Informatik. Die Elektrotechnik hat mehrere Lösungen unter Verwendung von z . B. Röhren oder Transistoren bereitgestellt . Bei Fragen hierzu wenden Sie sich bitte an Electrical Engineering Stack Exchange .
Uhr und Zustand
Nicht alle Gates sind gleich schnell und nicht alle Teile einer Berechnung haben die gleiche Anzahl von Gates. Deshalb müssen wir besonders darauf achten, dass sich einzelne Vorgänge nicht gegenseitig überholen. Es hat sich als nützlich erwiesen, eine globale Uhr zu verwenden . Das Ergebnis eines gegebenen Netzwerks von Gattern ist der Zustand der Ausgangsdrähte am Ende des Zyklus (der sich wild ändern kann, während die Gatter in Richtung ihrer individuellen Endzustände kaskadieren).
Das bedeutet, dass die Ergebnisse eines Zyklus möglicherweise gespeichert werden müssen, bis der nächste Zyklus beginnt, z. B. wenn Sie Schleifen verkabeln. Es gibt eine Reihe grundlegender Elemente, die Sie mit unterschiedlichen Effekten verwenden können und die sich alle aus Toren zusammensetzen. Einige werden Flip-Flops genannt . Diese werden auch verwendet, um Register zu erstellen , Elemente, die Zahlen für beliebig viele Taktzyklen speichern.
Architektur und Befehle
Jetzt haben Sie eine Vielzahl von Design-Entscheidungen zu treffen. Welche Rechenoperationen bietet Ihr Prozessor? Wie sehen Ihre Befehle aus? Es mag lehrreich sein, sich die MIPS-Architektur anzuschauen, deren frühe Formen im Vergleich zu anderen Designs einfach sind. Schauen Sie sich die Pläne an :
Original von http://ube.ege.edu.tr/~erciyes/CENG311
Im Wesentlichen geht es um das Abrufen und Zerlegen von Befehlen, eine Reihe von Registern, eine ALU und eine Steuerung. Befehle codieren, welche ALU-Operation an welchen Operanden ausgeführt werden soll (anhand der Nummer des Registers, in dem sie gespeichert sind), wie der Programmzähler² manipuliert wird oder welches Register aus dem / in den Speicher³ geladen / gespeichert wird.
Weitere Überlegungen
Inzwischen haben Sie einen funktionierenden Prozessor im modernen Sinne, vorausgesetzt, Sie haben herausgefunden, wie Sie einen Speicher aufbauen und wie Sie ihn mit Befehlen versorgen können. Auf dem Weg zu einer modernen Maschine müssen viele Entscheidungen getroffen werden. Hier sind einige:
Alternativen
Das Obige ist stark von der Entwicklung der Geschichte beeinflusst. In einer anderen Welt mit anderen Köpfen funktionieren Computer möglicherweise anders. Tatsächlich gibt es eine Vielzahl von Berechnungsmodellen , von denen einige Vorteile haben, die sie in vielen Fällen als Abstraktion für reale Maschinen nützlich machen. Es gibt auch Versuche, die Funktionsweise unseres Gehirns nachzuahmen, dh das neuronale Rechnen zu ermöglichen oder allgemein Strategien zur Problemlösung und Informationsspeicherung zu nutzen, die in der Natur zu beobachten sind , insbesondere DNA- und Quantencomputer .
Vielleicht (hoffentlich?) Handelt es sich bei den obigen Informationen um die gesamte alte Geschichte in 50 oder 100 Jahren.
quelle
Das Gesamtbild ist ziemlich kompliziert. Es sind viele Schichten übereinander aufgebaut, die zusammen Abstraktionen auf hoher Ebene über elektrische Spannungen implementieren. Es gibt keine einfache Erklärung dafür, wie alles zusammengesetzt ist, zumal sich Computerhardware und -software in den letzten fünfzig Jahren dramatisch entwickelt haben.
Wenn Sie wissen möchten, wie sich alles zusammensetzt, sollten Sie sich The Elements of Computing Systems ansehen , ein Buch, das mit NAND-Gattern beginnt und schrittweise eine funktionsfähige Implementierung von Tetris auf der Basis eines Compilers und Betriebssystems aufbaut Sie bauen auch. Jeder Teil des Computers baut auf dem vorherigen auf, sodass Sie möglicherweise sehen können, wie alles funktioniert.
quelle
Die Podcast-Sicherheit jetzt! habe eine Reihe darüber gemacht, wie Computer funktionieren, angefangen mit Grundprinzipien.
Die Lücken in den Zahlen bestehen darin, dass jede zweite Episode eine Listener-Feedback-Episode ist. Vielleicht möchten Sie sich diese auch ansehen. Ebenfalls zwischen 241 und 247 führten sie einige Episoden über SSL durch, da zu dieser Zeit die neuesten Nachrichten über Länder kamen, die CA dazu zwangen, Root-Zertifikate an sie zu vergeben.
Auch EP. 248 ist der "Portable Dog Killer", der keine Hunde tötet, sondern eine Schallstrahlwaffe, die Steve als Kind selbst hergestellt hat, um einem Nachbarhund beizubringen, nicht an die Zaunlinie zu rennen und Menschen auf dem Bürgersteig anzugreifen .
quelle
Ein Computer manipuliert Energieverläufe (die wir dann als Einsen und Nullen interpretieren) auf konsistente , definierte Weise. Es ist die Konsistenz, die einen Computer definiert, während es die Definition ist, die die verschiedenen Prozessoren trennt.
Erfahren Sie auch, wie zwei logische Gatter (ODER und UND) ausreichen, um einen Universalcomputer aufzubauen. Siehe auch Danny Hillis und der Tinkertoy-Computer.
quelle
Ein Computer ist ein großes synchrones logisches System , was bedeutet , dass
Es hat spezielle Schaltkreise, um Informationen zu speichern, solange der Computer mit Strom versorgt wird (RAM, in großen Mengen). Es verfügt über spezielle Schaltkreise für die Ausführung von Binärarithmetik (tatsächlich werden die Bits in Gruppen behandelt - typischerweise in Vielfachen von 8 -, die zusammen eine ganze Zahl darstellen). Und es verfügt über spezielle Routing-Funktionen, die auf Speicheradressen basieren, die nichts anderes als ganze Zahlen sind.
Last but not least verfügt ein moderner Computer über ein Programm, das ebenfalls im RAM gespeichert ist. Hierbei handelt es sich um eine Liste von Anweisungen, die als Ganzzahlen codiert sind. Diese werden nacheinander ausgeführt, wobei normalerweise Daten aus dem Speicher abgerufen, arithmetisch verarbeitet und die Ergebnisse zurück in den Speicher gesendet werden.
In Ihrem Szenario könnte man sich eine Implementierung vorstellen, bei der die verstrichene Zeit irgendwo im RAM gespeichert wird und das Programm dazu auffordert
Beachten Sie, dass alle diese Elemente heute ein hohes Maß an Raffinesse erreichen, und jeden Satz in diesem sehr kurzen Überblick verdient mehrere Bücher von Erklärungen.
quelle
Es gibt verschiedene Möglichkeiten, eine Verzögerungsfunktion auszuführen oder die Binärdaten in Dezimaldaten oder Signalstärke umzuwandeln. Wenn Sie den Wert "15" eingeben, zeigt der Computer ein Bitmap-Bild mit der Nummer 15 auf dem Bildschirm an. Dies ist eigentlich der Binärwert, momentan wird der Binärcode Ihrer Tastatur auch an die CPU gesendet. Es analysiert die Daten und wandelt dann den Code in eine ALU-Verarbeitungseinheit (Arithmetic Logic Unit) um, um ihn in einen Impuls in einen DAC-Chip umzuwandeln. Das analoge Signal steuert jetzt die Frequenz (die Frequenz von khz bis hz) einer Flip-Flop-Schaltung. Jetzt wird die Frequenzausgabe an den RAM geleitet und der CPU-Lese-RAM wird angepasst, wenn die Daten "1111" sind. Das sind also 4 Sekunden.
quelle