Kapitel 4 - Sequentielle Logik

In einem Rechner laufen die Berechnungen üblicherweise sequentiell ab, gesteuert von einem Taktsignal. Insbesondere gibt es an verschiedenen Orten Speicherbausteine, um Daten und Programmcode abzulegen. Zentrales Ziel dieses Kapitels ist es, mit den sogenannten Flipflops die erforderlichen Bauelemente einzuführen, um Berechnungen zu Takten und Daten dauerhaft abzuspeichern. Im Anschluß schauen wir uns noch wichtige Schaltungen an, die aus Flipflops aufgebaut werden, insbesondere verschiedene Arten von Zählern, Register des Prozessors und Speicherbausteine. Wir schauen uns außerdem an, wie sich diese Bausteine in die Hack-Architektur einfügen.

Es wird vermutlich etwas mehr als eine Woche dauern, alle Inhalte durchzuarbeiten, daher bleibt wahrscheinlich nach der letzten Fragestunde vor den Weihnachtsferien noch etwas Stoff übrig. Dafür ist das nächste Kapitel dann sehr kurz.

Inhalt

Abschnitt 1 - Sequentielle Logik: Prinzip der Rückkopplung und Takt

Folien 1-14

Wir verschaffen uns einen Überblick über die Konzepte der sequentiellen Logik im Gegensatz zur kombinatorischen Logik, die wir bisher betrachtet haben. Über Rückkopplungen kann man Ergebnisse wiederverwenden, also speichern, erkauft sich das aber mit eventuellen physikalisch bedingten Schwingungen und Laufzeitproblemen. Zur Synchronisation können Takssignale dienen, und wir schauen uns die Standardform eines gleichförmigen Rechteckpulses an.


Index

00:00 Einführung, Überblick über das Kapitel
03:29 Von der kombinatorischen zur sequentiellen Logik
08:10 Speichern von Information durch Rückkopplungen, Schaltnetze und Schaltwerke
12:14 Probleme der Rückkopplung, Beispiel Nor-Gatter und Schwingungen, race conditions
19:15 Asynchone und synchrone Schaltwerke, Taktsignal und zugehörige Nomenklatur
26:25 Taktsignal als Zeitgeber für Berechnungen, asymmetrische Taktsignale
29:10 Ausblick


Abschnitt 2 - Bistabile Kippstufen: Der SR-Riegel

Folien 16-25

Als grundlegendes Bauteil untersuchen wir den einfachen SR-Riegel als unsere erste bistabile Kippstufe. Man kann ihn aus zwei NAND oder zwei NOR Gattern aufbauen, die wechselseitig rückgekoppelt sind, wobei wir uns auf die NOR-Version konzentrieren. Der SR-Riegel speichert ein Bit auf den Ausgängen $Q$ und $\bar Q$, die bei gültiger Ansteuerung komplementär zueinander sind. Über die Eingangsleitungen $S$ und $R$ kann das Bit gesetzt oder zurückgesetzt werden, die Eingabe $S=R=0$ speichert das zuletzt eingegebene Bit. Die Eingabe $S=R=1$ führt dagegen zu einen metastabilen (inkonsistenten) Zustand, den man unbedingt vermeiden möchte.


Index

00:00 Idee der bistabilen Kippstufe als Speicher für ein Bit
03:49 Funktionsweise der Speicherzustände, Riegel aus NAND vs. NOR Gattern
10:30 Setzen und Rücksetzen der Kippstufe, idealisierter Zeitablauf des Schaltvorgangs
17:45 Metastabiler Zustand: undefinierte Ausgabe
24:12 Notizen zur NAND-Version statt der untersuchten NOR-Version
28:57 SR-Riegel: Zusammenfassung
30:10 Anwendung: Prellfreier mechanischer Schalter
33:21 Ausblick auf die kommenden Erweiterungen


Abschnitt 3 - Hierarchie der bistabilen Kippstufen, Flip-Flops

Folien 26-47

Wir lernen verschiedene Strategien kennen, um die problematische Eingabe beim SR-Riegel, die zu einem metastabilen Zustand führt, zu vermeiden. Dabei führen wir verschiedene Typen von Riegeln ein, die dann um eine Taktsteuerung erweitert werden. Hierbei unterscheiden wir Taktpegelsteuerung sowie Taktflankensteuerung. Schliesslich können durch das Master-Slave Prinzip, bei dem ein SR-Riegel durch einen vorgeschalteten Riegel mit entgegengesetztem Taktsignal angesteuert wird, Laufzeitprobleme komplett vermieden werden. Zum Abschluss verschaffen wir uns noch einmal einen Überblick über die Hierarchie der Riegel und Flipflops und lernen die verschiedenen Schaltzeichen kennen.


