Zum Inhalt springen
  • 0

Offene Grundsatzfragen technische Informatik


Ronos

Frage

Hallo an alle!

eins vorne weg: ich versuche mich aktuell als Autodidakt in der Welt der Informatik, weil mich die Themen sehr stark interessieren. Ich habe auch schon einige Einsteiger- und Fachbücher hier zu liegen. Aber es gibt dann doch Grundsatzfragen, die mir fast schon peinlich sind und die ich einfach über meine Logik und meiner Lektüre nicht erschließen kann. Ich hoffe Ihr könnt mir da ein bisschen Helfen!

Folgende Fragen habe ich:

1. Ich weiß grundsätzlich wie ein MOSFET-Transistor funktioniert. Sobald eine Steuerspannung groß genug ist, leitet der Transistor, und es wird eine 1 ausgegeben. Ich hoffe es ist so weit korrekt. Nur wie wird die Steuerspannung elektrotechnisch am Gate geregelt? Also wenn ich eine Operation eingebe (z. B. 54+76), dann wandelt der Computer diese Zahlen in Nullen und Einsen um und diese werden dann einen Voll- und Halbaddierer übergeben (grob gesagt). Vorher muss der PC ja die Einsen und Nullen ja generieren und das geschieht über die Steuerspannung am Gate des MOSFETs? Und wenn ja, wie läuft das ab?

2. Eine richtig blöde Frage: wie geht der PC eigentlich mit "Nullen" um?  Nehmen wir mal an er bekomm die Zahl 8 zu Verarbeiten, dann beginnt diese mit drei Nullen (1000) wenn man von rechts nach links liest. Aber woher weiß der Computer, dass die ersten drei Zustände (0) zu der Zahl gehören? Es fließt kein Strom ja, aber vorher weiß er das er die "Null" verarbeiten muss? Also um es noch plumper zu formulieren, wie kann ein PC unterscheiden zwischen "Keine Information"(er soll nichts verarbeiten) und er soll eine "Null" verarbeiten? Bzw. wenn mehrere Nullen Aufeinanderfolgen, woher weiß er das irgendwann eine 1 kommt und nicht vorher schon die Berechnung abschließt? Hat das was mit der vor eingestellten Länge des Wertes zu tun? z. B. ich warte bei 4 Bits immer auf 4 Zustände? Aber wie zählt er trotzdem elektrotechnisch die "Null"?

 

Ich bedanke mich für erleuchtene Antworten ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

18 Antworten auf diese Frage

Empfohlene Beiträge

  • 1
Zitat

Allerdings bei all diesen (Teil-)Systemen die überall beschrieben werden, habe ich leider immer noch kein "Gesamtverständnis" der Grundlegenden Erzeugung von den 1/0 und der verschiedenen Spannungen die benötigt werden. Mal ein simples Beispiel: in vielen Büchern/Videos usw wird erklärt das im Endeffekt der Transistor den Schalter für eine Glühbirne ersetzt und das nun das "An/Aus" geregelt wird über die anzuliegende Spannung. Aber wie regelt nun der Computer die Spannung? Und wie bekommt er das Signal dafür?

Der Schlüssel ist, dass es an keiner Stelle konkrete Einsen und Nullen gibt, sondern nur anliegende Spannungen oder eben nicht, erst der Mensch nennt das dann 1 oder 0.  Da sind wir uns schon einig, oder? Und dass es nicht beliebige Spannungen sein dürfen, sondern dass jene Spannung, die benötigt wird, um einen Schalteffekt zu erreichen, vom konkreten Bauteil abhängt, auch. Oder? 

Ich glaube, du stehst tatsächlich auf dem Schlauch und ärgerst dich vielleicht insgeheim, dass du noch vor einem gigantischen Haufen Arbeit stehst um deine (mit Verlaub) naive Frage beantworten zu können. 

Wenn du fragst "Wie macht der Computer das...", beschwörst du sehr umfassende Antworten herauf, denn um all die Gründe zu nennen, weshalb nun Transistor x in Komponente y geschaltet wird, müsste man das gesamte System betrachten und man müsste auch ein konkretes System betrachten.

Das ist in etwa wie "Ich habe gehört, dass Räder rollen, woher wissen nun die Räder am Auto, dass sie nach München rollen sollen?". 

Zitat

