Was genau versteht man unter einem Takt?

Pfranzy

Kabelverknoter(in)
Guten Abend Leute. Mir geht seit einer Weile die Frage nicht mehr aus meinen Kopf, was genau ein Takt ist?
Weil wenn die CPU z.B etwas addieren o.ä will, dann müssen ja die Transistoren die für die Addition nötig ist, erstmal umgeschalten werden. Und meine Frage ist jetzt, : werden die Transistoren erst in einen (bzw. "wegen" des Taktes)Takt umgeschalten oder werden die Transistoren schon vor den Takt umgeschalten , sodass der Takt dann die eigentliche Berechnung ist?
Ich hoffe , dass ihr versteht was ich meine:D.
Und es reichen mir kleine Antworten. Ich will nicht zu tief ins Detail;).
 
Hallo!

Ich bin da auch nicht so der Experte aber vielleicht hilft ja dieses hier weiter:

Meistens ist es ein periodisches Signal, das durch seine Frequenz (Taktfrequenz oder Taktrate genannt) bzw. deren Kehrwert (Periodendauer) charakterisiert ist. Es wechselt dabei zwischen zwei Logikpegeln, in nebenstehender Skizze mit H für High und L für Low bezeichnet. Prominentes Beispiel eines Taktsignals ist der Systemtakt (system clock) in einem Computer, der die Arbeitsgeschwindigkeit vieler Komponenten, insbesondere des Mikroprozessors, bestimmt. Ein Beispiel für ein aperiodisches Taktsignal ist die getaktete Datenübertragung, wie beispielsweise bei den Schnittstellen SPI oder I²C.
Taktsignal
 
Verabschiede dich davon, dass Taktrate direkt mit konkreten Berechnungen zu tun hat.
Die Taktrate ist zunächst mal nur ein Signal zur zeitlichen Koordination von Schaltkreisen.

Beispiel. Wenn du zwei Zahlen addieren möchtest in einem Chip benötigst du eine Anordnung von Transistoren, die (einfach dadurch wie sie verschaltet sind) eine Addition ausführen, das nennt sich "add-Gatter". Das Gatter hat zwei Eingänge und einen Ausgang. Nehmen wir vereinfacht an du addiert nur einzelne Bits, also 0 und 1. Immer dann, wenn an den Eingängen A und B eine 1 und eine 1 anliegt kommt beim Ausgang eine 1 raus weil die Verschaltung so ist. Bei Eingang 0 und 0 oder 1 und 0 oder 0 und 1 kommt immer eine 0 raus (so wird binär addiert, das musste mir mal einfach so glauben^^).

Diese Geschichte erlaubt es jetzt natürlich auch große Zahlen die aus mehr als einem Bit bestehen miteinander zu verrechnen, indem man die Bits nacheinander/hintereinander an das Gatter anlegt und das jeweilige Ergebnis wegspeichert.

Die Taktrate ist die Geschwindigkeit mit der man das tun kann, sprich wie schnell hintereinander man bverschiedene Bits an die Gattereingänge anlegen kann und das Ausgabebit abspeichern kann (wenn man das zu schnell macht kommt das Gatter nicht mehr hinterher und es kommt Mist raus - das ist was bei zu hiohem Takt zu Instabilität führt). Moderne CPUs können sowas Milliardenfach in einer Sekunde - das sind die bekannten Gigahertz.

Ich hoffe das ist einigermaßen verständlich^^
 
Beispiel. Wenn du zwei Zahlen addieren möchtest in einem Chip benötigst du eine Anordnung von Transistoren, die (einfach dadurch wie sie verschaltet sind) eine Addition ausführen, das nennt sich "add-Gatter". Das Gatter hat zwei Eingänge und einen Ausgang. Nehmen wir vereinfacht an du addiert nur einzelne Bits, also 0 und 1. Immer dann, wenn an den Eingängen A und B eine 1 und eine 1 anliegt kommt beim Ausgang eine 1 raus weil die Verschaltung so ist. Bei Eingang 0 und 0 oder 1 und 0 oder 0 und 1 kommt immer eine 0 raus (so wird binär addiert, das musste mir mal einfach so glauben^^).
0 und 1 müßte ja auch für "Low" und "High" stehen bzw aus und an.
 
Zuletzt bearbeitet:
Beispiel. Wenn du zwei Zahlen addieren möchtest in einem Chip benötigst du eine Anordnung von Transistoren, die (einfach dadurch wie sie verschaltet sind) eine Addition ausführen, das nennt sich "add-Gatter". Das Gatter hat zwei Eingänge und einen Ausgang. Nehmen wir vereinfacht an du addiert nur einzelne Bits, also 0 und 1. Immer dann, wenn an den Eingängen A und B eine 1 und eine 1 anliegt kommt beim Ausgang eine 1 raus weil die Verschaltung so ist. Bei Eingang 0 und 0 oder 1 und 0 oder 0 und 1 kommt immer eine 0 raus (so wird binär addiert, das musste mir mal einfach so glauben^^).