Index

00:00 Einleitung, der D-Riegel
04:20 Der E-Riegel
06:55 Taktpegelsteuerung, sperrbarer SR-Riegel und D-Riegel
10:50 Beispiel-Signalverlauf des sperrbaren SR-Riegels
14:55 Umwandlung der ungültigen Eingabe in ein Toggle: T-Riegel
21:30 JK-Riegel: Toggle mit Set/Reset und Speichern
26:45 Beispiel-Signalverlauf des JK-Riegels
29:50 Taktflankensteuerung und Flipflops
26:45 Beispiel-Signalverlauf des JK-Flipflops
37:40 Master-Slave-Prinzip und Beispiel D-Riegel
40:50 Master-Slave JK-Riegel und -Flipflop
43:30 Beispiel-Signalverlauf des Master-Slave JK-Flipflops
46:25 Hierarchie der Riegel und Flipflops
48:00 Schaltzeichen für Riegel und Flipflops
55:10 Flipflops als Elektronikbauteile
57:15 Zusammenfassung und Ausblick

Bemerkungen

Leider war die Kamera hier falsch eingestellt, und der Autofokus fokussiert ständig auf zufällige Dinge in der Szene, zum Glück manchmal auch auf mich. Da ich das Video nicht komplett neu machen wollte, bitte ich darum, diesen Makel zu verzeihen. Ein paar Minuten nach Beginn des nächsten Teils ist es wieder in Ordnung gebracht.


Abschnitt 4 - Schieberegister, Zähler und Speicher

Folien 48-59

Wir nutzen die neuen Bauelemente der sequentiellen Logik, um nützliche Schaltungen für einen Rechner aufzubauen. Dazu gehört das Schieberegister, mit dem man parallele Datenströme in serielle umwandeln kann und umgekehrt. Linear rückgekoppelte Schieberegister erzeugen bestimmte potentiell sinvolle Bitfolgen. Zähler können in jedem Taktschritt je nach Bedarf binär vorwärts oder rückwärts zählen. Aus D-Flipflops und Multiplexern konstruieren wir ein Register, welches eine feste Anzahl Bits speichern kann, und aus dem wir später RAM-Bausteine zusammensetzen werden. Schließlich ist der Programmzähler die Kombination aus einem Register und einem Zähler, welches in der CPU die aktuelle Adresse der Programmausführung speichert.


Index

00:00 Einleitung, Schieberegister: Seriell-zu-Parallel Wandler
07:50 Schieberegister: Parallel-zu-Seriell Wandler
17:00 Schieberegister als Elektronikbauteil
17:50 Einfach rückgekoppelte Schieberegister: Ringzähler
21:33 Linear rückgekoppelte Schieberegister
26:50 Einfacher Zähler (in jedem Takt aufwärts)
32:20 Steuerbarer Zähler (wahlweise aufwärts, abwärts oder stehenbleiben)
39:30 Speicherzelle für ein Bit aus D-Flipflop und Multiplexer
45:15 Speicherregister aus mehreren Bit
49:15 Programmzähler (program counter, PC)
53:00 Ausblick


Abschnitt 5 - Hardwaresimulation und RAM

Folien 60-73

Wir erinnern uns an die Hack-CPU und betrachten, wie die neuen Register sich in die Architektur einfügen. Im folgenden bauen wir RAM-Bausteine aus Registern auf und überlegen, wie ein Schaltplan für einen solchen Baustein aussehen könnte. Eine Hierarchie von RAM-Bausteinen ist in der Hardwaresimulation in HDL implementiert. Schließlich betrachten wir noch, wie Speicherbausteine real mit physikalischen Bauteilen realisiert werden.


Index

00:00 Einleitung, die Hack-CPU und die neuen Register, die wir jetzt implementiert haben
05:25 Erinnerung: Hardware-Simulator und -Beschreibungssprache, sequentielle Logik in HDL
07:50 Allgemeiner Aufbau von RAM-Bausteinen, Adressbus und Datenbus
12:50 Möglicher Schaltplan eines RAM-Bausteins
16:50 Aufbau des RAMs in der Hardware-Simulation der Hack-Architektur
18:50 Breite des Adressbusses und addressierbarer Speicher
20:30 Organisation von realen Speicherbausteinen, Varianten der Adressierung
24:05 Hexadezimale Speicheradressen
26:40 Realisierung von Speicher auf physikalischer Ebene mit Transistoren
28:00 Funktionsweise von dynamischem RAM (DRAM)
31:10 Funktionsweise von statischem RAM (SRAM)
37:15 Speicherhierarchie
38:26 Zusammenfassung und Ausblick