Ein anderes Beispiel: in vielen Videos die echte Schaltungen nachbauen (nur in grob und groß), wird ein Stecker für bestimmte Inputs umgesteckt (für High/Low-level-Spannung). Aber wie macht der PC das?

Wenn du verstehen möchtest, wann wo welche Spannung anliegt, dann antworte ich, dass die Frage zu generell ist um von mir beantwortet werden zu können. Da könnte man exemplarisch an beliebiger Stelle eines Computers genau hinschauen und nachvollziehen was passiert. Mit dem oben verlinkten Video hast du die Möglichkeit dazu, denn zu jedem Teilsystem gibt es ein eigenes Erklärvideo. Und das solltest du glaube ich tun, an diesem Beispiel werden sich deine Schuppen vor den Augen nach und nach lösen, schätze ich.

Ich denke hier ist eine Schlüsselerkenntnis, dass das "Herz" einer CPU der Schwingkreis ist, der die Takte vorgibt und dadurch immer wieder bestimmte Abläufe angestoßen werden, die dann in weiteren Teilsystemen umfassende Auswirkungen haben. Wie beim Auto: Wenn die Zündkerzen (unter bestimmten Bedingungen) zünden, geht die Kraft aus der Explosion viele Wege und stößt diverse Abläufe an bis sie schließlich dafür sorgt, dass die Räder rollen. Und dass sie nach München Rollen, hat nochmal viele andere Gründe. Der Fahrer schaut nämlich auf veraltetes Kartenmaterial und hatte außerdem Krach mit seiner Ehefrau.... ?

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0

Achso, also bilden 8 Mosfets-Transistoren eine Einheit, und die sind nach der 2er Potenz durchnummeriert und wenn auf den ersten 4 davor kein Signal kommt ist es eine Null und bleibt auch eine Null. Und dann eine 1 und weitere 3 Nulllen. Und damit für ihn eine 8. So richtig?

Bearbeitet von Ronos
Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0

Wie das nachher in der Hardware abgebildet wird, weiß ich nicht. Da kenne ich mich nicht mit aus. Im Hauptspeicher hast man aber 2^32 bzw. 2^64 Speicheradressen zur Vefügung. Jede Adresse steht für ein oder mehrere Bytes, je nach dem, wie viel Speicher die Software angefordert hat. In einem Beitrag lese ich, dass pro Bit ein Kondensator zur Verfügung steht. Hat der Kondensator Energie gespeichert, so ist es eine 1 und wenn nicht, ist es eine 0.

Bearbeitet von Whiz-zarD
Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0

Hallo du interessierter! ?

Die Weisheit mit Löffeln gefressen habe ich leider auch nicht, aber ich war immerhin schon mal an dem Punkt, dass ich einzelne Takte eines Mikroprozessors in Assembler programmiert habe, was ich mir damals auch autodidaktisch beigebracht habe. Nun absolviere ich eine Ausbildung und spüre, wie großartig viel leichter es ist, diese hochkomplexe Thematik systematisiert zu lernen. Das sollte nun einen Tipp für dich darstellen.

Aber zu deinen Fragen:

Da will ich ein wenig ausholen, um die Dinge im Zusammenhang erklärbar zu machen:

In "allerletzter Konsequenz", auf die "Elementareteile" runtergebrochen, sind Befehle (meiner Einschätzung nach zumindest, mach aber mal ein vorbehaltliches Sternchen dran, weil ich selbst noch keinen gesehen habe) Schaltkreise. Die von dir schon genannten Addierer sind Komplexe aus Transistoren, die in ein Prozessorsystem eingebettet sind. Als solches System zusammengestellt gehen sie mit auf die "Prozessorplatine" und können als "Befehle" von weiteren Schaltkreisen benutzt werden  Du kannst dir  übrigens selbst einen bauen, ich empfehle dir das tatsächlich zu tun. Mit meiner bescheidenen Lebenserfahrung weiß ich, dass es einen mitunter signifikanten Unterschied macht über Dinge zu sprechen oder sie zu erleben. Auf einer noch komplexeren, wenn auch immer noch recht elementaren Ebene hat hier mal jemand "einen Computer" nachgebaut:

Das soll dir zumindest zeigen, dass sehr viele Komponenten beteiligt sind um eine simple Addition durchzuführen und man das besser versteht, wenn man die einzelnen Teilsysteme eines Prozessors versteht, schau dir dazu mal folgende Architekturen an:

