[Hardware] Speichereinheiten – Was ist ein Flipflop?

Da ich mich mich derzeit aufgrund der Uni selbst viel mit der Hardware auseinandersetzen und quasi “unter die Haube” des Computers schauen muss, wollte ich euch heute mehr dazu berichten, diesmal soll es um eine der Speichereinheiten gehen, konkret: Flipflop (s).

Wie speichert der Computer überhaupt Daten im RAM, in den CPU Caches, Registern usw.?

Dieser Frage wollen wir heute auf den Grund gehen.

RS-Flipflop

RS-Flipflop

 

Was sind Flipflops?

Ein Flipflop ist ein elektronisches Bauelement, welches 2 Zustände einnehmen kann – 0 und 1. Somit kann man mit 1 Flipflop genau 1 Bit speichern.

Dieser Zustand (0 oder 1) wird solange gespeichert, solange noch Strom am Flipflop anliegt. Wenn ihr also den Computer ausschaltet, sind diese Daten weg (keine persistente Datenspeicherung wie auf der Festplatte oder anderen Speichermedien). Man kann Flipflops beliebig erweitern, so bekommt man mit 8 Flipflops eben einen 8 Bit großen Speicher.

 

Wie funktionieren Flipflops?

Es gibt sehr viele verschiedene Flipflop-Typen, die teilweise unterschiedlich funktionieren. Die bekanntesten Typen sind die RS-Flipflops & JK-Flipflops (das “Universal Flipflop”), weshalb ich hier auch nur auf diese beiden Flipflop Typen eingehen werde.

 

RS-Flipflop

Ein Reset-Set-Flipflop (kurz RS-Flipflop) wird auch Latch genannt und zählt zu den einfachsten Flipflops.

RS-Flipflop

RS-Flipflop

Es gibt 2 Arten von RS-Flipflops, asynchrone RS-Flipflops (wie in der Abbildung links) und taktpegelgesteuerte RS-Flipflops.

Letztere von beiden unterscheiden sich nur dahingehend, dass sie die Zustände nur ändern, wenn der Takt (ein zusätzlicher Eingang C) gerade anliegt (also dieser Eingang Strom besitzt). Abgesehen von diesem Unterschied sind sie identisch.

 

Neben diesen beiden Eingängen (links neben dem “Kasten”, also R & S) gibt es außerdem noch die Versorgungsspannung, welche hier nicht mit eingezeichnet ist.

Relevant ist lediglich der S-Eingang (“Setzen”) und der R-Eingang (“Rücksetzen”). Außerdem gibt es noch 1 Q-Ausgang, dieser gibt entweder einen Strom (1 – ein) aus, wenn das gespeicherte Bit 1 beträgt oder keinen Strom (o – aus), wenn das gespeicherte Bit 0 lautet. Dieses Q mit dem Strich drüber ist nochmal genau das selbe wie Q, nur negiert (aus 1 wird 0, aus 0 wird 1).

 

Wenn wir am S-Eingang einen Strom anlegen (S=1), aber am R Eingang nicht (R=0), speichert wir eine “1” im Flipflop. Sobald wir das ganze einmal rumdrehen und am S-Eingang keinen Strom anlegen (S=0), dafür aber am R-Eingang (R=1), “speichern” wir eine 0. Wenn beide Eingänge 0 sind (also kein Strom anliegt), behält das Flipflop den alten Zustand und ändert nichts. Außerdem ist es beim RS-Flipflop “verboten” an beiden Eingängen gleichzeitig Strom anzulegen (R=1 & S=1). Dabei geht zwar das Bauteil nicht kaputt, aber dieser Zustand ist “undefiniert”, d.h. man kann nicht garantieren, was das Bauteil dann tut.

 

Hier nochmal die Zustände in einer Tabelle zusammengefasst:

S Eingang (setzen) R Eingang (rücksetzen) Q Ausgang Q Strich Ausgang (Q negiert) Zustand
0 0 X (gespeicherter Wert) X negiert Speichern
1 0 1 0 Setzen
0 1 0 1 Rücksetzen (Reset)
1 1 0 (undefiniert) 0 (undefiniert) nicht erlaubter Zustand

 

JK-Flipflop

Das JK-Flipflop funktioniert ähnlich wie das RS-Flipflop, nur heißen hier die Eingänge “Jump” (J, setzen) und “Kill” (K, Rücksetzen)

Beim JK-Flipflop gibt es allerdings einen entscheidenden Unterschied:

Der letzte Zustand (J=1 & K=1) ist diesmal definiert und steht für “toggle“, also Wechseln. D.h. aus 1 wird 0 und aus 0 wird 1. Wenn also vorher eine 1 gespeichert wurde, wird der Zustand beim Toogle 0, wenn vorher eine 0 gespeichert war, ist der neue Zustand 1.

JKFlipflop

JK-Flipflop

 

Außerdem gibt es einen C-Eingang, der sog. Takt-Eingang (das C steht für “Clock”).

An diesem muss ein Rechtecksignal anliegen und immer wenn dieses die 1 repräsentiert (“Strom 1”) wird der Zustand übernommen, ansonsten passiert gar nichts und der alte Zustand wird beibehalten (die Änderungen werden immer dann übernommen, wenn C=1).

Rechtecksignal

Rechtecksignal

 

 

 

 

 

 

 

Wer noch tiefer unter die Haube blicken will und solch einen quasi selbst aus Transistoren & Co. zusammenbauen will, den verweise ich auf diese Seite.

 

Wo kommen diese Flipflops zur Anwendung?

Gleich vorweg: Flipflops befinden sich normalerweise nicht im RAM.

Es gibt zwar statischen & dynamischen RAM, wobei eine Speicherzelle beim der statischen tatsächlich aus Flipflops besteht, aber der dynamische RAM, der heutzutage öfters zum Einsatz kommt, meist nur aus einem Kondensator und einem Transistor besteht.

Flipflops findet man am ehesten in Registern (Speichereinheiten innerhalb der CPU, bei 64 Bit Computern 64Bit groß) wieder. Außerdem kommen sie oft auch in Uhren oder Zählerschaltungen zum Einsatz oder werden mit anderen Bauelementen kombiniert.

 

Weiterführende Literatur & Quellen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.