Das ist aber nur die halbe Wahrheit.
In der Wahrheitstabelle steht bei Eingang X= 1 und Eingang Y = 1 als Ergebnis: 0 Übertrag 1.
Das heißt, daß die sich ergebende Signal-1 um eine Stelle verschoben wird,
da 1+1 = (2 hoch 0)+(2 hoch 0) = 2 hoch 1 = 2 ist.
 
@RyzA Klar - ist hier aber nicht der Punkt.

In der Realität sieht das beispielsweise so aus:

Ein Block mit irre vielen und komplex angeordneten Transistoren ist so verschaltet, dass er zwei 16bit-Integerwerte miteinander addieren kann. Das bedeutet er hat 2x16bit Eingang und 1x 16bit Ausgang.

Wenn man beispielsweise 10234+33655 rechnen will kommt die Bitreihenfolge 0010011111111010 an den Eingang 1 und die Bitreihenfolge 1000001101110111 an den Eingang zwei.

Einen winzigen Moment später wird am Ausgang die Bitreihenfolge 1010101101110001 (= dezimal 43889) an den Ausgangsbits des Blocks anliegen.

Das kann man jetzt sehr schnell hintereinander mit neuen Zahlen machen. Würde man es 100x pro Sekunde machen dann liefe der Transistorblock mit 100Hz - das wäre die Taktrate. Da die Zeit die der Block braucht von "Eingangsspannungen liegen an" bis "Ausgangsspannungen werden ausgegeben" nicht null ist kann mans halt nicht beliebig schnell machen.

@wuselsurfer
Ja, du hast Recht - ich wollte es aber so simpel wie möglich halten.

"Übertragsbeispiel": Wenn ich oben größere Zahlen addieren will, beispielsweise 40000+50000 dann wird das Ergebnis länger als 16 bit sein (90.000 = 10101111110010000). Das ist der Übertrag. In dem konkreten Fall wäre das sogar ganz blöd weil 17 bit rauskommen, die beschriebene Einheit aber nur 16bittig ist - das wäre wenn mans einfach so machen würde ein Falsches Rechenergebnis weil das 17. bit nicht dargestellt werden kann (und ein BufferOverflow im Cache dahinter und bestenfalls ne Fehlermeldung für den Anwender, schlechterenfalls ein Bluescreen und schlechtestenfalls ein gezielter absichtlicher Malwareangriff um das überzählige Bit in einen Speicherbereich zu schreiben wo man sonst nicht hin käme...)^^
 
Verabschiede dich davon, dass Taktrate direkt mit konkreten Berechnungen zu tun hat.
Die Taktrate ist zunächst mal nur ein Signal zur zeitlichen Koordination von Schaltkreisen.

Beispiel. Wenn du zwei Zahlen addieren möchtest in einem Chip benötigst du eine Anordnung von Transistoren, die (einfach dadurch wie sie verschaltet sind) eine Addition ausführen, das nennt sich "add-Gatter". Das Gatter hat zwei Eingänge und einen Ausgang. Nehmen wir vereinfacht an du addiert nur einzelne Bits, also 0 und 1. Immer dann, wenn an den Eingängen A und B eine 1 und eine 1 anliegt kommt beim Ausgang eine 1 raus weil die Verschaltung so ist. Bei Eingang 0 und 0 oder 1 und 0 oder 0 und 1 kommt immer eine 0 raus (so wird binär addiert, das musste mir mal einfach so glauben^^).

Diese Geschichte erlaubt es jetzt natürlich auch große Zahlen die aus mehr als einem Bit bestehen miteinander zu verrechnen, indem man die Bits nacheinander/hintereinander an das Gatter anlegt und das jeweilige Ergebnis wegspeichert.

Die Taktrate ist die Geschwindigkeit mit der man das tun kann, sprich wie schnell hintereinander man bverschiedene Bits an die Gattereingänge anlegen kann und das Ausgabebit abspeichern kann (wenn man das zu schnell macht kommt das Gatter nicht mehr hinterher und es kommt Mist raus - das ist was bei zu hiohem Takt zu Instabilität führt). Moderne CPUs können sowas Milliardenfach in einer Sekunde - das sind die bekannten Gigahertz.