https://de.wikipedia.org/wiki/Von-Neumann-Architektur

https://de.wikipedia.org/wiki/Harvard-Architektur

Neben den Befehlen enthält ein Prozessor auch Register, wo schlicht Werte, also Folgen von Bits, gespeichert werden können. Auch diese elementaren Befehle, die man mit der Sprache Assembler (empfehle ich dir auch zu lernen) steuert, verknüpfen oft mehrere Operanden. Das läuft in mehreren Takten ab. Ich fange also mal ganz von vorne an und beziehe mich auf meine Erfahrungen mit dem Mikrocontroller/-prozessor ATTiny 2313:

Ein Mikrocontroller (µC) hat einen Programmspeicher, der ist ein paar kB groß. Dort wird ein Programm, das vorher in Assembler verfasst worden ist, reingeschrieben, man sagt auch "gebrannt" oder "geflasht". Assembler sagt, welche Befehle mit welchen Operanden ausgeführt werden sollen, wobei die Befehle schließlich die Adressen der oben schon genannten Schaltkreise sind. Damit man die in Adressen ansprechen kann, ist übrigens noch einiges vonnöten, was ich aber hier nicht erklären kann und will. Ist jetzt mal so. ?

Wenn danach der µC eingeschaltet wird, resettet er zunächst seinen Befehlszähler, sodass dieser auf 1 steht. Und nun wird der Programmcode Zeile für Zeile, d.h. dann Speicheradresse für Speicheradresse abgearbeitet, nach (fast) jedem Befehl wird der Befehlszähler um 1 erhöht. Die einzelnen Befehle beanspruchen unterschiedlich viele Prozessortakte. Aber immer wird zunächst der Befehl gemäß dem Inhalt der aktuellen Programmspeicheradresse von dort geladen, dann werden die Operanden herausgesucht, z.B. konstante Werte in Arbeitsregister geschrieben, z.B. die zwei Werte einer Addition, dann werden diese Beiden Werte z.B. verglichen.

Und hier kannst du nun mal tatsächlich mal einen einzelnen Transistor bei der Arbeit sehen. Werden die beiden Werte z.B. über eine AND-Verknüpfung verglichen, werden die jeweiligen Bits als Eingänge an die Basen jeweils eines Transistors gehangen und das Ausgangssignal dieser Schaltung zeigt dann an, ob beide Werte "true" sind, sprich: Ob Spannung anliegt.

Zum Verständnis können dir Schaltpläne von bool'schen Schaltungen helfen, ich traue dir googlen hier mal zu ?

Naja, in den nächsten Takten könnten dann z.B. noch Überlaufbits gesetzt werden. Danach wird der Befehlszähler erhöht und der nächste Befehl ausgeführt.

 

Ich hoffe, du verstehst nun, dass hinter deiner harmlosen Frage sehr komplexe Vorgänge stehen, die man nach und nach verstehen muss, um dann simple Effekte wie dass auf die Eingabe 1+1 das Ergebnis 2 auf dem Display eines Taschenrechners angezeigt wird, zu verstehen.

1 und 0 sind logische Denkarten und werden im Computer durch das Anliegen einer kontextabhängig bestimmten Spannung repräsentiert.  Bei einem Arduino auf einem 3,3V-Board ist diese bestimmte Spannung 2V. Wir Menschen nennen das dann HIGH oder "true" oder sagen einfach 1 dazu.

Und nun kann auch deine zweite Frage beantwortet werden, nämlich wie das mit den Nullen ist: Ein Programm kann eine Verzweigung davon abhängig machen, ob diese bestimmte Spannung anliegt oder nicht, sprich 1 oder 0 ist. 

 

Der Grund, weshalb simple Effekte hier oft schwer zu erklären sind, sind die vielen Ebenen der Absraktion. Es gibt ja Hoch- und Maschinensprachen, wobei auch die Hochsprachen unterschiedlich maschinennah sind. Oben hast du schon gesehen, dass Schaltkreis-Befehle von anderen Schaltkreisbefehlen benutzt werden können und auch, dass diese die Bauteile von Programmen darstellen. Nun kann solch ein Programm wiederum als Befehl verwendet werden, damit daraus ein sogenanntes "Instruction Set" entstehen kann, hier mal für die x86-Familie

https://en.wikipedia.org/wiki/X86_instruction_listings

Diese wiederum kann man nach demselben Prinzip immer weiter abstrahieren, sodass daraus dann die Programmiersprache C entsteht, daraus bastelt man dann Java und schon hat der Programmierer absolut keine Ahnung mehr von der Hardware. ?

 

Hoffe, das war nicht zu viel Overhead und ich hoffe, die Fragen treffend beantwortet zu haben. Wenn nicht, hak gerne nochmal nach. 

 

LG

Bearbeitet von L3v14than
Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0
vor 2 Stunden schrieb Ronos:

Nehmen wir mal an er bekomm die Zahl 8 zu Verarbeiten, dann beginnt diese mit drei Nullen (1000) wenn man von rechts nach links liest. Aber woher weiß der Computer, dass die ersten drei Zustände (0) zu der Zahl gehören?

Also relativ vereinfacht ist es ja so, dass immer Signale gesendet werden, solange der Computer läuft. Diese werden, wie schon gesagt in Einheiten gepackt. Der Prozessor hat eingespeichert, welche Kombinationen welchen Befehl ausführen. Bevor der Rechner überhaupt weiß, dass das Signal, was er bekommt eine Zahl ist, oder er addieren soll, bekommt er vorher erst einmal gesagt, dass dem so ist. Von daher weiß er dann auch, wann so eine Zahl anfängt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0

Erstmal vielen Dank an alle für die Eure Antworten!

@L3V14than

Dank schön für diese sehr ausführliche Darstellung. Die Links muss ich erstmal durcharbeiten. Grundsätzlich habe ich zwar schon etliche Inhalte davon recherchiert (Boolsche Ausdrücke, diverse Schaltungen wie RS-Flip-Fliop, Multiplexer, Addierer usw., verschiede Arten von Transistoren insbesondere Floating-Gate-Transistoren, auch wie der Aufbau eines Prozessors aussieht mit seinen Caches, Register, Stacks uxs. und wie über Assembler die verschiedene Befehle verarbeiten werden). Auch wenn natürlich nicht so detailliert wie dein Wissensstand aber zumindest ein paar Grundlagen.

Allerdings bei all diesen (Teil-)Systemen die überall beschrieben werden, habe ich leider immer noch kein "Gesamtverständnis" der Grundlegenden Erzeugung von den 1/0 und der verschiedenen Spannungen die benötigt werden. Mal ein simples Beispiel: in vielen Büchern/Videos usw wird erklärt das im Endeffekt der Transistor den Schalter für eine Glühbirne ersetzt und das nun das "An/Aus" geregelt wird über die anzuliegende Spannung. Aber wie regelt nun der Computer die Spannung? Und wie bekommt er das Signal dafür?

Ein anderes Beispiel: in vielen Videos die echte Schaltungen nachbauen (nur in grob und groß), wird ein Stecker für bestimmte Inputs umgesteckt (für High/Low-level-Spannung). Aber wie macht der PC das?

Interessant ist, dass ich mir zutraue zu verstehen, was der Computer grundsätzlich macht und wie Befehle verarbeitet werden, wenn er erstmal die Nullen und Einser hat aber wie werden diese elektrotechnisch dann tatsächlich erzeugt, dass habe ich leider immer noch nicht ganz verstanden. Vielleicht kannst du da nochmal drauf eingehen. Vielleicht denke ich da auch viel zu kompliziert oder steh aufn Schlauch (passiert schon mal ;)) Schon mal vielen Dank für die Geduld!

@Rienne

Und wie bekommt er genau gesagt, das es eine Zahl oder ein Buchstabe ist? Da muss ja vorher auch durch Schaltungen passieren oder nicht? Kannst du mir dahingehend ein Beispiel nennen?

Bearbeitet von Ronos
Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0
vor 36 Minuten schrieb Ronos:

Und wie bekommt er genau gesagt, das es eine Zahl oder ein Buchstabe ist? Da muss ja vorher auch durch Schaltungen passieren oder nicht? Kannst du mir dahingehend ein Beispiel nennen?

Schon mal was von ASCII gehört? Oder weißt du konkret, was ein Byte ist? Ein Buchstabe ist nichts weiter als eine Zahl, dass auf ein bestimmtes Zeichen gemappt wird. Ein Computer kann nämlich nur Zahlen verarbeiten und nichts anderes.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0