Ich hoffe das ist einigermaßen verständlich^^
Also kann ich das jetzt so versehen, dass der Takt die eigentliche Ansteuerung des Gatters(Gatter ist ja nicht anderes als mehre Transistoren die verstellt werden können(mit verstellt meine ich entweder auf ein Transistor liegt Strom an (1) oder kein Strom (0))) ist und es je nach Stellung des Gatters(z.B ein und-Gatter, wenn an beidem Eingängen Strom (der Takt)anliegt, wird der Strom(Takt) durchgelassen.) wird der Strom(Takt) durchgelassen und dadurch , das jetzt an z.B Ausagang xy Strom( bzw. ein Signal oder der Takt) anliegt wird dann das Ergebniss verarbeitet(irgendwo zwichengespeichert ö.ä).
Tut mir leid wegen den Ganzen Klammern und der komischen Schreibweise. Ich will nur sicher gehen, dass man hier nicht falsch versteht. Und danke für deine ANtwort
 
@Pfranzy Der Takt bestimmt die Geschwindigkeit, wie oft verschiedene Spannungszustände pro Sekunde an einem Gatter anliegen. ;-)
Bei 100 MHz würde das Gatter [unter Vollast...] 100 Millionen mal pro Sekunde eine Addition ausführen.
 
@wuselsurfer
Ja, du hast Recht - ich wollte es aber so simpel wie möglich halten.

"Übertragsbeispiel": Wenn ich oben größere Zahlen addieren will, beispielsweise 40000+50000 dann wird das Ergebnis länger als 16 bit sein (90.000 = 10101111110010000). Das ist der Übertrag.
Nein.
Der Übertrag verschiebt die sich ergebende 1 um eine Stelle nach Rechts, wenn links 2 hoch null steht.
Und er wirkt bei jeder Stelle.

Also kann ich das jetzt so versehen, dass der Takt die eigentliche Ansteuerung des Gatters(Gatter ist ja nicht anderes als mehre Transistoren die verstellt werden können(mit verstellt meine ich entweder auf ein Transistor liegt Strom an (1) oder kein Strom (0))) ist und es je nach Stellung des Gatters(z.B ein und-Gatter, wenn an beidem Eingängen Strom (der Takt)anliegt, wird der Strom(Takt) durchgelassen.) wird der Strom(Takt) durchgelassen und dadurch , das jetzt an z.B Ausagang xy Strom( bzw. ein Signal oder der Takt) anliegt wird dann das Ergebniss verarbeitet(irgendwo zwichengespeichert ö.ä).
Wir müssen das anders aufziehen.

Der Takt ist eigentlich ein Rechtecksignal mit steigender und fallender Flanke:
https://de.wikipedia.org/wiki/Rechteckschwingung - die grüne Kurve.

Die wird aus einem Sinussignal (rote Kurve) mit nachgeschalteter Elektronik erzeugt.
Sie hat meist die gleiche Frequenz, wie das Ausgangssignal oder Teile davon.

Ein Rechner (Adder) besteht aus den Signalleitungen und der Taktleitung.
An den Signalleitungen liegen die zu addierenden Zahlen im Binärformat.

Mit dem ankommenden Taktsignal werden sie bearbeitet und das Ergebnis steht am Ausgang.

Bei der nächsten schaltenden Rechteckflanke (meist 0-1) werden die nächsten Eingangssignale bearbeitet und stehen am Ausgang als Ergebnis.
 
Ein Rechner (Adder) besteht aus den Signalleitungen und der Taktleitung.
An den Signalleitungen liegen die zu addierenden Zahlen im Binärformat.

Mit dem ankommenden Taktsignal werden sie bearbeitet und das Ergebnis steht am Ausgang.

Bei der nächsten schaltenden Rechteckflanke (meist 0-1) werden die nächsten Eingangssignale bearbeitet und stehen am Ausgang als Ergebnis.
:daumen:

Das ist die korrekte Detailbeschreibung für das was ich ganz oben als "Die Taktrate ist zunächst mal nur ein Signal zur zeitlichen Koordination von Schaltkreisen." beschrieben habe.

Und wie schon mehrfach erwähnt ergibt sich genau aus dem Verhalten, dass die Geschwindigkeit wie schnell das Taktsignal "ankommt" eben bestimmt, wie viele Additionen der Adder pro Zeiteinheit macht.


Nur mal nebenher gefragt - Pfranzy, haben wir dich noch an Bord bzw. verstehst du (jetzt besser) von was wir da reden oder ist der Bahnhof nur schlimmer geworden?^^
 
@Pfranzy Der Takt bestimmt die Geschwindigkeit, wie oft verschiedene Spannungszustände pro Sekunde an einem Gatter anliegen. ;-)
Bei 100 MHz würde das Gatter [unter Vollast...] 100 Millionen mal pro Sekunde eine Addition ausführen.
also ist die Taktrate einfach nur die Zahl, die angibt ,wie oft an irgendeinem Gatter an irgendeinem Eingang die Spannung ändert (keine Spannung =0 Spannung=1)
 