@Whiz-zard

Ja das weiß ich. Worauf ich hinaus wollte war die Thematik mit meiner Eingangsfrage (Nr. 2): Selbst wenn er die Nullen und Einsen genau unterscheiden kann was sie bedeuten, woher weiß er nach etlichen Nullen, das irgendwann eine Eins kommt. Also ich meine: ich weiß das ich ein Buchstabe gedrückt habe und das nach ASCII Code dieser oder jene Binärcode herauskommen muss, aber woher weiß der Computer, dass er evtl. etlichen Nullen vorher verarbeiten muss bevor er ein "Gesamtbild" erkennen kann. Deswegen die Frage nach "hat jedes Bit" ein Transistor zum ansteuern. Aber das muss ja so sein. Und von da aus komm ich zu meiner ersten Frage: wie steuert er die Spannung von diesen Transistoren um die jeweilige Null und Eins ausgeben zu können?

Bearbeitet von Ronos
Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0

Wie schon gesagt, er bekommt ja immer ein "Paket" an Einsen und/oder Nullen. Und zwar immer, ununterbrochen, solange Strom fließt. Er hat eine Liste an Befehlen eingespeichert. Darunter auch einen Befehl "tue nichts". Erst wenn ein Befehl kommt, der soetwas sagt wie: nächstes Paket ist ein Wert, liest er die Einsen und Nullen als Wert und nicht als Befehl. Das ist jetzt alles sehr vereinfacht, aber meiner Meinung nach versteht man es so recht gut. Und ob es sich bei dem errechneten Wert, den der Prozessor dann weitergibt um eine Zahl, einen Buchstaben, einen Ton, ein Pixel oder was auch immer handelt, weiß er selber gar nicht, sondern hängt vom "Empfänger" ab.

Bearbeitet von Rienne
Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0
vor 2 Stunden schrieb L3v14than:

Der Schlüssel ist, dass es an keiner Stelle konkrete Einsen und Nullen gibt, sondern nur anliegende Spannungen oder eben nicht, erst der Mensch nennt das dann 1 oder 0.  Da sind wir uns schon einig, oder? Und dass es nicht beliebige Spannungen sein dürfen, sondern dass jene Spannung, die benötigt wird, um einen Schalteffekt zu erreichen, vom konkreten Bauteil abhängt, auch. Oder?

Genau! Und jetzt wollte ich "einfach" nur ganz allgemein Wissen wie ein Computer diese benötigte Spannung aufbaut/ansetzt/ableitet.

Also versteh mich nicht falsch, ich möchte es nur ganz abstrakt und ganz allgemein wissen. Weil jedesmal wenn es um Transistoren geht, komm ich unverweigerlich zur "benötigten Gate-Spannung". Aber wie die allgemein generiert und geschalten wird, habe ich bis heute leider nicht so den schimmer.

Also einfach gesagt: die logische "Eins" wird doch erst generiert bei einem Transistor, wenn eine (genügend große) Spannung anliegt damit Strom fließen kann oder nicht? Und wie legt er diese Spannung an und woher bekommt er diese Informationen (ganz allgemein), dass er jetzt an Transistor XY eine Spannung anlegen muss. Eigentlich möchte ich bei der Frage überhaupt nicht so in die Details reingehen.

Stellt euch vor eure Mutter/Vater/Schwester fragt euch wie verarbeitet ein Computer Informationen, dann sagt ihr "über Nullen und Einsen". Und wie generiert er diese? "Über verschiedene Spannungszustände, Strom fließt, Strom fließt nicht". Und wie weiß der Computer wann er eine Spannung anlegen muss und wie macht er das? Da ist ja kein Männchen und dreht am Drehknopf und stellt mal eben 10V, 3,3V oder was auch immer ein.

[Eure Antwort hier] :D

Also alles was nach der Generierung von Nullen und Einsen (bzw. Spannung liegt an oder nicht] passiert, möchte ich an dieser Stelle hier, gar nicht so wissen, sondern eher: Wie generiert er, ganz allgemein, die benötigten Spannungszustände für "Strom fließt, Strom fließt nicht".

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0

Genau! Und jetzt wollte ich "einfach" nur ganz allgemein Wissen wie ein Computer diese benötigte Spannung aufbaut/ansetzt/ableitet.

Also versteh mich nicht falsch, ich möchte es nur ganz abstrakt und ganz allgemein wissen. Weil jedesmal wenn es um Transistoren geht, komm ich unverweigerlich zur "benötigten Gate-Spannung". Aber wie die allgemein generiert und geschalten wird, habe ich bis heute leider nicht so den schimmer.

Also einfach gesagt: die logische "Eins" wird doch erst generiert bei einem Transistor, wenn eine (genügend große) Spannung anliegt damit Strom fließen kann oder nicht? Und wie legt er diese Spannung an und woher bekommt er diese Informationen (ganz allgemein), dass er jetzt an Transistor XY eine Spannung anlegen muss. Eigentlich möchte ich bei der Frage überhaupt nicht so in die Details reingehen.

Stellt euch vor eure Mutter/Vater/Schwester fragt euch wie verarbeitet ein Computer Informationen, dann sagt ihr "über Nullen und Einsen". Und wie generiert er diese? "Über verschiedene Spannungszustände, Strom fließt, Strom fließt nicht". Und wie weiß der Computer wann er eine Spannung anlegen muss und wie macht er das? Da ist ja kein Männchen und dreht am Drehknopf und stellt mal eben 10V, 3,3V oder was auch immer ein.

[Eure Antwort hier] :D

Zitat

Eine Schaltung steuert die nächste. Jede logisch agierende Komponente im Computer hat Ein- und Ausgänge und ein Ausgang ist der Eingang der nächsten Komponente. Angestoßen wird diese lange Abfolge mit dem Einschalten des Systems, das ist die erste gesteuerte Schaltung. Dadurch wird der Schwingkreis der CPU angestoßen, der immer neue Befehle aus seinem Befehlsspeicher holt. Der erste Befehl im Befehlsspeicher bewirkt den ersten Ausgang an der CPU. Je nach dem an welche Eingangs-Pins der nächsten Komponente Spannung angelegt wird, haben entsprechende Ausgangspins auch Spannung oder nicht. Gut isoliert zu beobachten ist das bei Logic-Gates. Diese Ausgänge wiederum sind dann Eingänge für das nächste Schaltkreissystem und so steuert dann eine Schaltung die nächste. Auf höchster Ebene bleibt das Prinzip erhalten: Der Mensch gibt z.B. via Tastatur Signale ein, die verarbeitet werden und einen Ausgang erzeugen. Diesen Ausgang nutzt der Mensch wiederum und erzeugt damit einen weiteren Eingang.

Also alles was nach der Generierung von Nullen und Einsen (bzw. Spannung liegt an oder nicht] passiert, möchte ich an dieser Stelle hier, gar nicht so wissen, sondern eher: Wie generiert er, ganz allgemein, die benötigten Spannungszustände für "Strom fließt, Strom fließt nicht".

Bearbeitet von L3v14than
Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0
vor einer Stunde schrieb Rienne:

Verabschiede dich mal von der Vorstellung von Nullen und Einsen bzw. von Strom fließt bzw. Strom fließt nicht. Es liegt IMMER Spannung an. Daher spricht man in der Elektrotechnik auch von LOW und HIGH.

Klares "Jein". Es ist praktisch, das LOW nicht auf 0V zu legen, weil dann dann ein fehlendes Signal mit 0V erkannt werden kann, aber es ist nicht zwingend nötig. 

Du hast insofern Recht, als dass man nicht nur von "Spannung liegt an oder nicht" sprechen sollte, sondern von definierten Spannungspegeln, die als LOW oder HIGH definiert werden. In der Signalübertragung finden sich dann ja auch noch weitere Spannungspegel um z.B. die Datenrate zu erhöhen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0
vor 20 Stunden schrieb Ronos:

Also versteh mich nicht falsch, ich möchte es nur ganz abstrakt und ganz allgemein wissen. Weil jedesmal wenn es um Transistoren geht, komm ich unverweigerlich zur "benötigten Gate-Spannung". Aber wie die allgemein generiert und geschalten wird, habe ich bis heute leider nicht so den schimmer.

Wenn man einen Mikroprozessor einschaltet werden intern bestimmte "Startschaltungen" z.B. über Pull-Up Widerstände erreicht.
 