Fast. Nicht bei jedem Taktschritt muss irgendwas geändert/gerechnet werden. Wenn am Adder keine Zahlen am Eingang anliegen und der Taktschritt kommt macht der Adder eben nichts. Wie oft wirklich was berechnet wird pro Anzahl an Taktschritten ist (sehr vereinfacht gesagt) die Auslastung eines Chips.
Nur die Taktleitung ändert bei einem 1 GHz-Chip eine Milliarde Mal pro Sekunde die Spannung, die Signalleitungen müssen das nicht zwingend.
 
Ein Rechner (Adder) besteht aus den Signalleitungen und der Taktleitung.
Nur mal nebenher gefragt - Pfranzy, haben wir dich noch an Bord bzw. verstehst du (jetzt besser) von was wir da reden oder ist der Bahnhof nur schlimmer geworden?^^

ich verstehe jetzt nur nicht so richtig , was der Unterschied zwichen der Signalleitung und der Taktleitung ist. Ich dachte , dass das so in der Art das gleiche ist. Z.B ein und-Gatter. Der hat doch 2 Eingänge und ein Ausgang. Wenn an beiden Eingängen ein Signal anliegt, liegt am Ausgang ja dann auch ein Signal. Und ich dachte , dass der Takt ja das eigentliche Signal ist, der dann immer an den Eingängen anliegt? Das der Takt nicht immer an jeden Gatter anliegt, ist mit klar. :)
 
Naja, das Problem ist dass man so sehr vereinfachen will dass das Prinzip verstanden wird aber das zu stark vereinfacht sein kann wenns tiefer reingehen soll.
Die oben beschriebenen Gatter sind nur die Logikschaltungen - also das da: https://de.wikipedia.org/wiki/Logikgatter

Diese miteinander zu Funktionseinheiten zu vernetzen und per Takt(leitung) zu synchronisieren ist dann schon etwas tiefere Materie. Wie gesagt, der Takt hat keinerlei Informationsgehalt im Sinne von Berechnungen (die CPU rechnet ja nicht auf einmal anders wenn du den Takt änderst, nur eben schneller oder langsamer), das ist nur ein Signal, das (moderne dynamische Taktfrequenzen mal außen vor gelassen) stupide in einer bestimmten Frequenz zwischen 0 und 1 hin und her wechselt und bei jedem Wechsel von 0 auf 1 eine Logikoperation an Gatter(n) auslöst die gerade von Signalen (=Informationen) bespielt werden.
 
Naja, das Problem ist dass man so sehr vereinfachen will dass das Prinzip verstanden wird aber das zu stark vereinfacht sein kann wenns tiefer reingehen soll.
Die oben beschriebenen Gatter sind nur die Logikschaltungen - also das da: https://de.wikipedia.org/wiki/Logikgatter

Diese miteinander zu Funktionseinheiten zu vernetzen und per Takt(leitung) zu synchronisieren ist dann schon etwas tiefere Materie. Wie gesagt, der Takt hat keinerlei Informationsgehalt im Sinne von Berechnungen (die CPU rechnet ja nicht auf einmal anders wenn du den Takt änderst, nur eben schneller oder langsamer), das ist nur ein Signal, das (moderne dynamische Taktfrequenzen mal außen vor gelassen) stupide in einer bestimmten Frequenz zwischen 0 und 1 hin und her wechselt und bei jedem Wechsel von 0 auf 1 eine Logikoperation an Gatter(n) auslöst die gerade von Signalen (=Informationen) bespielt werden.
also kann man zum Fazit sagen , dass die Taktrate eifnach nur die Änderung der Spannung/Signale an den Eingängen der Gatter beschreibt (und je nach Aufgabe werden dann dafür andere Gatter verwendet aber das ist ein anderes Thema)?
 
Einen Takt braucht es bei Schaltwerken, die sich Zustände merken können. Ein Addierer braucht dies nicht, der bekommt 2 Zahlen als Eingang und hat einen Ausgang für das Ergebnis. Ein Zähler (zählt z.B. einfach hoch) muss sich aber den Zustand merken (welche Zahl war vorher da) und daher werden solche Kreise taktgesteuert. Es gibt auch Schaltwerke ohne Takt, aber fast alles, was wir heute haben, ist taktgesteuert.
 
Ja, wurde ja schon alles erklärt oben^^

Ein Gatter kann immer nur dann schalten wenn das Taktsignal sich von 0 auf 1 ändert. Es MUSS aber nicht zwingend immer schalten weil es auch Leerzyklen gibt. Deswegen ist die anliegende Taktrate die maximale Geschwindigkeit in der ein Gatter Signaleingänge abarbeiten kann.
 
Zurück