Bei Rechnern mit Lochkarten startete z.b. die Mechanik und das Einlesen der ersten Karte begann.  ( https://de.wikipedia.org/wiki/Initial_Program_Load )

Prozessoren verhalten sich heute immer noch so und fangen z.B. beim Start immer an einer bestimmten Adresse an,  Instruktionen auszuführen (https://en.wikipedia.org/wiki/Reset_vector)  vgl. auch der schon erwähnte https://de.wikipedia.org/wiki/Von-Neumann-Zyklus

 

vor 20 Stunden schrieb Ronos:

Und wie generiert er diese? "Über verschiedene Spannungszustände, Strom fließt, Strom fließt nicht". Und wie weiß der Computer wann er eine Spannung anlegen muss und wie macht er das? Da ist ja kein Männchen und dreht am Drehknopf und stellt mal eben 10V, 3,3V oder was auch immer ein.

Logische Zustände werden über Spannungen abgebildet (Logikpegel, siehe z.B. https://www.elektronik-kompendium.de/sites/dig/0205171.htm)   - der Stromfluss ist im übrigen ein unerwünschter aber nicht vermeidbarer Nebeneffekt (Ein Gate muss z.B. wieder Entladen werden)

vor 14 Stunden schrieb L3v14than:

Es ist praktisch, das LOW nicht auf 0V zu legen,

Man definiert üblicherweise Korridore (z.B. alles unter 2V = Low, alles über 5V = High) - das kann wie bei https://de.wikipedia.org/wiki/RS-232 auch mal invetiert (Bei RS-232: U zwischen −3 V und −15 V = logische Eins / zwischen +3 V und +15 V = logische Null) sein..

 

Ich kann auch noch die Seite http://www.megaprocessor.com/index.html empfehlen - hier hat ein Hobbyist einen 16 Bit Prozessor disket aus einzelnen Transistoren (keine integrierten TTL-Bausteine!) aufgebaut.

In der YouTube Playlist werden evtl. noch einige Fragen beantwortet:

 

 

Bearbeitet von RipperFox
Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0
vor 20 Stunden schrieb L3v14than:

Also einfach gesagt: die logische "Eins" wird doch erst generiert bei einem Transistor, wenn eine (genügend große) Spannung anliegt damit Strom fließen kann oder nicht? Und wie legt er diese Spannung an und woher bekommt er diese Informationen (ganz allgemein), dass er jetzt an Transistor XY eine Spannung anlegen muss. Eigentlich möchte ich bei der Frage überhaupt nicht so in die Details reingehen.

Ein Spannung liegt immer an. Allein aus dem Gesetz U=I*R kann die Spannung nicht 0 (Null) sein. Wäre sie 0, dann fließt nichts.

Ich bin zulange aus dem Studium Erstsemester (tech. Informatik) raus, um es noch richtig beantworten zu können. Wann eine niedrige (0) oder hohe (1) Spannung anliegen soll, das wird durch (Logik)gatter geregelt bzw. ergibt sich ganz einfach aus dem Schaltplan. Ein (Logik)gatter besteht nunmal aus Transistoren. Und mehrere Gatter bilden ein Mikroprozessor.

 

Zitat

Stellt euch vor eure Mutter/Vater/Schwester fragt euch wie verarbeitet ein Computer Informationen, dann sagt ihr "über Nullen und Einsen". Und wie generiert er diese? "Über verschiedene Spannungszustände, Strom fließt, Strom fließt nicht". Und wie weiß der Computer wann er eine Spannung anlegen muss und wie macht er das?

Wie weiß eine Ampel an der Straßenkreuzung, welche Ampel grün haben darf und welche rot? Ganz einfach ausgedrückt: Anhand von Schaltplänen. Diese stellen in der Regel dar, wie sich welche Ampel wie zu verhalten hat.

Das ist jetzt alles sehr banal ausgedrückt, aber nur so lassen sich (logische) Ausdrücke darstellen.

Bearbeitet von ErB777
Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0

Okay zuerst dachte ich, ich sehe etwas klarer aber dennoch muss ich eure Geduld leider nochmal strapazieren:

vor 23 Stunden schrieb Rienne:

Verabschiede dich mal von der Vorstellung von Nullen und Einsen bzw. von Strom fließt bzw. Strom fließt nicht. Es liegt IMMER Spannung an. Daher spricht man in der Elektrotechnik auch von LOW und HIGH.

Also versteht mich nicht wieder falsch, wenn ich sage "keine Spannung" meine ich eigentlich "so wenig Spannung, das der Transistor seine Funktion als Schalter nicht mehr wahrnehmen kann und kein Strom mehr leitet". Und es sollen doch Elektronen zwischen Source und Drain wandern oder nicht? Und das meine ich eigentlich mit Strom fließt und Strom fließt nicht. Habe ich das jetzt auch immer falsch gedacht?

Aber dennoch gibt es einige sehr interessante Links die ihr gepostet habt und da arbeite ich mich jetzt auch durch. Gute Tipps waren auf jedenfall der Hinweis mit dem Schwingkreis, den Von-Neumann-Zyklus, und dem Pull-Up-Widerstand, den ich von der Not-Schaltung her kenne. Aber seid mir nicht böse wenn ich mal wieder eure Geduld herausfordere, wenn ich am Ende die genaue (allgemeine) Verarbeitung und Generierung von Eingangsbefehlen auf elektrotechnischer Ebene nicht so ganz unter einem Schirm bekomme :D

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0

@Ronos

Mein Vorschlag, wenn du dich wenn du dich mit Grundlagen der Computertechnik auf Hardwareebene beschäftigen möchtest ist, dass du erst einmal mit ein paar Logik-Chips auf einem Steckbrett herumexperimentierst. Diese gibt es für mehr oder weniger Geld zu kaufen. Hierfür reichen erst einmal ein paar grundlegende Chips mit AND, OR, XOR usw. aus., ggf. noch ein paar LEDs und/oder LCD-Display und Schalter/Taster. Damit lassen sich schon ein paar Sachen wie Ampeln, Zähler, simpler Rechner usw. entwickeln. Dann hast du schonmal verstanden, wie Digitaltechnik funktioniert, also Ein- und Ausgabe. Anschließend kannst du dich mit programmierbaren Chips befassen, die mit Assembler programmiert werden. Dieser Assembler-Code ist quasi nur eine Abbildung von Einsen und Nullen mit denen du Daten ein- bzw. ausliest und Befehle anhand des Befehlssatzes ausführst. Du schiebst quasi Bits in die Register, führst Befehle aus und verarbeitest das Ergebnis weiter. Das ganze ist dann also ziemlich "maschinennah". Dann wirst du sehen, wie ein programmierbarer Chip funktioniert und was der Vorteil dafür ist, Software zu verwenden statt nur Hardware. Der nächste Schritt wäre dann, dich mit der Von-Neumann-Architektur und Bussystemen auseinander zu setzen.

Am 12.1.2019 um 21:26 schrieb Ronos:

Also wenn ich eine Operation eingebe (z. B. 54+76), dann wandelt der Computer diese Zahlen in Nullen und Einsen um und diese werden dann einen Voll- und Halbaddierer übergeben (grob gesagt). Vorher muss der PC ja die Einsen und Nullen ja generieren und das geschieht über die Steuerspannung am Gate des MOSFETs? Und wenn ja, wie läuft das ab?

So wie von mir geschrieben: Du schiebst die 54 in ein Register des Chips der addieren kann, die 76 in ein anderes und führst dann den Add-Befehl aus, dem du noch mit angibst, welche Register verwendet werden sollen und wohin das Ergebnis geschoben werden soll. Woher die 54 und die 76 kommen, ist ja egal. Diese können 2 mal 8 Kippschalter sein, welche die Bits abbilden und 8 LEDs um das Ergebnis anzuzeigen. Dass das ganze dann bei einem PC mit Tastatur und Monitor etwas komplizierter ist, ist auch klar. Im Grunde schließt du mit einem Tastendruck auch nur einen Schaltkreis, der Chip auf der Tastatur erkennt welche Taste gedrückt wurde (je nach Eingang eine andere Reihenfolge an Bits), wandelt das in ein Signal für den USB-Bus um, leitet das an den USB-Controller auf deinem Mainboard weiter und der gibt es einfach gesagt wiederum dem Betriebssystem, dass eine Taste gedrückt wurde. Dieses macht dann etwas damit, z.B. einem Textfeld einen Buchstaben hinzufügen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Diese Frage beantworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...