WEBVTT

00:00.000 --> 00:02.840
Wir haben uns das letzte Mal begonnen mit Speicher zu befassen.

00:04.780 --> 00:08.860
Wir haben uns zunächst mal einen grundsätzlichen Aufbau angeguckt und

00:08.860 --> 00:11.300
wir haben jetzt angefangen uns den Aufbau von verschiedenen

00:11.300 --> 00:13.940
Speicherzellen, respektive Speicherelementen anzugucken.

00:17.500 --> 00:19.500
Es ist doch arg laut hier.

00:33.390 --> 00:34.810
Besser, viel besser.

00:36.110 --> 00:38.590
Wir haben uns das letzte Mal dann eben nochmal die Aufbau- und

00:38.590 --> 00:41.290
Speicherelementen von Festwertspeicherzellen angeguckt, also

00:41.290 --> 00:47.130
insbesondere Rom, Brom, E-Brom, E-Quadrat-Brom oder E-Square-Brom.

00:48.630 --> 00:51.330
Und wir haben dann angefangen uns den Aufbau von Schreib-Lese

00:51.330 --> 00:53.570
-Speicherzellen anzuschauen, und zwar von statischen.

00:53.750 --> 00:57.850
Bei statischen Schreib-Lese-Speicherzellen war ja wie gesagt die

00:57.850 --> 00:59.670
Speicherzelle aus dem Flip-Flop gegeben.

00:59.670 --> 01:03.110
Was bedeutet, dass die Speicherzelle ihre Informationen so lange

01:03.110 --> 01:05.010
behält, solange Spannung an diesem Flip-Flop liegt.

01:06.690 --> 01:10.910
Und wir hatten uns auch noch angeguckt, wie die mit

01:10.910 --> 01:13.730
Bipolartransistoren aufgebaute Speicherzelle aussieht.

01:14.350 --> 01:16.950
Bipolartransistoren haben allerdings den Nachteil, dass sie sehr viel

01:16.950 --> 01:17.770
Strom verbrauchen.

01:19.090 --> 01:22.490
Deswegen wird eigentlich die standardstatische Speicherzelle mit Hilfe

01:22.490 --> 01:25.070
von Feld-Effekt-Transistoren in MOS-Transistoren aufgebaut.

01:25.810 --> 01:29.590
Und was Sie hier sehen auf dem Bild ist die klassische 6-Transistor

01:29.590 --> 01:32.690
-Zelle, die eben, wenn man hier richtig zählt, aus 6 Transistoren

01:32.690 --> 01:33.090
besteht.

01:34.710 --> 01:38.550
Und wenn man es mal anguckt, dann kann man hier identifizieren, wir

01:38.550 --> 01:40.450
haben hier zwei Einkoppeltransistoren.

01:42.370 --> 01:44.790
Die ist hier den Inhalt der Speicherzelle, den ich sowohl hier wie

01:44.790 --> 01:45.830
auch hier abgreifen kann.

01:45.910 --> 01:48.050
Also hier und hier kann ich den Inhalt der Speicherzelle abgreifen,

01:48.550 --> 01:51.070
auf die entsprechenden Bitleitungen B1 und B0 ankoppeln.

01:51.070 --> 01:56.990
Hier die Auswahlleitung aktiviert also die beiden Transistoren und

01:56.990 --> 01:58.390
macht die Information verfügbar.

01:59.190 --> 02:01.130
Und die eigentliche Speicherzelle ist das hier in der Mitte.

02:03.650 --> 02:05.570
Das Gebilde ist die eigentliche Speicherzelle.

02:07.370 --> 02:09.510
Und wenn wir die Speicherzelle mal ein bisschen genauer betrachten,

02:09.750 --> 02:12.670
dann stellen wir fest, dass hier eigentlich wieder etwas Bekanntes

02:12.670 --> 02:13.330
existiert.

02:14.050 --> 02:17.670
Nämlich wenn wir nur mal diesen Teil hier betrachten, der völlig

02:17.670 --> 02:19.030
identisch auch hier auftaucht.

02:20.130 --> 02:21.450
Na gut, was haben wir denn da?

02:21.690 --> 02:24.170
Das ist im Prinzip nichts anderes als ein Inverter in CMOS

02:24.170 --> 02:24.710
-Technologie.

02:24.870 --> 02:26.590
Den haben wir in der letzten Vorlesung kennengelernt.

02:27.410 --> 02:31.170
Wir haben hier zwei komplementäre Transistoren, einen NMOS hier und

02:31.170 --> 02:32.370
einen PMOS-Transistor hier.

02:33.550 --> 02:36.810
Hier ist der Eingang, der Eingang liegt hier, der Ausgang liegt hier.

02:38.030 --> 02:41.590
Na gut, und wenn wir hier eine 1 anlegen an diesen Eingang, dann

02:41.590 --> 02:45.450
bedeutet das, dieser Transistor leitet, während der Transistor sperrt.

02:45.450 --> 02:46.410
Das heißt, wir haben hier eine 0.

02:46.530 --> 02:48.030
Also hier eine 1 bedeutet hier eine 0.

02:48.750 --> 02:51.930
Hier eine 0 bedeutet, der Transistor leitet und der Transistor sperrt

02:51.930 --> 02:52.350
hier unten.

02:52.730 --> 02:54.530
Das heißt, hier eine 0 bedeutet da eine 1.

02:54.810 --> 02:55.990
Das war der klassische Inverter.

02:56.570 --> 02:57.650
Und jetzt haben wir zwei davon.

02:58.870 --> 03:01.230
Und wenn ich mal hier so eine kleine Ersatzschaltung nebenhin mache,

03:02.090 --> 03:03.470
dann sieht die im Prinzip so aus.

03:03.510 --> 03:08.470
Wir haben also einen Inverter und einen zweiten Inverter.

03:08.630 --> 03:10.990
Und die ganzen sind, wenn man mal diese Kreuzverbindung hier

03:10.990 --> 03:12.350
betrachtet, genauso verbunden.

03:15.050 --> 03:19.750
Na gut, und das ist auch wieder letztendlich ein Flip-Flop, etwas

03:19.750 --> 03:26.270
Stabiles, weil wenn ich hier eine 0 anlege, dann bedeutet das hier

03:26.270 --> 03:29.650
eine 1 und hier wieder eine 0 und damit ist das Ganze stabil.

03:30.910 --> 03:31.850
Der Kreis schließt sich.

03:32.710 --> 03:34.370
Das gleiche gilt entsprechend umgekehrt.

03:34.730 --> 03:36.670
Ups, das ist hier gelandet, da wollte ich doch gar nicht hin.

03:37.570 --> 03:38.010
Zurück.

03:39.370 --> 03:40.570
Ich wollte eine neue Farbe.

03:41.610 --> 03:45.190
Wenn ich hier eine 1 anlege, kann man die hellblaue sehen?

03:45.270 --> 03:45.790
Ja, kann man sehen.

03:46.310 --> 03:49.250
Dann habe ich hier eine 0 und dann habe ich hier eine 1.

03:50.190 --> 03:51.190
Das heißt auch hier ist es stabil.

03:52.750 --> 03:57.790
Das heißt, diese Zelle, der Kern der Zelle, die wir hier sehen, kann

03:57.790 --> 04:01.650
ich im Prinzip als Ersatzschaltung, als zwei miteinander verbundene

04:01.650 --> 04:04.170
gekoppelte, kreuzgekoppelte Inverter betrachten.

04:04.450 --> 04:06.510
Und die haben auch zwei stabile Zustände.

04:06.510 --> 04:10.050
Also hier können wir auch relativ deutlich sehen, dass wir zwei

04:10.050 --> 04:12.690
stabile Zustände haben, die wir hier in der Zelle speichern können.

04:14.590 --> 04:17.430
Gut, und über diese Ankoppeltransistoren bin ich jetzt in der Lage

04:17.430 --> 04:20.750
eben hier einzugreifen und hier zwangsweise an einer Stelle hier eine

04:20.750 --> 04:23.670
1 und hier eine 0 und hier eine 0 und hier eine 1 einzusetzen und

04:23.670 --> 04:25.630
damit zu bestimmen, in welchem Zustand ich sein möge.

04:25.630 --> 04:31.770
Indem ich einfach dann, gehen wir nochmal auf die grüne Farbe, indem

04:31.770 --> 04:35.410
ich im Prinzip hier einen kopple, respektive hier einen kopple.

04:37.170 --> 04:42.490
Und damit, wenn ich hier einen bestimmten Wert hinschreibe, dass ich

04:42.490 --> 04:45.770
dann eben genau zwangsweise bestimmen kann, in welchem Zustand ich

04:45.770 --> 04:45.930
bin.

04:45.930 --> 04:49.830
Also zum Beispiel, dass ich dann eben hier mal eine 0 reinschreibe und

04:49.830 --> 04:52.850
hier mal eine 1, um den hellblauen Zustand, den dunkelblauen Zustand

04:52.850 --> 04:53.330
zu erreichen.

04:53.490 --> 04:58.630
Oder ich schreibe hier eine 1 und hier eine 0 hin, um den hellblauen

04:58.630 --> 04:59.430
Zustand zu erreichen.

05:00.190 --> 05:02.610
Somit habe ich also auch eine stabile Speicherzelle aus sechs

05:02.610 --> 05:02.930
Transistoren.

05:04.010 --> 05:05.650
Das ist die klassische CMOS Speicherzelle.

05:06.410 --> 05:09.330
Und diese Speicherzelle hat eben den gewaltigen Vorteil, dass im

05:09.330 --> 05:12.170
statischen Zustand praktisch kein Strom fließt.

05:12.170 --> 05:16.650
Weil bei diesen Transistorpaaren hier immer nur einer leitet.

05:16.790 --> 05:19.070
Das heißt, wenn der obere Transistor leitet, sperrt der untere.

05:19.210 --> 05:21.250
Wenn der untere Transistor leitet, sperrt der obere.

05:21.310 --> 05:24.630
Das heißt, ich habe im Prinzip hier niemals eine direkte Verbindung

05:24.630 --> 05:26.670
von der Versorgungsspannung zur Masse.

05:27.210 --> 05:29.970
Das heißt, im statischen Ruhezustand verbraucht diese Zelle praktisch

05:29.970 --> 05:30.630
keinen Strom.

05:31.330 --> 05:34.710
Anders als die bipolare Zelle, die wir das letzte Mal betrachtet

05:34.710 --> 05:37.910
haben, die über bipolare Transistoren aufgebaut worden ist.

05:37.910 --> 05:40.950
Und dort der stabile Zustand durch einen ständigen Stromfluss erreicht

05:40.950 --> 05:41.570
worden ist.

05:41.730 --> 05:43.610
Sie erinnern sich, der eine Transistor hat geleitet.

05:44.190 --> 05:45.330
Dadurch ist Strom geflossen.

05:45.470 --> 05:47.170
Über einen Widerstand ist eine Spannung abgefallen.

05:47.270 --> 05:48.970
Die Spannung hat den anderen Transistor gesperrt.

05:49.470 --> 05:52.130
Das heißt, der stabile Zustand wurde im Prinzip erkauft durch den

05:52.130 --> 05:52.850
fließenden Strom.

05:54.090 --> 05:56.470
Bei der Zelle, wie sie hier dargestellt ist, habe ich das nicht.

05:56.570 --> 05:58.790
Der stabile Zustand wird allein durch Spannungen realisiert.

05:58.910 --> 06:00.330
Es fließen praktisch keine Ströme.

06:00.750 --> 06:02.690
Das heißt, diese Zelle braucht sehr viel weniger Strom.

06:04.450 --> 06:09.590
Ich kann natürlich auch hier eine normale NMOS-Zelle daraus machen,

06:09.650 --> 06:14.010
indem, was hier als Variante B dargestellt ist, ich im Prinzip einen

06:14.010 --> 06:16.150
der beiden Transistoren durch einen Widerstand ersetze.

06:16.350 --> 06:18.650
Wobei ich das letzte Mal schon erklärt habe, einen wirklichen

06:18.650 --> 06:21.170
Widerstand auf dem Chip zu realisieren, ist sehr ungünstig.

06:21.970 --> 06:23.110
Das ist nicht sehr gut machbar.

06:23.670 --> 06:24.590
Das braucht zu viel Fläche.

06:24.710 --> 06:26.790
Man kann sehr viel günstiger einen Widerstand dadurch realisieren,

06:26.850 --> 06:30.350
dass man einen Transistor hernimmt und den mit einer festen

06:30.350 --> 06:33.090
Gatespannung hier versorgt und damit hier einen kontrollierten

06:33.090 --> 06:34.450
Übergangswiderstand erzeugt.

06:34.910 --> 06:37.810
Wenn ich also hier diese obere Schaltung durch so einen Widerstand

06:37.810 --> 06:40.670
ersetze, dann habe ich natürlich auch eine klassische NMOS-Zelle, die

06:40.670 --> 06:41.870
dann wieder Strom verbraucht.

06:42.190 --> 06:44.690
Wie die bipolare Zelle auch, weil dann habe ich natürlich wieder einen

06:44.690 --> 06:45.230
Stromfluss.

06:45.630 --> 06:48.890
Aber hier sehr beliebt ist eben diese CMOS-Zelle, diese

06:48.890 --> 06:51.310
Sechstransistorzelle, weil sie eben praktisch im statischen Zustand

06:51.310 --> 06:52.770
keinen Strom verbraucht.

06:55.270 --> 06:57.130
Gut, das Ganze haben wir hier gerade nochmal zusammengefasst.

06:59.990 --> 07:03.270
Auch hier kann ich natürlich die koinzidente Zellenauswahl machen.

07:03.490 --> 07:05.490
Also wenn ich, Sie erinnern sich, das letzte Mal, wenn ich die Zelle

07:05.490 --> 07:08.370
in eine Matrix unterbringen möchte, dann ist es immer geschickt, zwei

07:08.370 --> 07:11.450
Auswahlleitungen zu haben, um eben eine Zeilen- und eine

07:11.450 --> 07:12.930
Spaltenauswahlleitung zu bekommen.

07:13.810 --> 07:17.630
Das führt dazu, dass wir hier anstelle einer Sechstransistorzelle eine

07:17.630 --> 07:20.690
Achttransistorzelle kriegen, weil der einfachste Weg, das zu

07:20.690 --> 07:23.010
erreichen, ist zusätzlich jeweils hier einen zweiten Transistor

07:23.010 --> 07:27.150
einzufügen, der jetzt hier auf die zweite Auswahlleitung geht.

07:28.410 --> 07:31.230
Das heißt, ich habe dann jeweils auf jeder Seite hier zwei

07:31.230 --> 07:35.130
Transistoren und ich muss beide Leitungen, sowohl die Leitung A wie

07:35.130 --> 07:38.130
auch die Leitung S aktivieren, um jeweils beide Transistoren

07:38.130 --> 07:40.190
durchzuschalten und damit eine Verbindung herzustellen.

07:40.390 --> 07:43.170
Also auch hier kann ich dann bei der koinzidenten Zellenauswahl mit

07:43.170 --> 07:46.930
zwei Leitungen, muss ich zwei Leitungen aktivieren, um die Zelle

07:46.930 --> 07:49.630
anzusprechen und damit kann ich das Ganze natürlich sehr einfach in

07:49.630 --> 07:50.490
der Matrix unterbringen.

07:51.430 --> 07:54.090
Ich habe nachher noch eine Folie, wo man das ein bisschen genauer

07:54.090 --> 07:57.610
sieht, was der Unterschied ist, eine normale Speicherzelle in der

07:57.610 --> 08:00.430
Matrix unterzubringen und so eine koinzidente Zelle in der Matrix

08:00.430 --> 08:01.450
unterzubringen.

08:04.370 --> 08:07.610
Gut, wir hatten ja auch diesen Non-Volatile RAM, diesen nicht

08:07.610 --> 08:08.510
-flüchtigen Speicher.

08:09.330 --> 08:12.690
Hier ist der Aufbau einer dortigen Speicherzelle und die Grundidee

08:12.690 --> 08:14.930
eines nicht-flüchtigen Speichers, nur zur Wiederholung, war ja der,

08:15.010 --> 08:20.970
ich habe im Prinzip sowohl statische Speicherzellen als auch E-Quadrat

08:20.970 --> 08:22.710
- oder EEPROM-Speicherzellen.

08:23.350 --> 08:25.890
Die Aufgabe der statischen Speicherzellen war eben, den normalen

08:25.890 --> 08:28.730
Betrieb zu gewährleisten, das normale Lesen und Schreiben, während die

08:28.730 --> 08:32.710
Spannung anliegt, während dann die EEPROM-Speicherzellen dafür

08:32.710 --> 08:35.270
verantwortlich sind, in dem Moment, wo die Spannung abgeschaltet wird,

08:35.390 --> 08:36.310
den Inhalt zu retten.

08:36.550 --> 08:39.310
Das heißt, den Inhalt von der statischen Speicherzelle, die beim

08:39.310 --> 08:42.390
Abschalten der Spannung ihre Information verliert, in die EEPROM

08:42.390 --> 08:46.190
-Speicherzelle zu übertragen und andersrum beim Wiedereinschalten den

08:46.190 --> 08:48.930
Inhalt aus der EEPROM-Speicherzelle wieder in die statische

08:48.930 --> 08:50.610
Speicherzelle zurückzubringen.

08:51.910 --> 08:54.630
Und hier ist eben mal so eine Speicherzelle dargestellt und man sieht

08:54.630 --> 08:58.090
relativ klar, die besteht eigentlich aus zwei Teilen.

08:59.610 --> 09:01.590
Das ist der erste Teil und das ist genau das, was wir bisher

09:01.590 --> 09:02.270
betrachtet haben.

09:02.350 --> 09:05.530
Das ist einfach eine statische CMOS-Speicherzelle in der 6-Transistor

09:05.530 --> 09:05.990
-Version.

09:06.890 --> 09:08.210
Die haben wir gerade eben betrachtet.

09:09.790 --> 09:15.270
Na gut, und hier haben wir diesen Flotox-Transistor, den wir aus der

09:15.270 --> 09:16.610
EEPROM -Speicherzelle kennen.

09:17.310 --> 09:19.990
Sie erinnern sich, dieses Floating Gate, das so seltsam gebogen war

09:19.990 --> 09:23.650
und auf das ich Ladung aufbringen konnte elektrisch und nämlich auch

09:23.650 --> 09:24.850
Ladung wieder absaugen konnte.

09:25.230 --> 09:26.730
Und auch noch kurz zur Wiederholung.

09:27.230 --> 09:30.590
Durch Aufbringen einer Ladung kann ich eben bei diesem Flotox

09:30.590 --> 09:33.630
-Transistor die Schwellspannung variieren, verändern und kann dafür

09:33.630 --> 09:36.370
sorgen, dass die Schwellspannung so hoch wird, dass eben der

09:36.370 --> 09:37.670
Transistor nie mehr durchschaltet.

09:38.190 --> 09:41.510
Dann habe ich zum Beispiel eben eine 1 in die Zelle programmiert oder

09:41.510 --> 09:46.050
ich mache die Ladung so niedriger, ich sauge die Ladung ab, sodass die

09:46.050 --> 09:47.910
Schwellspannung niedriger ist und der Transistor leitet.

09:49.270 --> 09:52.310
Gut, das ist hier einfach jetzt eine Kombination und Sie sehen hier

09:52.310 --> 09:53.010
eine Verbindung.

09:55.630 --> 09:57.310
Dann haben wir hier einen Verbindungstransistor.

10:00.850 --> 10:04.310
Den Transistor T6, der verbindet jetzt die beiden Zellen miteinander.

10:04.310 --> 10:08.450
Das heißt, sowohl beim Einschalten wie auch beim Ausschalten wird

10:08.450 --> 10:12.330
diese Verbindung hergestellt und beim Einschalten wird über die

10:12.330 --> 10:17.250
Steuerung, eben über diesen Transistor T6, die Information aus der

10:17.250 --> 10:21.590
Speicherzelle T7, aus dem Speichertransistor T7, in hier die statische

10:21.590 --> 10:22.710
Speicherzelle überführt.

10:23.490 --> 10:27.290
Beim Ausschalten wird umgekehrt über diesen Transistor T6 der Inhalt

10:27.290 --> 10:29.870
von der statischen Speicherzelle auf diesen Flotox-Transistor

10:29.870 --> 10:32.090
übertragen und damit dauerhaft gespeichert.

10:34.310 --> 10:37.070
Das Ganze funktioniert, das Einschalten ist kein Problem, das

10:37.070 --> 10:40.530
Einschalten habe ich im Prinzip beliebig Zeit zu kopieren, kritischer

10:40.530 --> 10:43.630
ist das Ausschalten, weil beim Ausschalten verliert natürlich diese

10:43.630 --> 10:46.890
Speicherzelle ihre Information recht schnell und üblicherweise mache

10:46.890 --> 10:49.310
ich es so, dass dort eben entsprechend in der Zelle eine gewisse

10:49.310 --> 10:52.330
Kapazität integriert ist, also ein Kondensator, der eine gewisse

10:52.330 --> 10:56.030
Restenergie enthält und diese Restenergie ist groß genug, um eben

10:56.030 --> 10:59.670
diesen übergeordneten Inhalt dieser statischen Speicherzelle lang

10:59.670 --> 11:02.730
genug aufrecht zu halten, bis ich ihn in den Flotox-Transistor kopiert

11:02.730 --> 11:03.030
habe.

11:04.310 --> 11:06.690
Das macht man auch natürlich nicht einzeln, das heißt also, ich mache

11:06.690 --> 11:08.950
das nicht hintereinander, sondern es wird im Prinzip in der kompletten

11:08.950 --> 11:10.710
Speichermatrix parallel durchgeführt.

11:12.550 --> 11:15.310
Gut, vielleicht erinnern Sie sich auch noch, wir haben da oben noch

11:15.310 --> 11:17.330
diesen Transistor T8, der noch nicht erklärt ist.

11:17.730 --> 11:20.630
Sie erinnern sich vielleicht bei dem Flotox-Transistor, sprich bei der

11:20.630 --> 11:25.050
EEPROM -Speicherzelle, war zunächst mal erforderlich, dass die

11:25.050 --> 11:28.050
Speicherzelle gelöscht wird und das Löschen einer EEPROM-Zelle besteht

11:28.050 --> 11:30.250
darin, Ladung auf das Loading Gate aufzubringen.

11:30.690 --> 11:33.350
Erst wenn ich Ladung drauf habe, kann ich dann die Speicherzelle

11:34.310 --> 11:37.290
löschen, indem ich entweder die Ladung drauf belasse, das ist eine 1,

11:37.350 --> 11:39.930
oder die Ladung absauge, das ist eine 0, oder auch umgekehrt, je

11:39.930 --> 11:42.270
nachdem, wie gesagt, 1 und 0 kann man hier beliebig zugeordnen.

11:43.110 --> 11:46.210
Das heißt, ich muss eine Möglichkeit haben, die Zelle zu löschen und

11:46.210 --> 11:49.970
dafür dient dieser Transistor T8, der kann die Zelle löschen, das

11:49.970 --> 11:52.610
heißt, der bringt zunächst mal eine Ladung auf den Flotox-Transistor,

11:52.710 --> 11:55.730
um ihn in einen definierten Zustand zu bringen.

12:00.740 --> 12:05.320
Gut, aber wir sehen hier auch letztendlich hier unten der Kernsatz

12:05.320 --> 12:06.280
dieser nächsten Folie.

12:08.000 --> 12:11.900
Es ist relativ deutlich, dass diese Zelle eben den absolut größten

12:11.900 --> 12:17.020
Aufwand von allen benötigt, sowohl was die Speicherzellen selber

12:17.020 --> 12:17.380
angeht.

12:17.420 --> 12:20.800
Wir haben ja gesehen, wir brauchen hier 6, 7, 8, 9 Transistoren.

12:21.720 --> 12:24.420
Wenn man zurück ist, sind es insgesamt 9 Transistoren, das heißt, es

12:24.420 --> 12:25.380
ist eine 9-Transistor-Zelle.

12:26.460 --> 12:28.840
Die Transistoren haben teilweise noch sehr unterschiedliche

12:28.840 --> 12:32.000
Technologie, also dieser Flotox-Transistor hier unterscheidet sich in

12:32.000 --> 12:34.360
der Technologie von den anderen Transistoren sehr stark.

12:35.040 --> 12:36.960
Und schließlich haben wir noch die Verbindungsleitung hier.

12:37.680 --> 12:40.620
Und das ist, wie gesagt, nicht eine Leitung, weil wir nicht die Zeit

12:40.620 --> 12:43.920
haben, das nacheinander von jeder Speicherzelle die Informationen zu

12:43.920 --> 12:44.440
übertragen.

12:44.600 --> 12:46.740
Da wäre vorher unser Kondensator entladen.

12:47.400 --> 12:50.640
Wir müssen das parallel tun, am besten für die ganze Matrix, im

12:50.640 --> 12:54.280
Schlimmsten also auf jeden Fall mindestens zeilenweise in der Matrix.

12:54.820 --> 12:57.160
Das heißt, wir haben nicht nur eine solche Verbindungsleitung, sondern

12:57.160 --> 12:59.100
wir haben ein ganzes Bündel, das ist ein richtiger Bus, der

12:59.100 --> 12:59.700
herüberführt.

12:59.700 --> 13:03.620
Und Busse sind auch sehr flächenverbrauchend auf Chips.

13:03.760 --> 13:06.520
Das heißt also, diese Speicherzelle, die braucht sehr, sehr viel

13:06.520 --> 13:06.860
Fläche.

13:07.380 --> 13:10.120
Dementsprechend sind solche Speicher auch nur in kleinen Größen

13:10.120 --> 13:10.640
erhältlich.

13:15.070 --> 13:18.470
Gut, damit haben wir die statischen Speicherzellen abgehandelt.

13:18.750 --> 13:20.670
Betrachten wir als nächstes die dynamischen Speicherzellen.

13:21.230 --> 13:24.450
Dynamische Speicherzellen werden immer in MOS-Technologie ausgeführt.

13:26.270 --> 13:29.470
Und die Grundidee einer dynamischen Speicherzelle war ja die, dass ich

13:29.470 --> 13:31.610
meine Informationen auf einem Kondensator speichere.

13:31.750 --> 13:35.910
Das heißt, Kern der Speicherzelle ist eine Kapazität.

13:36.230 --> 13:37.130
Und zwar genau die hier.

13:38.910 --> 13:40.690
Das ist der Kern meiner Speicherzelle.

13:41.170 --> 13:45.130
Auf diese Kapazität bringe ich Ladung auf oder entferne Ladung, um

13:45.130 --> 13:46.370
eine Information zu speichern.

13:49.170 --> 13:53.970
Gut, natürlich muss ich diese Kapazität auch an die Bitleitung

13:53.970 --> 13:55.650
anschließen und davon der Bitleitung trennen.

13:55.650 --> 13:57.800
Dazu habe ich im Prinzip einen Transistor, einen Schalttransistor.

13:59.450 --> 14:00.150
Das ist der hier.

14:01.810 --> 14:07.710
Wenn ich die Auswahlleitung aktiviere, dann wird diese Kapazität mit

14:07.710 --> 14:10.570
der Bitleitung verbunden und ich kann eben entweder die Information

14:10.570 --> 14:13.670
aufbringen oder ich kann die Information auslesen.

14:15.750 --> 14:17.950
So, relativ trickreich kann man jetzt folgendes machen.

14:18.030 --> 14:22.470
Rechts habe ich mal das Bild auf dem Chip, das Layout auf dem Chip

14:22.470 --> 14:23.090
dargestellt.

14:23.090 --> 14:25.650
Man kann jetzt folgendes relativ trickreich machen.

14:25.750 --> 14:28.490
Man kann diese Speicherkapazität und diesen Schalttransistor praktisch

14:28.490 --> 14:29.470
in einem realisieren.

14:30.710 --> 14:31.830
Natürlich ein sehr einfacher Trick.

14:32.510 --> 14:35.570
Wir haben hier an der Stelle unseren Layout.

14:35.670 --> 14:38.790
Das ist unser ganz normaler MOS-Transistor mit dem Gate.

14:39.350 --> 14:41.310
Das ist über Siliziumdioxid isoliert.

14:42.810 --> 14:46.090
Wir haben unseren endotierten Source-Bereich.

14:46.190 --> 14:47.990
Wir haben unseren endotierten Drain-Bereich.

14:47.990 --> 14:54.070
Und hier liegt jetzt der Witz dieser Speicherzelle.

14:54.930 --> 14:56.330
Hier hat man nämlich zwei Dinge getan.

14:56.430 --> 15:01.390
Zum einen hat man den Drain-Anschluss vom Drain-Bereich isoliert und

15:01.390 --> 15:03.570
zum anderen hat man den Drain-Bereich vergrößert gegenüber einem

15:03.570 --> 15:04.350
normalen Transistor.

15:04.510 --> 15:07.470
Und dadurch, dass ich diesen Bereich vergrößere und isoliere, entsteht

15:07.470 --> 15:08.350
hier ein Kondensator.

15:08.490 --> 15:10.010
Das hier ist im Prinzip ein Kondensator.

15:11.070 --> 15:13.350
Hier ist die eine Platte des Kondensators, die ist hier.

15:14.050 --> 15:16.490
Und da ist die andere Platte des Kondensators.

15:17.650 --> 15:20.670
Das heißt, durch diese geschickte Maßnahme kann ich im Prinzip diesen

15:20.670 --> 15:24.370
Speicherkondensator zusammen mit dem Speichertransistor praktisch in

15:24.370 --> 15:25.730
einer einzigen Einheit integrieren.

15:26.030 --> 15:27.210
Und das macht man entsprechend auch.

15:28.470 --> 15:31.030
Das bedeutet, die MOS-Speicherzelle ist letztendlich eine

15:31.030 --> 15:31.950
Eintransistorzelle.

15:32.070 --> 15:34.990
Sie benötigt nur einen Transistor, ist es damit der kleinste Aufwand

15:34.990 --> 15:36.850
von allen betrachteten Zellen.

15:37.050 --> 15:40.210
Also ein Viertel oder ein Sechstel oder gar ein Achtel nur an der SRAM

15:40.210 --> 15:40.470
-Zelle.

15:44.070 --> 15:46.290
Gut, um es zu einer gewissen Vorstellung zu geben.

15:46.350 --> 15:50.290
Die Kapazität dieses Kondensators liegt irgendwo im Sub-PicoFarad

15:50.290 --> 15:54.150
-Bereich, also 0,1 PicoFarad oder darunter.

15:55.350 --> 15:59.930
Das heißt, es werden bei 0,1 PicoFarad in der Größenordnung 100.000

15:59.930 --> 16:02.530
Elektronen auf diesem Kondensator gespeichert, um zum Beispiel eine

16:02.530 --> 16:03.790
logische Eins zu repräsentieren.

16:04.170 --> 16:06.690
Das ist nicht arg viel, 100.000 Elektronen.

16:06.690 --> 16:10.970
Und je dichter unsere Speicher werden, je größer unsere Speicherchips

16:10.970 --> 16:13.770
werden, desto weniger Elektronen werden das.

16:15.250 --> 16:17.530
Man kann sich relativ gut vorstellen, dass es auch immer kritischer

16:17.530 --> 16:18.750
wird, je weniger Elektronen es sind.

16:18.830 --> 16:22.430
Wenn wir mal in einen Bereich von 10.000 Elektronen kommen für einen

16:22.430 --> 16:25.490
Bit, dann wird das Bit schon recht instabil, weil es da so bösartige

16:25.490 --> 16:28.350
geladene Teilchen gibt, die in der Gegend rumfliegen und unter

16:28.350 --> 16:31.150
Umständen eben diese Elektronen da runterhauen.

16:31.890 --> 16:35.650
Deswegen ist es immer kritischer und immer schwieriger zu realisieren,

16:35.830 --> 16:38.340
weil immer weniger Elektronen letztendlich einen Bit repräsentieren.

16:43.030 --> 16:45.210
Gut, hier haben wir jetzt noch ein bestimmtes Problem.

16:46.990 --> 16:49.050
Das Problem ist hier mal notiert.

16:50.230 --> 16:53.450
Wir haben nämlich, gehen wir nochmal zu dem Bild zurück, nicht nur die

16:53.450 --> 16:57.490
Speicherkapazität, sondern hier diese Verbindungsleitung, die wir hier

16:57.490 --> 16:59.050
haben, die hat auch eine Kapazität.

16:59.050 --> 17:01.490
Die ist nicht wirklich vorhanden als Schaltelement, es ist einfach

17:01.490 --> 17:02.730
eine parasitäre Kapazität.

17:02.850 --> 17:06.650
Natürlich stellt jede Leitung im Prinzip eine Kapazität gegenüber der

17:06.650 --> 17:08.590
Masse dar, wenn sie von der Masse isoliert ist.

17:08.710 --> 17:11.210
Das heißt also, jede Leitung, die irgendwo liegt, hat eine gewisse

17:11.210 --> 17:14.490
Kapazität, das nennt man eine parasitäre Kapazität, ganz einfach durch

17:14.490 --> 17:15.670
ihre Existenz begründet.

17:17.470 --> 17:20.370
Und hier ist es leider so, dadurch, dass die Speicherkapazität hier,

17:20.450 --> 17:23.030
die hier so klein ist, liegt sie etwa in der gleichen Größenordnung

17:23.030 --> 17:24.230
wie die Leitungskapazität.

17:25.030 --> 17:27.670
Das heißt, die Leitungskapazität spielt hier eine nicht unwesentliche

17:27.670 --> 17:29.610
Rolle, und die müssen wir beim Lesen berücksichtigen.

17:30.370 --> 17:34.070
Das heißt, einfach so hier die Verbindung herstellen, würde unter

17:34.070 --> 17:36.670
anderem einfach zu gar nichts führen, weil beide Kapazitäten etwa

17:36.670 --> 17:37.530
gleich groß sind.

17:38.490 --> 17:39.490
Was macht man da dagegen?

17:40.170 --> 17:43.870
Na gut, man zieht diese Leitungskapazität im Prinzip in die Schaltung

17:43.870 --> 17:48.810
mit ein, man bezieht die mit ein und berücksichtigt die und macht

17:48.810 --> 17:49.070
voll.

17:49.130 --> 17:52.350
Hier oben haben wir einen weiteren Transistor, den wir bisher noch

17:52.350 --> 17:53.250
nicht betrachtet haben.

17:53.250 --> 17:55.750
Das ist ein sogenannter Pre-Charge-Transistor.

17:55.870 --> 17:58.450
Dieser Transistor hat nichts anderer Aufgabe, als diese

17:58.450 --> 17:59.850
Leitungskapazität zu laden.

18:00.350 --> 18:03.750
Das heißt, er verbindet die Bitleitung hier mit der

18:03.750 --> 18:06.270
Versorgungsspannung und lädt damit diese Kapazität auf.

18:06.370 --> 18:09.290
Das heißt, hier haben wir ein Plus und hier haben wir ein Minus.

18:12.250 --> 18:13.990
Gut, betrachten wir die Speicherkapazität.

18:14.090 --> 18:17.450
Wenn die Speicherkapazität geladen ist, haben wir hier ein Plus und

18:17.450 --> 18:18.090
hier ein Minus.

18:20.370 --> 18:24.510
Wenn ich jetzt mit vorgeladener Leitungskapazität diesen

18:24.510 --> 18:29.630
Speichertransistor aktiviere und diese Kapazität ist geladen, dann

18:29.630 --> 18:31.030
findet einfach ein Ladungsausgleich statt.

18:31.110 --> 18:32.890
Hier habe ich negative Ladungsträger, hier habe ich positive

18:32.890 --> 18:34.890
Ladungsträger, die fließen gegenseitig ab.

18:35.510 --> 18:38.390
Es fließt also hier ein Ausgleichsstrom und diesen Ausgleichsstrom

18:38.390 --> 18:39.770
kann ich hier in der Bitleitung messen.

18:40.390 --> 18:42.630
Und damit stelle ich fest, aha, die Kapazität war geladen.

18:43.330 --> 18:46.070
Wenn diese Kapazität hier nicht geladen war, wenn die ungeladen war,

18:46.170 --> 18:49.090
findet dieser Ausgleich nicht statt, weil wenn ungeladen war, habe ich

18:49.090 --> 18:50.790
hier ein Plus und dann habe ich hier auch ein Plus.

18:52.970 --> 18:54.750
Also bei ungeladen hätte ich da unten auch ein Plus.

18:54.850 --> 18:57.230
Wenn der Kondensator ungeladen ist, dann hätte ich also hier Plus und

18:57.230 --> 18:58.470
hier Plus, dann passiert nichts.

18:58.950 --> 19:00.670
Kein Strom, das heißt, wir haben eine Null.

19:01.350 --> 19:03.890
Wenn hier aber geladen war, haben wir hier Minus, hier Plus, es fließt

19:03.890 --> 19:04.130
ein Ausgleichsstrom.

19:04.810 --> 19:08.210
Das heißt, durch diesen kleinen Trick kann ich das Problem lösen.

19:08.310 --> 19:10.610
Ich habe also, um das zusammenzufassen, hier einen speziellen

19:10.610 --> 19:14.250
Transistor nochmal, einen Pre-Charge-Transistor, dessen Aufgabe es

19:14.250 --> 19:17.550
ist, durch einen sehr kurzen Impuls über dieses Up, kurz vor dem

19:17.550 --> 19:20.490
Auslesen der Speicherzelle, die Leitungskapazität aufzuladen.

19:21.250 --> 19:25.330
Und dann kann während des Auslesens eben ein Ausgleichsstrom fließen.

19:25.770 --> 19:28.150
Dann hat man zum Beispiel eine Eins in der Zelle oder es kann kein

19:28.150 --> 19:30.110
Ausgleichsstrom fließen, dann hat man eine Null in der Zelle.

19:36.960 --> 19:39.520
Gut, das Schreiben ist relativ einfach.

19:40.900 --> 19:44.500
Ich lege eine positive Spannung an den Speichertransistor an und lege

19:44.500 --> 19:46.580
dann die BIT-Leitung auf Masse oder auf Versorgungsspannung.

19:47.680 --> 19:48.380
Gehen wir nochmal zurück.

19:49.240 --> 19:51.900
Also ich lege hier eine positive Spannung UGS an, schalte den

19:51.900 --> 19:55.020
Speichertransistor durch und lege dann die BIT-Leitung hier auf Masse.

19:55.120 --> 19:58.420
Wenn ich die BIT-Leitung auf Masse lege, dann lade ich die Zelle, weil

19:58.420 --> 20:01.440
ich nämlich dann hier die negativen Ladungsträger aufbringe, während

20:01.440 --> 20:02.320
hier die positiven sind.

20:03.020 --> 20:05.520
Lege ich die BIT-Leitung hingegen auf Versorgungsspannung, hier auf

20:05.520 --> 20:07.220
Plus -UB, dann passiert hier gar nichts.

20:07.840 --> 20:10.660
Dann habe ich hier Plus, hier Plus und dann ist das Ganze ungeladen.

20:10.780 --> 20:13.440
Das heißt, dadurch kann ich sehr einfach dafür sorgen, dass diese

20:13.440 --> 20:15.960
Speicherkapazität geladen wird oder dass sie entladen wird.

20:17.340 --> 20:20.180
Man sieht hier übrigens auch ein klassisches Beispiel einer

20:20.180 --> 20:23.000
Speicherzelle, bei dem das Lesen zerstörerisch ist.

20:23.620 --> 20:27.060
Weil, nehmen wir an, die Zelle ist geladen und ich lese sie aus, dann

20:27.060 --> 20:30.100
lese ich sie ja dadurch aus, dass ich diese Kapazität auflade und dann

20:30.100 --> 20:31.860
hier einen Ausgleichsstrom provoziere.

20:31.860 --> 20:35.100
Durch diesen Ausgleichsstrom entladen sich beide Kapazitäten.

20:35.240 --> 20:38.460
Das heißt, nach dem Lesen ist diese Speicherzelle entladen und leer,

20:38.540 --> 20:40.200
egal ob sie vorher geladen war oder nicht.

20:40.980 --> 20:43.460
Das heißt also, das Lesen dieser Speicherzelle ist zerstörerisch.

20:43.580 --> 20:45.300
Einmal auslesen und der Inhalt ist zerstört.

20:45.980 --> 20:48.340
Das bedeutet, wie wir später noch sehen werden, in einer späteren

20:48.340 --> 20:51.460
Folie, wir müssen hier Maßnahmen treffen, um nach dem Lesen den Inhalt

20:51.460 --> 20:52.700
der Zelle wieder herzustellen.

20:53.660 --> 20:56.260
Und das ist so ein klassischer Fall, wo wir auch das letzte Mal

20:56.260 --> 20:59.540
gesehen haben, das wäre eine Zelle, bei der die Zykluszeit deutlich

20:59.540 --> 21:00.860
größer als die Zugriffszeit ist.

21:00.860 --> 21:04.020
Die Zugriffszeit ist nämlich die Zeit, die ich brauche, um diesen

21:04.020 --> 21:06.780
Ladungsausgleich herbeizuführen und damit festzustellen, da war eine

21:06.780 --> 21:07.660
einzelne Null drin.

21:08.300 --> 21:10.540
Nachdem ich das getan habe, kann ich aber nicht sofort wieder darauf

21:10.540 --> 21:12.900
zugreifen, weil nämlich jetzt der Inhalt der Zelle zerstört ist.

21:13.540 --> 21:16.460
Das heißt, ich muss jetzt als nächstes noch lange abwarten, bis eine

21:16.460 --> 21:19.400
geschickte Schaltung, die wir später besprechen wollen, den Inhalt der

21:19.400 --> 21:20.860
Speicherzelle wieder restauriert hat.

21:21.540 --> 21:23.320
Und danach erst kann ich wieder zugreifen.

21:23.480 --> 21:25.940
Das heißt, in dem Fall wäre die Zykluszeit wirklich deutlich höher als

21:25.940 --> 21:26.760
die Zugriffszeit.

21:26.760 --> 21:29.000
Im Schnitt kommen etwa 80% noch mal hinzu.

21:29.220 --> 21:32.420
Also wenn ich zum Beispiel 100 Nanosekunden Zugriffszeit hätte, dann

21:32.420 --> 21:34.460
wäre die Zykluszeit etwa 180 Nanosekunden.

21:35.120 --> 21:36.800
Nur um eine Hausnummer zu geben.

21:36.860 --> 21:40.560
Die heutigen Werte sind deutlich kleiner, aber mit den 100 kann man so

21:40.560 --> 21:41.640
schön mit den Prozenten rechnen.

21:45.120 --> 21:50.840
Gut, damit haben wir im Prinzip jetzt alle Speicherbausteine oder

21:50.840 --> 21:52.440
Speicherelemente mal betrachtet.

21:52.540 --> 21:54.540
Wir haben alle Speicherzellen angeschaut.

21:54.640 --> 21:57.160
Wir haben die Festwertspeicherzellen angeschaut und gesehen, wie sie

21:57.160 --> 21:57.720
funktionieren.

21:58.200 --> 22:00.960
Wir haben die Schreiblesespeicherzellen angeschaut und gesehen, wie

22:00.960 --> 22:01.600
sie funktionieren.

22:03.200 --> 22:05.480
Was wir noch nicht betrachtet haben, ist, wie ich jetzt mit diesen

22:05.480 --> 22:07.480
Speicherzellen Speicherbausteine aufbaue.

22:08.500 --> 22:13.980
Naja gut, hier kommt jetzt auch ein paar Überlegungen ins Spiel.

22:15.300 --> 22:20.060
Ich hatte es schon mal kurz angesprochen, ich füge hier mal noch eine

22:20.060 --> 22:20.760
Folie ein.

22:21.840 --> 22:31.080
Wenn ich also meine einzelnen Speicherzellen hier habe,

22:36.920 --> 22:38.020
dann...

22:38.940 --> 22:41.540
Und ich würde die einfach jetzt so in Reihe anschalten.

22:41.640 --> 22:42.500
Das wäre eine einfache Idee.

22:43.500 --> 22:46.260
Wie sich mein Speicher im Rechner darstellt, ist der Speicher eine

22:46.260 --> 22:48.880
lineare Liste von Speicherzellen von den Adressen 0 bis N.

22:49.560 --> 22:52.060
Also wäre ja eine sehr gute Idee, ich ordne das einfach an.

22:52.140 --> 22:54.960
Ich habe also hier die Speicherzellen von 0 bis N.

22:56.360 --> 23:00.140
Und das sind meine Auswahlleitungen hier, also die A0 bis AN

23:00.140 --> 23:01.040
-Auswahlleitungen.

23:02.180 --> 23:05.640
Und es ist klar, also hier von 0 bis N bedeutet das, ich hätte hier N

23:05.640 --> 23:07.560
plus 1 Auswahlleitungen.

23:09.680 --> 23:11.840
Das sind natürlich relativ viele, vor allen Dingen kann man sich das

23:11.840 --> 23:14.020
etwas verreduzieren, indem man jetzt den Speicher nicht linear

23:14.020 --> 23:15.240
aufbaut, sondern in einer Matrix.

23:17.120 --> 23:22.400
Da haben wir hier 1, 2, 3, 4, 5, 6, dann machen wir mal 7, 8, 9,

23:22.500 --> 23:24.000
ergänzen was man macht.

23:24.740 --> 23:27.440
Dann kriegen wir es da hinten noch hin, machen mal ein 9 draus, das

23:27.440 --> 23:30.120
heißt also wir löschen mal, einfach mal ein Beispiel.

23:34.880 --> 23:42.560
Das heißt wir haben hier A0

23:50.170 --> 23:55.430
bis A8, 1, 2, 3, 4, 5, 6, 7, 8, 9, genau.

23:55.770 --> 23:58.710
Das heißt wir brauchen in dem Fall A0 bis A8, 9 Auswahlleitungen.

24:00.110 --> 24:02.690
Wenn ich das geschickt mache, könnte ich das auch in einer Matrix

24:02.690 --> 24:02.850
anordnen.

24:04.710 --> 24:08.110
In einer Matrix angeordnet, bei dem Beispiel würde das so aussehen.

24:13.720 --> 24:14.920
Auch hier habe ich meine 9 Speicherzellen.

24:16.260 --> 24:18.860
Wenn ich die jetzt geschickt miteinander über meine Matrix verbinde,

24:27.390 --> 24:29.250
dann können wir mal zählen, wie viele Auswahlleitungen wir jetzt

24:29.250 --> 24:29.630
brauchen.

24:29.770 --> 24:31.670
Und Sie sehen, wir brauchen nur noch 6 Auswahlleitungen, um die

24:31.670 --> 24:33.930
gleiche Anzahl von Speicherzellen anzusprechen, indem wir es in einer

24:33.930 --> 24:34.890
Matrix organisieren.

24:35.630 --> 24:38.470
Ganz einfach, weil eben dieses Quadrat da in die Matrix reinkommt.

24:39.350 --> 24:43.730
Das heißt also, ich kann deutlich Leitungen sparen, indem ich meine 6

24:43.730 --> 24:46.250
Speicherzellen nicht linear anordne, sondern in Form von Matrizen.

24:47.270 --> 24:49.970
Und ich kann insbesondere dann Leitungen sparen.

24:50.770 --> 24:52.070
Was ist die günstigste Matrixform?

24:52.110 --> 24:53.350
Das ist natürlich die quadratische Matrix.

24:53.430 --> 24:56.710
Bei der quadratischen Matrix kann ich immer mit der Wurzel der

24:56.710 --> 24:57.770
Leitungen rechnen.

24:58.170 --> 24:59.710
Das heißt, da kriege ich die meiste Reduktion.

25:01.150 --> 25:05.630
Das ist eben der Grund, weshalb in einem Speicherbaustein, und hier

25:05.630 --> 25:10.470
haben wir nochmal dargestellt, die Speicherelemente jetzt immer in

25:10.470 --> 25:11.810
Form einer Matrix organisiert sind.

25:11.930 --> 25:14.370
Wir haben also hier immer eine Speichermatrix, in der sind die

25:14.370 --> 25:17.690
einzelnen Speicherelemente in Matrizenform aufgebaut, und das spart

25:17.690 --> 25:20.630
einfach Leitungen, wie wir eben an dem Beispiel gesehen haben.

25:23.030 --> 25:26.930
Gut, wenn ich eine Matrix habe, habe ich dann immer Zeilenauswahl und

25:26.930 --> 25:27.790
Spaltenauswahl.

25:27.790 --> 25:30.630
Das heißt, ich habe irgendwelche Dekoder hier oder Auswahlschalter,

25:31.210 --> 25:35.030
die mir jetzt hier ein bestimmtes Element oder mehrere Elemente in

25:35.030 --> 25:38.940
meiner Matrix irgendwie hier kennzeichnen und aktivieren.

25:39.470 --> 25:43.290
Das heißt, mein Speicherbaustein wird im Prinzip hier so aussehen.

25:43.370 --> 25:45.710
Ich habe den Kern meines Speicherbausteins, das ist meine

25:45.710 --> 25:45.960
Speichermatrix.

25:47.260 --> 25:51.280
Ich habe irgendwie Auswahldekoder, um aus meinen Adressleitungen,

25:51.400 --> 25:54.340
nicht zu verwechseln mit den Auswahlleitungen, das sind jetzt

25:54.340 --> 25:59.160
Adressleitungen, um mit den Adressleitungen hier eine Zeile oder eine

25:59.160 --> 26:01.760
Spalte der Matrix zu selektieren und ein bestimmtes Speicherelement

26:01.760 --> 26:02.420
anzuwählen.

26:03.580 --> 26:06.280
Ich habe ein Interface nach draußen und ich habe natürlich irgendeine

26:06.280 --> 26:09.260
Steuerlogik und ich brauche auch noch eine Bausteinauswahl, um den

26:09.260 --> 26:10.520
Baustein an sich zu aktivieren.

26:11.860 --> 26:15.700
Wir haben hier auch Verstärker, eben um die Zellen auslesen und

26:15.700 --> 26:16.200
schreiben zu können.

26:16.280 --> 26:18.600
Das brauchen wir insbesondere, wenn wir uns diese dynamischen

26:18.600 --> 26:21.920
Speicherzellen vorstellen, wobei ja eine 1 dadurch repräsentiert, dass

26:21.920 --> 26:23.760
es eine kleine Ladung auf einer Kapazität ist.

26:24.840 --> 26:27.280
Und ausgelesen wird diese Ladung dadurch, dass ich einen

26:27.280 --> 26:29.260
Ausgleichsstrom mit der Leitungskapazität erzeuge.

26:30.000 --> 26:32.580
Das ist also ein ganz, ganz kleiner Strom und da ist es klar, dass ich

26:32.580 --> 26:34.660
dort einen Verstärker brauche, einen Leseverstärker, um dort einen

26:34.660 --> 26:36.040
brauchbaren Wert zu erzielen.

26:37.200 --> 26:39.840
Dann habe ich hier an der Seite noch ein paar Steuerleitungen, auf die

26:39.840 --> 26:41.020
wir später eingehen.

26:41.060 --> 26:44.840
Das Ganze soll also zunächst einmal ein Übersichtsbild sein, wie ein

26:44.840 --> 26:47.440
Speicherbaustein aufgebaut ist und wir werden es mit den einzelnen

26:47.440 --> 26:48.840
Komponenten ein bisschen auseinandersetzen.

26:48.840 --> 26:50.840
Bleiben wir mal bei der Matrix.

26:54.420 --> 26:57.700
Das heißt, wir haben den Auswahl einer Zelle eben durch die

26:57.700 --> 27:02.780
Zeilenauswahlleitungen Z0 bis ZI und durch die Spaltenauswahlleitungen

27:02.780 --> 27:03.720
S0 bis SJ.

27:03.720 --> 27:04.900
S0 bis SJ, können wir hier nochmal schauen.

27:05.800 --> 27:10.780
Also hier Z0 bis ZI, das ist natürlich ein Fehler hier drin, das muss

27:10.780 --> 27:12.760
natürlich keine 1, sondern ein I sein.

27:14.160 --> 27:17.780
Und S0 bis SJ, die dann hier ein Speicherelement auswählen.

27:19.940 --> 27:23.040
Und wie gesagt, die Minimierung ist nur offensichtlich genau dann,

27:23.140 --> 27:24.480
wenn es eine quadratische Matrix ist.

27:24.500 --> 27:27.560
Das heißt, man wird versuchen, diese Speichermatrix im Wesentlichen,

27:27.580 --> 27:28.220
solange es geht.

27:28.280 --> 27:30.520
Ich meine, es geht natürlich nicht immer, es hängt von der Anzahl der

27:30.520 --> 27:33.260
Speicherzellen ab, aber man wird versuchen, so nah wie möglich an eine

27:33.260 --> 27:36.260
quadratische Matrix zu kommen, um eben die Anzahl der Auswahlleitungen

27:36.260 --> 27:36.920
zu minimieren.

27:37.280 --> 27:39.940
Das heißt, man wird versuchen, I ungefähr gleich J zu machen.

27:43.950 --> 27:45.030
Gut, schauen wir jetzt mal an.

27:45.050 --> 27:45.990
Ich hatte es ja vorhin versprochen.

27:46.570 --> 27:50.610
Wenn ich jetzt ein Speicherelement habe, wie wähle ich es jetzt aus?

27:51.230 --> 27:54.390
Und da haben wir im Prinzip drei verschiedene Möglichkeiten.

27:55.990 --> 28:00.430
Variante 1 ist im Prinzip diese Variante hier, ist im Prinzip die, die

28:00.430 --> 28:04.190
wir kennengelernt haben, als wir die Festwertspeicherzellen betrachtet

28:04.190 --> 28:04.570
haben.

28:06.390 --> 28:09.410
Dort kann ich die Matrix einfach dadurch realisieren, bei diesen

28:09.410 --> 28:11.890
Festwertspeicherzellen hatte ich ja nur eine Auswahlleitung.

28:12.210 --> 28:15.270
Das heißt, da realisiere ich meine Speichermatrix so, dass ich zum

28:15.270 --> 28:20.970
Beispiel die Zeilen hier, die Zeilenleitungen direkt an die

28:20.970 --> 28:23.770
Auswahlleitungen der einzelnen Speicherzellen schreibe und als

28:23.770 --> 28:25.670
Spaltenleitungen die Bitleitungen benutze.

28:26.250 --> 28:29.670
Das bedeutet aber letztendlich, wenn ich es so habe, dass wenn ich

28:29.670 --> 28:33.670
eine Zeile auswähle, dass ich immer dann komplett die komplette Zeile

28:33.670 --> 28:34.650
ausgelesen bekomme.

28:34.770 --> 28:37.350
Das heißt, ich bekomme, da ich ja keine zweite Auswahlleitung habe,

28:37.870 --> 28:41.990
ich bekomme immer alle Bits von B0 bis Bn einer einzigen Zeile und

28:41.990 --> 28:44.650
muss unten dann eine Auswahl treffen, welche Bits mich interessieren.

28:47.550 --> 28:51.890
Gut, das hier ist die Variante, die wir kennengelernt hatten, als wir

28:51.890 --> 28:55.610
die statischen Speicherzellen betrachtet haben.

28:55.690 --> 28:57.390
Bei den statischen Speicherzellen, erinnern Sie sich, bei diesen

28:57.390 --> 29:00.870
Flipflops, sowohl bei der Moos-Speicherzelle wie auch bei der

29:00.870 --> 29:04.810
bipolaren Speicherzelle hatten wir immer zwei Bitleitungen, B0 und B1,

29:04.890 --> 29:07.110
die dann über einen Laserverstärker auf eine gemeinsame Leitung

29:07.110 --> 29:08.230
gebracht wurden.

29:08.230 --> 29:11.150
Das heißt, wir hatten immer entweder hier eine 0 und hier eine 1 oder

29:11.150 --> 29:12.290
hier eine 1 und hier eine 0.

29:13.490 --> 29:16.890
Und über den Stromfluss kann ich dann feststellen, wie die

29:16.890 --> 29:17.770
Datenleitung aussieht.

29:17.850 --> 29:19.690
Ansonsten ist die Konstellation völlig identisch.

29:20.350 --> 29:24.170
Die Auswahl erfolgt über die Zeilenleitung an die Auswahl der

29:24.170 --> 29:24.890
einzelnen Zellen.

29:25.670 --> 29:28.710
Die Spalten werden dann über die Bitsleitungen repräsentiert.

29:28.710 --> 29:31.290
Das heißt, auch hier ist es so, sobald ich hier eine der

29:31.290 --> 29:34.390
Zeilenleitungen aktiviert habe, ist die ganze Zeile aktiv.

29:34.530 --> 29:36.670
Das heißt, die ganze Zeile wird mehrere Bits auslesen.

29:37.150 --> 29:40.310
Und ich brauche unten dann im Prinzip irgendwie, wenn mich nicht alle

29:40.310 --> 29:42.710
Bits interessieren, und nehmen wir an, das ist eine quadratische

29:42.710 --> 29:46.570
Matrix, dann werden mich nicht alle Bits interessieren, weil ich dann

29:46.570 --> 29:51.050
eben das nicht eine Organisation sein wird, mal 8, wenn mich unten 8

29:51.050 --> 29:53.190
Bits interessieren, sondern bei einer quadratischen Matrix würde es

29:53.190 --> 29:55.450
vielleicht sein irgendwas 1024 mal 1024.

29:55.450 --> 29:58.850
Das wäre eine schöne quadratische Matrix, die dann eine Kapazität von

29:58.850 --> 29:59.730
einem Megabit hätte.

30:00.470 --> 30:04.310
Das heißt, ein Megabitspeicher würde 1024 mal 1024 realisiert.

30:04.850 --> 30:08.050
Und das würde bedeuten, ich bekomme hier, wenn ich eine Zeile

30:08.050 --> 30:11.610
auswähle, immer 1024 Bit auf einmal nach unten gelesen, und aus denen

30:11.610 --> 30:12.530
muss ich dann auswählen.

30:13.210 --> 30:16.750
Das ist ein relativ großer Aufwand, deswegen hatten wir auch als

30:16.750 --> 30:20.510
letztes hier die Koinzidentenzellenauswahl hier festgelegt.

30:21.130 --> 30:23.770
Bei der Koinzidentenzellenauswahl hat jede Zelle zwei

30:23.770 --> 30:28.150
Auswahlleitungen, die ist somit also für den Aufbau in der Matrix

30:28.150 --> 30:28.850
optimiert.

30:35.450 --> 30:40.970
Das heißt, ich habe einmal hier eine Auswahlleitung, eine

30:40.970 --> 30:46.550
Auswahlleitung hier, die kommt aus der Zeile heraus, und eine zweite

30:46.550 --> 30:52.940
Auswahlleitung, die kommt aus der Spalte heraus.

30:53.500 --> 30:56.560
Das heißt, jede Zelle hat hier jetzt zwei Auswahlleitungen.

30:58.400 --> 31:02.000
Und damit kann ich, wenn ich jetzt eine bestimmte Zeilenleitung

31:02.000 --> 31:05.160
aktiviere, eine bestimmte Spaltenleitung aktiviere, genau eine Zelle

31:05.160 --> 31:05.740
ansprechen.

31:13.620 --> 31:18.860
Wenn ich jetzt zum Beispiel hergehe und aktiviere die Z1,

31:22.380 --> 31:28.380
und ich aktiviere hier die S0, dann habe ich im Prinzip genau diese

31:28.380 --> 31:30.820
Zelle ausgewählt, und das ist die einzige, die ich ausgewählt habe,

31:30.880 --> 31:31.500
und keine andere.

31:32.080 --> 31:34.840
Das heißt, in diesem Fall wird wirklich nur eine einzige Zelle

31:34.840 --> 31:37.720
ausgewählt, und das hat den Vorteil, dass ich hier unten die

31:37.720 --> 31:42.380
Bitleitungen hier, die kann ich im Prinzip alle zusammenschalten von

31:42.380 --> 31:42.840
diesen Zellen.

31:42.920 --> 31:45.400
Das ist der Trick bei der Koinzidentenzellenauswahl.

31:45.780 --> 31:49.200
Das heißt, ich bekomme nicht eine ganze Zeile bei der Auswahl, wie

31:49.200 --> 31:51.220
wenn ich eine Standard-Spalterzelle habe, sondern ich kann wirklich

31:51.220 --> 31:52.760
mich auf ein Element beschränken.

31:52.760 --> 31:57.620
Das macht also die Auswahllogik viel einfacher, die Auswahllogik, die

31:57.620 --> 31:59.020
hier unten rankommt, viel einfacher.

31:59.100 --> 32:02.940
Hier muss ich eben nicht mehr aus ganz, ganz vielen Speicherzellen

32:02.940 --> 32:04.260
dann noch welche auswählen, wie hier.

32:05.000 --> 32:07.480
Dafür wird die Speicherzelle an sich etwas aufwendiger, weil ich eben

32:07.480 --> 32:09.600
zwei Ansteuerleitungen brauche, und Sie haben gesehen, ich habe die

32:09.600 --> 32:10.500
zusätzliche Logik.

32:10.660 --> 32:13.740
Das war bei den Bipolarzellen ein zusätzlicher Emitter, den ich

32:13.740 --> 32:16.640
brauchte, und bei den CMOS-Zellen waren es zwei zusätzliche

32:16.640 --> 32:18.020
Transistoren, die ich benötigt habe.

32:23.520 --> 32:28.880
Gut, weiterhin kann ich meine Matrize nicht beliebig groß machen, weil

32:28.880 --> 32:34.200
je mehr Speicherzellen ich an eine Auswahlleitung lege, desto größer

32:34.200 --> 32:35.900
ist die Kapazität an dieser Auswahlleitung.

32:36.320 --> 32:40.780
Jede Speicherzelle hat eine kleine elektrische Kapazität, und je mehr

32:40.780 --> 32:44.360
Speicherzellen ich hinbringe, desto mehr Kapazität habe ich.

32:44.360 --> 32:46.600
Vielleicht erinnern Sie sich noch aus den Grundlagen

32:46.600 --> 32:47.960
elektrotechnischer Dinge.

32:48.960 --> 32:54.500
Im Prinzip, wenn ich also meine Auswahlleitung habe, und hier meine

32:54.500 --> 33:01.200
Speicherzelle, dann kann ich hier ein elektrisches Ersatzschaltbild

33:01.200 --> 33:03.900
hernehmen, weil diese Auswahlleitung hat einen elektrischen

33:03.900 --> 33:04.340
Widerstand.

33:04.440 --> 33:06.440
Der ist zwar sehr klein, aber er ist nicht null, das ist kein

33:06.440 --> 33:07.040
Supraleiter.

33:07.040 --> 33:13.540
Das heißt, wir haben hier im Prinzip einen elektrischen Widerstand,

33:13.540 --> 33:17.400
und jede Speicherzelle stellt eine gewisse kapazitäre Kapazität dar.

33:18.060 --> 33:21.700
Wir haben also hier das aus der Elektrolinie klassisch bekannte RC

33:21.700 --> 33:22.080
-Glied.

33:23.260 --> 33:25.980
Und was macht so ein RC-Glied, wenn ich da eine Spannung anlege?

33:26.040 --> 33:29.140
Wenn ich also hier an die Auswahlleitung bei diesem RC-Glied eine

33:29.140 --> 33:32.740
Spannung anlege, also hier, wenn ich am Eingang hier so eine Spannung

33:32.740 --> 33:35.160
anlege, dann sieht die am Ausgang nicht so aus, sondern am Ausgang

33:35.160 --> 33:38.860
sieht, was rauskommt, irgendwie so abgeflacht aus.

33:39.000 --> 33:41.840
Das ist das Klassische, wobei das Produkt aus R mal C die

33:41.840 --> 33:42.740
Zeitkonstante ist.

33:43.200 --> 33:46.640
Das heißt, im Prinzip, so grob geschätzt, man kann hier die Tangente

33:46.640 --> 33:49.840
anlegen im Startpunkt, und dann ist der Zeitpunkt, bei dem die

33:49.840 --> 33:58.200
Tangente den Maximalwert erreicht, das ist die Zeitkonstante.

33:58.200 --> 34:01.180
Und die kann man einfach angeben als das Produkt von R mal C.

34:02.340 --> 34:03.260
Ist aber ja völlig egal.

34:03.400 --> 34:06.260
Das Einzige, was interessant ist, dass je größer diese Kapazität C

34:06.260 --> 34:08.060
wird, desto flacher wird diese Flanke.

34:08.660 --> 34:11.260
Das heißt, desto langsamer steigt das Signal an der Auswahlleitung an.

34:11.700 --> 34:14.540
Das heißt, im Endeffekt, desto langsamer reagiert der Speicher, weil

34:14.540 --> 34:16.500
der Speicher reagiert ja erst, wenn die Auswahlleitung ihren

34:16.500 --> 34:17.540
Schwellwert überschritten hat.

34:18.520 --> 34:21.140
Das heißt, ich kann an der Auswahlleitung nicht beliebig viele

34:21.140 --> 34:23.880
Speicherzellen anbringen, weil je mehr ich anbringe, desto langsamer

34:23.880 --> 34:24.520
wird der Speicher.

34:26.000 --> 34:28.760
Deswegen muss ich hier aufpassen und man macht folgendes.

34:28.840 --> 34:31.840
Wenn also die Anzahl der Speicherzellen so groß werden, dann teilt man

34:31.840 --> 34:36.540
einfach die Matrix- und Untermatrixen auf und hat für jede Untermatrix

34:36.540 --> 34:39.480
die eigene Auswahlleitung, einen eigenen Verstärker für die

34:39.480 --> 34:41.500
Auswahlsignale und kann somit das Problem umgehen.

34:42.420 --> 34:45.360
Das heißt, man wird bei sehr großen Speichern nicht eine

34:45.360 --> 34:48.260
Speichermatrix haben, sondern wird mehrere Speichermatrixen haben, um

34:48.260 --> 34:51.080
eben dieses elektrische Problem des Auswahls in den Griff zu kriegen.

34:53.540 --> 34:55.060
Gut, die Überlegung ist es noch.

34:55.720 --> 35:00.020
Ich habe also jetzt Zeilen und Spalten und die Frage ist, auf der

35:00.020 --> 35:01.620
anderen Seite am Eingang habe ich Adressen.

35:01.740 --> 35:04.000
Der Mikroprozessor, der zeigt mir Adressbits.

35:04.120 --> 35:08.020
Die Frage ist, wie gewinne ich jetzt aus den Adressbits die Zeilen und

35:08.020 --> 35:08.380
Spalten?

35:08.960 --> 35:11.040
Na gut, das kann ich relativ willkürlich machen, das kann ich

35:11.040 --> 35:11.940
irgendwie aufteilen.

35:12.040 --> 35:14.740
Eine Aufteilmöglichkeit ist hier mal angegeben, indem ich zum Beispiel

35:14.740 --> 35:19.060
einfach hergehe, dass die niederwertigen Adressbits einfach mal eine

35:19.060 --> 35:19.940
Zeile auswählen.

35:20.780 --> 35:22.920
Das können wir uns hier an dem Bild nochmal angucken.

35:24.400 --> 35:30.540
Das heißt, ich nehme einfach mal die niederwertigen Adressbits, das

35:30.540 --> 35:40.800
heißt diesen Teil, A0 bis A'i, wenn ich eben Z0 bis Z'i Zeilen habe,

35:41.340 --> 35:45.240
und wähle über diese niedrigen Adressbits, A0 bis A'i, über einen

35:45.240 --> 35:46.820
Decoder einfach die Zeilen aus.

35:46.820 --> 35:52.320
Das heißt, die niedrigen Adressbits bestimmen wir die Zeilen und die

35:52.320 --> 35:57.460
höheren Adressbits, die dekodieren wir ebenfalls über einen Decoder,

35:57.700 --> 35:58.080
die Spalten.

35:59.080 --> 36:02.880
Das wäre also mal eine sehr einfache Methode, wie wir das gewinnen

36:02.880 --> 36:03.160
können.

36:03.300 --> 36:07.260
Also die niedrigen Adressbits hier wählen eine Zeile aus.

36:11.320 --> 36:14.860
Und jetzt habe ich eben das Problem, wenn ich jetzt keine koinzidenten

36:14.860 --> 36:18.400
Zeilenauswahl habe, was ich vorher schon mal angesprochen habe, dann

36:18.400 --> 36:20.880
lese ich bei einer quadratischen Matrix eben die ganze Zeile aus,

36:20.960 --> 36:21.880
brauche aber viel weniger.

36:22.520 --> 36:25.400
Und jetzt kann ich ganz einfach durch die höherwertigen Adressbits

36:25.400 --> 36:26.540
jetzt meine Auswahl treffen.

36:27.300 --> 36:28.880
Das heißt, wir gehen nochmal auf das Bild zurück.

36:31.500 --> 36:34.880
Das heißt, ich nehme meine höheren Adressbits, ebenfalls über einen

36:34.880 --> 36:35.320
Decoder.

36:35.920 --> 36:37.540
Und hier habe ich jetzt einen Spaltenauswahlschalter.

36:37.660 --> 36:39.720
Wie der genau aussieht, werden wir nachher noch ein bisschen genauer

36:39.720 --> 36:40.140
betrachten.

36:41.200 --> 36:43.880
Wesentlich ist, dass dieser Spaltenauswahlschalter jetzt aus der

36:43.880 --> 36:48.480
Vielzahl der vorhandenen Spaltenleitungen ein paar auswählt, nämlich

36:48.480 --> 36:50.860
genau so viele, wie ich hier irgendwie brauche.

36:52.720 --> 36:56.340
Vielleicht hier noch einer und alle anderen entsprechend brach liegen

36:56.340 --> 36:56.660
lässt.

36:56.660 --> 37:00.340
Das heißt also, abhängig von dieser Adresse, die ich hier habe, wird

37:00.340 --> 37:02.980
über den Decoder in den Spaltenauswahlschalter jetzt eine Untermenge

37:02.980 --> 37:06.620
der kompletten Zeile ausgewählt und hier wird das Interface nach außen

37:06.620 --> 37:07.020
geschaltet.

37:07.140 --> 37:09.420
Und hierfür werden zum Beispiel eben die höherwertigen Adressbits

37:09.420 --> 37:09.820
benutzt.

37:09.920 --> 37:11.180
Das heißt, ich habe eine Zweiteilung.

37:11.820 --> 37:14.740
Niederwertige Adressbits wählen mir eine Zeile aus.

37:15.720 --> 37:19.220
Die höherwertigen Adressbits wählen mir jetzt aus dieser Zeile eine

37:19.220 --> 37:22.400
gewisse Untermenge aus, die dann mein eigentliches Datum sind, das ich

37:22.400 --> 37:22.920
haben möchte.

37:23.880 --> 37:26.980
Wie gesagt, wie diese Spaltenauswahl aussieht, betrachten wir uns

37:26.980 --> 37:27.680
nachher noch im Detail.

37:31.460 --> 37:32.760
Das heißt, nachher ist gleich.

37:32.860 --> 37:33.540
Hier haben wir schon das Bild.

37:35.440 --> 37:37.740
Hier können wir uns mal angucken, wie das aussieht, wie so eine

37:37.740 --> 37:38.840
Spaltenauswahl aussieht.

37:40.360 --> 37:41.480
Was man macht, ist folgendes.

37:41.560 --> 37:45.980
Nehmen wir mal an, wir hätten... füllen wir es mal mit konkreten

37:45.980 --> 37:46.840
Zahlen einfach.

37:46.940 --> 37:50.360
Nehmen wir mal an, wir wollten vier Bits nach außen bringen.

37:50.460 --> 37:51.500
Vier Bits ist relativ einfach.

37:51.500 --> 37:54.720
Das heißt, dieses DK-1 wäre in dem Fall drei.

37:56.140 --> 37:59.820
Das heißt, wir wollten von D0 bis D3 auswählen.

38:00.920 --> 38:03.220
In diesem Fall brauchen wir im Prinzip vier solche

38:03.220 --> 38:04.520
Zeilenauswahlschalter.

38:05.200 --> 38:11.240
Und wir müssen unsere Zeile, das hier ist eine Zeile, das hier ist

38:11.240 --> 38:14.880
eine Zeile unserer Speichermatrix, wir unterteilen diese Zeile in

38:14.880 --> 38:15.320
Bündeln.

38:15.460 --> 38:17.980
Und zwar in dem Fall, wenn wir jetzt vier Datenleitungen hier unten

38:17.980 --> 38:20.940
hätten, dann würden wir das in vier Bündel aufteilen.

38:21.980 --> 38:26.360
Und zwar zum Beispiel so, dass wir hier sagen, das hier ist dann das

38:26.360 --> 38:32.500
Bit 0 in der Zeile, das hier ist das Bit 1 in der Zeile, dann kommt

38:32.500 --> 38:35.900
das Bit 2 und das wäre dann das Bit 3 in der Zeile, wobei hier es dann

38:35.900 --> 38:41.420
weiter ginge mit dem Bit 4, hier mit dem Bit 5, hier mit dem Bit 7 bis

38:41.420 --> 38:44.520
zum 7, dann kämen wir hier mit dem Bit 8, Bit 9 und so weiter.

38:44.660 --> 38:46.980
Das heißt, ich werde das Bündel einfach in vierer Schritten aufteilen.

38:47.600 --> 38:51.800
Hier 0, 4, 8, 12, hier 1, 5, 9 etc.

38:52.100 --> 38:54.520
und hier hinten eben 3, 7, 11 und so weiter.

38:55.460 --> 38:58.040
Und damit kann ich jetzt einfach mit Schaltern, mit diesen praktisch

38:58.040 --> 39:00.820
symbolisch dargestellten Schaltern zunächst mal über den Adressdecoder

39:00.820 --> 39:03.760
jetzt aus diesem Bündel, aus jedem Bündel wähle ich einen aus und zwar

39:03.760 --> 39:04.360
immer denselben.

39:04.940 --> 39:07.280
Wenn ich also diesen Schalter auf das erste schalte, dann wähle ich

39:07.280 --> 39:11.460
die Bits 0, 1, 2 ist hier nicht dargestellt, fehlt und 3 aus.

39:11.580 --> 39:13.980
Dann ist genau das, was ich habe, dann habe ich hier die Bits 0 bis 3.

39:13.980 --> 39:18.000
Wenn ich diesen Schalter auf das zweite werde, im Bündel stelle, habe

39:18.000 --> 39:19.640
ich dann die Bits 4 bis 7.

39:20.100 --> 39:23.000
Wenn ich es aufs dritte Bündel stelle, habe ich die Bits entsprechend

39:23.000 --> 39:24.560
8 bis 11 und so weiter.

39:25.320 --> 39:28.840
Und damit kann ich jetzt mit solchen, über diesen Bündelschalter, über

39:28.840 --> 39:32.500
diesen Bündelauswahlschalter kann ich mir im Prinzip jetzt aus meiner

39:32.500 --> 39:35.860
kompletten Zeile immer fortgesetzt 4 Bits auswählen.

39:35.860 --> 39:43.000
Also hier eben die Bits 0 bis 3, dann die Bits 4 bis 7, dann hier die

39:43.000 --> 39:47.900
Bits 8 bis 11, die Bits 12 bis 15 und so weiter.

39:49.720 --> 39:53.160
Das heißt auf diese Art und Weise kann ich dann über den

39:53.160 --> 39:56.160
Adressdecoder, über die höhere Adresse aus meiner kompletten Breite,

39:56.260 --> 40:00.240
die vielleicht jetzt 1024 ist, wenn ich eine 1024x1024 Matrix habe,

40:00.840 --> 40:03.940
kann ich jetzt hier jeweils 4 Bitportionen auswählen und zwar

40:03.940 --> 40:08.440
üblicherweise eben schrittweise Bits 0 bis 3, 4 bis 7, 8 bis 11, 12

40:08.440 --> 40:09.440
bis 15 und so weiter.

40:10.740 --> 40:13.400
Und das Ganze kann ich hier verallgemeinern, wie gesagt, ich denke mal

40:13.400 --> 40:15.820
mit konkreten Zahlen sieht man es am besten, aber das kann natürlich

40:15.820 --> 40:18.700
dieses Bruch nicht 3 sein, das kann irgendwie beliebig jetzt hier von

40:18.700 --> 40:22.300
0 bis K-1 sein und entsprechend organisieren sich die Bündel dann.

40:22.360 --> 40:25.980
Das heißt, gut, was für Werte habe ich hier üblicherweise?

40:26.360 --> 40:29.960
Also es gibt Speicherbausteine, da ist es unten einfach nur 1, das

40:29.960 --> 40:32.420
heißt wir haben nur eine einzige Datenausleitung hier.

40:33.480 --> 40:36.300
Dann ist es sehr einfach, dann ist im Prinzip nur ein Auswahlschalter

40:36.300 --> 40:39.080
da und das Bündel ist die komplette Zeile.

40:40.220 --> 40:43.660
Gebräuchlich sind auch noch 4, eine x4 Organisation, eine x8

40:43.660 --> 40:45.320
Organisation und eine x16 Organisation.

40:45.680 --> 40:48.340
Also bei x4 brauche ich eben wie hier zum Beispiel die 4 Schalter, bei

40:48.340 --> 40:51.380
einer x8 Organisation brauche ich 8 Schalter, bei einer x16

40:51.380 --> 40:53.660
Organisation brauche ich eben die 16 Schalter, wobei die Bündel immer

40:53.660 --> 40:54.280
kleiner werden.

40:54.360 --> 40:56.700
Die einzelnen Bündel werden kleiner, aber dafür werden die Schalter

40:56.700 --> 40:56.960
mehr.

41:00.120 --> 41:02.800
Gut, hier steht es in Form von Schaltern, natürlich sind es nicht

41:02.800 --> 41:05.580
wirklich Schalter, sondern so einen Schalter kann man natürlich auch

41:05.580 --> 41:08.180
sehr einfach mit Moos-Transistoren realisieren.

41:09.100 --> 41:11.960
Hier ist mal dargestellt, wie so ein Schalter mit Moos-Transistoren

41:11.960 --> 41:12.440
aussieht.

41:13.220 --> 41:16.740
Das ist jetzt für einen Bündel so ein Umschalter, der jetzt k

41:16.740 --> 41:21.880
-Positionen hat, hier von 0 bis k-1 und im Prinzip mache ich mir hier

41:21.880 --> 41:24.260
wieder den Transistor als Schalter zu Nutze, das heißt ich habe für

41:24.260 --> 41:26.560
jeden Zweig meines Schalters einen Transistor.

41:27.720 --> 41:32.200
Und über diesen Decoder aktiviere ich jetzt den entsprechenden Zweig.

41:32.580 --> 41:37.960
Das heißt also, wenn hier die Adresse 0 letztendlich anliegt, dann

41:37.960 --> 41:41.980
aktiviere ich diesen Transistor, das heißt ich mache diesen Transistor

41:41.980 --> 41:44.020
leitend und wähle damit dieses Bündel aus.

41:44.540 --> 41:52.280
Wenn hier die Adresse 1 anliegt, dann aktiviere ich diesen Transistor,

41:52.460 --> 41:55.780
wähle also dieses Bündel aus, diese Leitung des Bündels aus und so

41:55.780 --> 41:56.020
weiter.

41:56.980 --> 42:02.100
Und somit kann ich also, indem ich k-Transistoren habe, kann ich im

42:02.100 --> 42:05.600
Prinzip jetzt einen k-wegigen Schalter machen und kann damit innerhalb

42:05.600 --> 42:09.040
meines Bündels der Größe k jetzt hier entsprechend auswählen.

42:10.320 --> 42:13.320
Sie sehen, das ist immer ein Kompromiss, wenn die Organisation sehr

42:13.320 --> 42:16.380
schmal ist, das heißt also, wenn ich sehr kleine, sehr wenige

42:16.380 --> 42:19.920
Datenleitungen habe, dann brauche ich sehr wenige solcher Schalter,

42:20.080 --> 42:21.920
solcher Bündelschalter, aber die haben sehr, sehr viele

42:21.920 --> 42:24.540
Schaltstellungen, also ich brauche sehr viele Transistoren hier.

42:24.540 --> 42:29.480
Wenn ich breitere Organisationen habe, dann brauche ich mehr solcher

42:29.480 --> 42:31.700
Auswahlschalter, die aber dafür weniger Positionen haben.

42:32.080 --> 42:35.700
Im Endeffekt nimmt es sich nicht arg viel.

42:41.200 --> 42:44.080
Gut, wir hatten noch ein paar weitere Steuerleitungen.

42:44.440 --> 42:49.500
Ich kann das Bild nochmal kurz hier nehmen.

42:50.420 --> 42:52.600
Wir hatten da unten noch ein paar Steuerleitungen, die ich gesagt

42:52.600 --> 42:53.680
habe, die erkläre ich später.

42:53.680 --> 42:54.900
Das mache ich genau jetzt.

42:56.720 --> 43:00.380
Also was man üblicherweise hat, ist so eine Leitung, die Chip Select

43:00.380 --> 43:05.000
genannt wird oder Chip Enable und die wählt den ganzen Baustein aus.

43:06.340 --> 43:09.520
Das heißt, wenn ich normalerweise so einen Speicherbaustein in meinem

43:09.520 --> 43:12.060
Mikroprozessor habe, dann werde ich irgendwo vom Mikroprozessor weit

43:12.060 --> 43:14.600
einen Adressdecoder haben, der auf eine bestimmte Adresse aus den

43:14.600 --> 43:18.860
höherwertigen Adressbits die ausdekodiert und wenn dort eine bestimmte

43:18.860 --> 43:21.260
Adresse vorliegt, wird ein Signal erzeugt, das mir einen bestimmten

43:21.260 --> 43:22.460
Speicherbaustein aktiviert.

43:24.680 --> 43:27.640
Dieses Signal nennen wir üblicherweise Chip Select oder Chip Enable.

43:28.140 --> 43:30.660
Auf den Speicher bezogen bedeutet dieses Signal, mit diesem Signal

43:30.660 --> 43:34.020
schalte ich den Speicherbaustein im Prinzip sozusagen ein oder ich

43:34.020 --> 43:34.800
schalte ihn aus.

43:34.960 --> 43:37.060
Wobei aus nicht in dem Sinne bedeutet, dass er seine

43:37.060 --> 43:39.840
Speicherinformationen verliert, sondern nur, dass er inaktiv ist, aber

43:39.840 --> 43:41.620
weiterhin seine Speicherinformationen enthält.

43:41.720 --> 43:44.960
Das heißt die Speichermatrix selber bei Schreib-Lese-Speichern bleibt

43:44.960 --> 43:45.520
unter Strom.

43:46.260 --> 43:48.360
Während hingegen natürlich bei Festwertspeichern kann ich die

43:48.360 --> 43:51.500
Speichermatrix auch vom Strom wegnehmen, weil dort ist ja kein

43:51.500 --> 43:53.600
Problem, die behalten ihre Informationen ja sowieso.

43:55.400 --> 43:58.240
Gut, ebenfalls natürlich nur bei Schreib-Lese-Speichern habe ich ein

43:58.240 --> 44:01.520
Read -Write-Signal, indem ich wähle, möchte ich in meinen Speicher was

44:01.520 --> 44:02.760
schreiben, möchte ich was lesen.

44:04.500 --> 44:06.720
Bei allen Speichern habe ich in der Regel ein Signal, das

44:06.720 --> 44:09.520
üblicherweise Output Enabler ähnlich heißt, mit dem ich jetzt nur die

44:09.520 --> 44:12.720
Ausgabetreiber einfach freischalten kann und sagen kann, ich möchte

44:12.720 --> 44:14.840
jetzt einfach nur den Ausgang freischalten.

44:16.520 --> 44:18.740
Vielleicht fragen Sie, warum brauche ich zwei Signale?

44:18.820 --> 44:20.880
Warum brauche ich ein Chip-Select hier und warum brauche ich ein

44:20.880 --> 44:21.540
Output -Enable?

44:21.880 --> 44:25.260
Das ist relativ einfach, wenn ich Schreib-Lese-Speicher habe und ich

44:25.260 --> 44:28.680
möchte ihn schreiben, dann bedeutet das, ich muss ihn selektieren,

44:28.820 --> 44:31.380
aber ich möchte nicht, dass er am Ausgang mir irgendwelche Daten

44:31.380 --> 44:31.720
liefert.

44:31.820 --> 44:34.080
Das heißt, dann werde ich ihn selektieren, aber ich werde ihm kein

44:34.080 --> 44:36.700
Output -Enable geben, weil ich möchte was in den Speicher schreiben,

44:36.760 --> 44:38.720
ich möchte nicht, dass der Speicher einen Wert liest.

44:39.380 --> 44:41.720
Wenn ich hingegen ihn lesen möchte, dann werde ich sowohl ein Chip

44:41.720 --> 44:43.160
-Select wie ein Output-Enable geben.

44:44.840 --> 44:48.220
Gut, und wenn ich Festwert-Speicher habe, die ich programmieren kann,

44:48.280 --> 44:53.000
die ich selber programmieren kann, also EEPROMs, PROMs, EEPROMs etc.,

44:53.000 --> 44:55.920
dann werde ich irgendwo vielleicht noch eine Programmleitung irgendwo

44:55.920 --> 44:58.340
haben, die dafür sorgt, dass jetzt, wir haben ja gesehen, beim

44:58.340 --> 45:01.920
Programmieren bedeutet irgendwie entweder Sicherung durchbrennen,

45:02.140 --> 45:04.540
Diode zerstören, Ladung aufbringen.

45:04.640 --> 45:06.940
In allen Fällen war irgendwie eine hohe Spannung, eine Programmier

45:06.940 --> 45:07.720
-Spannung verbunden.

45:07.720 --> 45:12.000
Und dieses Programm-Signal bedeutet letztendlich nichts anderes, als

45:12.000 --> 45:14.700
dass diese Programmier-Spannung an die Speichermatrix angebracht wird

45:14.700 --> 45:16.400
und dort eben für den Programmiervorgang sorgt.

45:21.010 --> 45:25.030
Gut, hier haben wir nochmal ein Beispiel, ein sehr einfaches Beispiel,

45:25.150 --> 45:28.430
wie jetzt aus einer bestimmten Adresse eine Speicherzelle selektiert

45:28.430 --> 45:28.670
wird.

45:29.310 --> 45:31.590
Also wir haben hier jetzt einfach mal eine 4-Bit-Adresse.

45:34.330 --> 45:34.870
Ups,

45:42.220 --> 45:43.000
geht nicht weg.

45:43.840 --> 45:45.300
Manchmal kapiere ich dieses Teil nicht.

45:49.520 --> 45:51.740
Denken Sie sich dann den violetten Strich weg.

45:52.040 --> 45:53.220
Keine Ahnung, wie man ihn wegkriegt.

45:58.870 --> 45:59.890
Ja, doch geschafft.

46:01.630 --> 46:09.150
Gut, also wir haben hier eine 4-Bit-Adresse, bestehend von A0.

46:09.650 --> 46:11.510
In dem Fall zum Beispiel bis A3.

46:14.270 --> 46:16.850
Das heißt, wir können maximal 16 Speicherzellen damit adressieren.

46:17.310 --> 46:21.110
Dementsprechend haben wir hier eine quadratische Matrix mit M gleich 4

46:21.110 --> 46:22.910
-Bit und N gleich 4-Wortleitung.

46:24.010 --> 46:27.370
Na gut, nach unserem Prinzip, das wir vorher gesehen haben, bedeutet

46:27.370 --> 46:31.230
das Folgendes, wir nehmen zum Beispiel die niederwertigen Bits, A0 und

46:31.230 --> 46:33.190
A1, um die Zeile auszuwählen.

46:33.250 --> 46:35.650
Das heißt, die Zeilenadresse in dem Fall wäre 1, 0.

46:36.950 --> 46:40.430
Das wäre, wenn wir hier einfach nummerieren, von 0, 1, 2, 3, das Ganze

46:40.430 --> 46:44.130
als Dualzahl betrachten, würde uns diese Zeilenadresse 1, 0 diese

46:44.130 --> 46:45.110
Zeile auswählen.

46:46.210 --> 46:50.170
Und die höherwertigen Bits, die Spaltenauswahl, die wählen jetzt

46:50.170 --> 46:55.110
hiervon die Spalte 1, 1, sprich also hier die Spalte 3 und damit habe

46:55.110 --> 46:57.430
ich genau dieses eine Speicherelement adressiert.

46:57.510 --> 47:01.670
Das heißt, diese Adresse 1, 1, 1, 0 würde mir in dieser Speichermatrix

47:01.670 --> 47:04.470
einfach die hier angekreiste rote oder schwarze, wie ich es nochmal

47:04.470 --> 47:05.930
gemacht habe, Speicherzeile aktivieren.

47:08.150 --> 47:11.110
Ich denke, es zeigt relativ gut, wie eben jetzt aus einer Adresse, in

47:11.110 --> 47:13.570
dem Fall einer linearen 4-Bit-Adresse, wie sie vom Mikroprozessor

47:13.570 --> 47:16.710
geliefert wird, hier die Matrix angesteuert wird und damit ein

47:16.710 --> 47:19.290
bestimmtes Speicherelement in der Matrix ausgewählt wird.

47:20.130 --> 47:23.550
Und Sie sehen auch hier deutlich nochmal die Leitungsersparnis.

47:24.190 --> 47:27.110
Wenn ich diese 16 Speicherzeilen einzeln, ich meine, ich könnte diese

47:27.110 --> 47:30.030
16 Speicherzeilen auch einzeln ansteuern, das wäre machbar, wäre im

47:30.030 --> 47:30.870
Prinzip kein Problem.

47:32.050 --> 47:33.690
Ich könnte das als Beispiel einfach nochmal einfügen.

47:34.130 --> 47:38.090
Wenn ich diese 16 Speicherzeilen einzeln anspeichern sprechen wollte,

47:38.590 --> 47:45.610
also Speicherzeile 0 bis zur Speicherzeile 15, dann kann ich das

47:45.610 --> 47:45.910
machen.

47:46.030 --> 47:47.650
Ich bräuchte hier nur einen großen Decoder.

47:50.990 --> 47:57.190
Hier würde ich meinen A0 bis A3 anschließen.

47:57.730 --> 48:00.490
Und was ich brauche, ist ein 4 zu 16 Decoder, wie wir ihn in der TE1

48:00.490 --> 48:03.110
kennengelernt haben, also hier ein 4 zu 16.

48:03.250 --> 48:06.170
Das heißt, hier sind 16 Ausgangsleitungen und jede dieser

48:06.170 --> 48:09.570
Ausgangsleitungen hier steuert ein Speicherelement.

48:09.690 --> 48:13.170
Das heißt, insgesamt brauche ich hier dann 16 Auswahlleitungen hier,

48:13.850 --> 48:15.070
um die Speicherzeilen anzusprechen.

48:15.570 --> 48:16.770
Jetzt schauen wir uns das mal zurück an.

48:16.770 --> 48:18.110
Wir sind bei unserer quadratischen Matrix.

48:18.250 --> 48:19.230
Wie viele Leitungen haben wir da?

48:19.890 --> 48:22.830
1, 2, 3, 4, 5, 6, 7, 8.

48:22.890 --> 48:23.790
Da haben wir nur 8 Leitungen.

48:24.770 --> 48:25.850
Das ist der Vorteil.

48:25.950 --> 48:29.810
Wir haben also hier nur die Hälfte der Leitungen und je größer die

48:29.810 --> 48:31.630
Matrix wird, desto günstiger wird das Verhältnis.

48:35.090 --> 48:35.490
Gut.

48:37.590 --> 48:40.050
Ich möchte jetzt ein bisschen weiter darauf eingehen.

48:40.310 --> 48:44.310
Jede Klasse oder jede Art von Speicherbausteinen hat eine gewisse

48:44.310 --> 48:47.270
typische Organisation, die für den Speicherbaustein klassifiziert

48:47.270 --> 48:47.510
sind.

48:47.590 --> 48:50.410
Ich möchte jetzt einfach mal die einzelnen Speicherbausteine hernehmen

48:50.410 --> 48:53.890
und exemplarisch mal zeigen, wie sind diese Speicherbausteine

48:53.890 --> 48:54.530
organisiert.

48:54.910 --> 48:58.270
Wir fangen mal wieder mit den Festwertspeicherbausteinen an und

48:58.270 --> 49:02.970
betrachten dort mal, beginnen die ROMs, die reinen Read-Only-Memories.

49:03.130 --> 49:07.450
Das waren ja, wenn Sie sich erinnern, die Speicherbausteine, die in

49:07.450 --> 49:09.650
der Firma, bei der Herstellung schon programmiert worden sind.

49:09.650 --> 49:11.110
Die wurden durch die Maske programmiert.

49:11.270 --> 49:14.690
Das heißt, in der Maske ist die Programmierung gegeben, indem eine

49:14.690 --> 49:15.870
Diode vorhanden ist oder nicht.

49:16.850 --> 49:19.870
Oder eine Basis eines Transistors eine Verbindung hat oder nicht.

49:20.630 --> 49:24.390
Oder ein Isolationsbereich eines Feldeffekttransistors, sehr großes

49:24.390 --> 49:25.070
oder sehr schmal.

49:27.090 --> 49:27.470
Gut.

49:27.590 --> 49:29.230
Wie sind solche Bausteine organisiert?

49:31.230 --> 49:34.530
Natürlich, diese Bausteine müssen wirklich nur gelesen werden.

49:34.530 --> 49:38.150
Das heißt, eine wesentliche Eigenschaft ist, dass ich in dem Fall auf

49:38.150 --> 49:40.990
jeden Fall nur einen unidirektionalen Datenbustreiber habe, da bei

49:40.990 --> 49:43.390
diesen Bausteinen wirklich in jedem Fall nur Information von innen

49:43.390 --> 49:44.230
nach außen fließt.

49:44.630 --> 49:47.030
Es ist niemals gegeben, dass eine Information in die andere Richtung

49:47.030 --> 49:47.850
fließt.

49:50.110 --> 49:50.530
Gut.

49:50.690 --> 49:54.450
Diese Bausteine, das ist ein typischer Erfahrungswert, sind meistens

49:54.450 --> 49:55.470
byteweise organisiert.

49:55.470 --> 49:57.430
Das heißt, sie haben Organisationen mal 8.

49:58.690 --> 50:07.230
16 Kb mal 8, also 16 Kb, 16k mal 8, 32k mal 8, 128k mal 8, 256k mal 8,

50:07.690 --> 50:09.530
512k mal 8 und so weiter.

50:10.110 --> 50:11.250
In der Größe sind die organisiert.

50:11.330 --> 50:14.390
Das heißt, in der Regel haben die einen byteweisen Ausgang, immer 8

50:14.390 --> 50:15.190
Datenleitungen.

50:15.710 --> 50:18.210
Das heißt, wir haben die Spaltenauswahl brauchen wir 8 solcher

50:18.210 --> 50:20.690
Multiplexer oder Schalter, wie wir sie kennengelernt haben.

50:22.810 --> 50:25.770
Die Aktivierung der Bausteine geschieht durch Chip-Enable.

50:26.390 --> 50:29.850
Ich hatte ja vorhin gesagt, warum brauche ich zwei Signale, Chip

50:29.850 --> 50:30.970
-Select und Chip-Enable.

50:32.950 --> 50:36.450
Der Grund war bei einem Schreib-Lese-Speicher, wenn ich einen Baustein

50:36.450 --> 50:39.270
schreiben möchte, dann muss ich ihn zwar enablen, aber ich möchte

50:39.270 --> 50:40.550
keine Ausgangssignale haben.

50:40.650 --> 50:42.890
Das heißt, da würde ich Chip-Select oder Chip-Enable aktivieren,

50:43.330 --> 50:44.390
Output -Enable aber nicht.

50:45.390 --> 50:48.510
Na gut, bei einem Festwertspeicher wie einem ROM, das ich nur lesen

50:48.510 --> 50:50.270
kann, habe ich diesen Fall nicht.

50:50.270 --> 50:52.490
Das heißt, in diesem Fall kann ich mir sehr gut eine von beiden

50:52.490 --> 50:56.090
Leitungen sparen und kann sie z.B.

50:56.230 --> 50:57.010
miteinander verknüpfen.

50:58.750 --> 51:00.670
Ich kann das aber auch bleiben lassen.

51:01.350 --> 51:04.350
Ich kann beide Leitungen verhalten sein und dann habe ich den Vorteil,

51:04.410 --> 51:07.590
ich kann eine Power-Down-Schaltung einführen, weil ich nämlich genau

51:07.590 --> 51:11.410
dann, wenn der Baustein nicht angesprochen ist, ich einfach meine

51:11.410 --> 51:14.370
Speichermatrix nicht mehr mit Spannung versorge.

51:14.370 --> 51:16.750
Bei einem Festwertspeicher ist das kein Problem, das kann ich machen.

51:17.170 --> 51:19.230
Ein Festwertspeicher verliert seine Information nicht, wenn die

51:19.230 --> 51:19.910
Spannung weg ist.

51:20.010 --> 51:23.610
Das heißt, ich kann durchaus der Speichermatrix einfach den Strom

51:23.610 --> 51:26.390
entziehen und damit kann ich eine gewaltige Menge Energie sparen.

51:27.530 --> 51:31.150
Es hat allerdings den Nachteil, wenn ich das tue, wenn ich z.B.

51:31.270 --> 51:37.910
so etwas mache, was man gerne macht, ich verbinde Chip-Enable mit so

51:37.910 --> 51:38.890
einer Power-Down-Logik.

51:38.890 --> 51:41.150
Das heißt, wenn Chip-Enable abgeschaltet ist, wenn der Chip nicht

51:41.150 --> 51:44.950
aktiviert ist, wird die Spannungsversorgung komplett für die

51:44.950 --> 51:46.150
Speichermatrix abgeschaltet.

51:47.510 --> 51:49.130
Als zweites habe ich Output-Enable.

51:49.190 --> 51:52.990
Mit Output-Enable deaktiviere ich nur die Ausgangstreiber, lasse aber

51:52.990 --> 51:54.130
die Speichermatrix unter Strom.

51:54.670 --> 51:57.930
Dann ist natürlich die Konsequenz der, dass wenn ich Output-Enable

51:57.930 --> 52:00.750
benutze, dass dann der Speicher schneller angesprochen werden kann,

52:00.830 --> 52:03.310
weil es dauert natürlich auf jeden Fall länger, die komplette

52:03.310 --> 52:05.930
Speichermatrix wieder unter Strom zu nehmen und dann einen Wert aus

52:05.930 --> 52:08.530
dem Speicher auszulesen, als wenn die Speichermatrix schon von Beginn

52:08.530 --> 52:11.550
unter Strom ist und ich nur noch die Ausgangstreiber reithalten muss.

52:11.650 --> 52:15.570
Das heißt, die Zeit von Output-Enable zu Daten da wird kürzer sein,

52:15.650 --> 52:17.010
als die von Chip-Enable zu Daten da.

52:17.070 --> 52:19.790
Deswegen hat man oft doch dann beide Signale, auch bei

52:19.790 --> 52:21.230
Festwertspeicherbausteinen.

52:23.490 --> 52:25.810
Das heißt, man hat in der Regel so eine Organisation wie hier

52:25.810 --> 52:26.410
dargestellt.

52:27.290 --> 52:30.630
Ich habe hier die Ausgangstreiber, die sind hier, die sind unidirekt,

52:30.770 --> 52:31.890
sondern nur nach außen gerichtet.

52:33.550 --> 52:38.270
Sie werden genau dann freigegeben, wenn sowohl Chip-Enable wie Output

52:38.270 --> 52:39.310
-Enable aktiviert ist.

52:39.390 --> 52:42.250
In dem Fall werden die Treiber nach außen freigegeben, während

52:42.250 --> 52:46.910
gleichzeitig Chip-Enable noch hier auf die Power-Down-Logik wirkt.

52:47.010 --> 52:50.190
Das heißt, wenn Chip-Enable deaktiviert ist, wird die Speichermatrix

52:50.190 --> 52:50.850
hier abgeschaltet.

52:51.090 --> 52:54.490
Wenn ich Chip-Enable aktiviert lasse und nur Output-Enable

52:54.490 --> 52:57.410
deaktiviere, ist der Baustein nach außen hin auch im Prinzip tot.

52:57.410 --> 53:00.670
Also er ist nach außen abgeschaltet, aber die Speichermatrix ist unter

53:00.670 --> 53:02.750
Strom und ich kann einfach schneller wieder zugreifen und schneller

53:02.750 --> 53:03.510
reaktivieren.

53:05.510 --> 53:09.130
Gut, hier sind so ein paar typische Werte, also Kapazität heutiger ROM

53:09.130 --> 53:11.150
-Bausteine ist so bis zu 16 Megabit.

53:11.310 --> 53:17.710
In Organisationsform irgendwie 128K x 8, 64K x 16, aber auch 256K x 8

53:17.710 --> 53:18.710
gibt es heute schon und mehr.

53:19.650 --> 53:24.490
Die Zugriffszeiten sind nicht besonders gut, normalerweise so um die

53:24.490 --> 53:25.970
200 bis 300 Nanosekunden.

53:26.770 --> 53:29.590
Der Energieverbrauch, hier kann man es deutlich sehen, also aktiv, die

53:29.590 --> 53:33.090
Speichermatrix unter Strom etwa 75 bis 300 Milliwatt.

53:33.470 --> 53:36.470
Wenn ich die Speichermatrix vom Strom entferne, dann nur noch 2

53:36.470 --> 53:36.970
Milliwatt.

53:37.430 --> 53:41.770
Gehäuse, irgendwas, Dual Inline Package, 28 Anschlüsse, gegebenenfalls

53:41.770 --> 53:42.110
auch mehr.

53:45.010 --> 53:47.450
Gut, betrachten wir ROM- und EPROM-Bausteine.

53:48.350 --> 53:50.250
Von der äußeren Organisation sind die sehr ähnlich.

53:50.250 --> 53:53.190
Das heißt also auch hier meistens eine Beidweise Organisation x 8.

53:54.150 --> 53:57.430
Allerdings haben die die Möglichkeit, bei PROMS und EPROMS habe ich

53:57.430 --> 53:59.310
als Anwender die Möglichkeit zu programmieren.

53:59.430 --> 54:01.070
PROMS nur einmal, EPROMS öfter.

54:02.250 --> 54:04.430
Das heißt aber letztendlich, dass der innere Aufbau natürlich

54:04.430 --> 54:06.390
komplizierter sein muss, weil er muss die Programmierung

54:06.390 --> 54:07.070
berücksichtigen.

54:07.350 --> 54:10.530
Insbesondere werden die Datenbustreiber jetzt bidirektional, weil ich

54:10.530 --> 54:13.510
eben nicht nur diesen Baustein lesen, sondern auch unter bestimmten

54:13.510 --> 54:15.490
Bedingungen ihn schreiben kann, nämlich beim Programmieren.

54:16.930 --> 54:19.910
Auch hier werden eben die Datenbustreiber wieder mit Chip-Enable und

54:19.910 --> 54:21.170
Output -Enable gesteuert.

54:21.590 --> 54:26.110
Auch hier kann ich die Speichermatrix vom Strom sozusagen abhängen,

54:26.190 --> 54:27.690
wenn der Baustein deaktiviert ist.

54:28.530 --> 54:31.690
Das Programmieren starte ich in der Regel durch eine spezielle

54:31.690 --> 54:35.970
Programmleitung, die bewirkt, dass die Programmierspannung auf die

54:35.970 --> 54:37.290
Speichermatrix geschaltet wird.

54:37.910 --> 54:40.330
Das heißt, hier sieht der Aufbau etwas komplexer aus.

54:41.010 --> 54:44.290
Wir sehen hier haben wir wieder den Datentreiber, der ist jetzt nicht

54:44.290 --> 54:45.430
unidirektional, der ist bidirektional.

54:46.050 --> 54:48.690
Das heißt, er geht einmal in die Richtung und er geht einmal in die

54:48.690 --> 54:49.010
Richtung.

54:49.110 --> 54:52.250
Ich kann es entsprechend durch zwei Steuerleitungen hier wählen, in

54:52.250 --> 54:54.150
welche Richtung der Baustein arbeiten soll.

54:56.390 --> 55:00.170
Na gut, wir können hier entsprechend sehen, wann wir den Baustein in

55:00.170 --> 55:01.090
welche Richtung schalten.

55:01.230 --> 55:04.450
Das heißt also, wenn wir nicht programmieren, wenn Chip-Enable

55:04.450 --> 55:07.230
aktiviert ist und wenn Output-Enable aktiviert ist, unter diesen

55:07.230 --> 55:09.250
Bedingungen schalten wir den Baustein nach außen.

55:09.810 --> 55:13.830
Wenn wir hingegen programmieren und Chip-Enable aktiviert ist, dann

55:13.830 --> 55:14.970
schalten wir den Baustein nach innen.

55:15.570 --> 55:19.010
Das heißt also, dann nach innen, wenn Chip-Enable und Programm aktiv

55:19.010 --> 55:19.710
ist, nach innen.

55:20.090 --> 55:23.250
Wenn Chip-Enable aktiv ist, Output-Enable aktiv ist und nicht Programm

55:23.250 --> 55:25.410
-Enable, dann schalten wir den Treiber nach außen.

55:26.250 --> 55:28.970
Und für alle anderen Zustände ist der Treiber abgeschaltet.

55:30.490 --> 55:33.370
Dann haben wir die Power-Down-Logik, die können wir machen wie beim

55:33.370 --> 55:33.690
Brom.

55:34.190 --> 55:37.730
Das heißt, wir können über Chip-Enable die Speichermatrix stromlos

55:37.730 --> 55:38.010
machen.

55:38.730 --> 55:41.630
Und über das Programm müssen wir jetzt zusätzlich versorgen, dass die

55:41.630 --> 55:43.990
Programmierspannung, die normalerweise auch nochmal ein extra Eingang

55:43.990 --> 55:46.070
ist, hier in die Speichermatrix geschaltet wird.

55:46.130 --> 55:49.610
Das heißt normalerweise, wenn nicht Programmierbetrieb ist, dann wird

55:49.610 --> 55:51.590
die Speichermatrix mit 5 Volt versorgt.

55:52.390 --> 55:55.230
Wenn hingegen Programmierbetrieb ist, dann wird von außen die

55:55.230 --> 55:58.130
Programmierspannung irgendwas zwischen 12 und 21 Volt normalerweise

55:58.130 --> 56:00.630
angelegt, um eben irgendwelche Sicherungen durchzubrennen,

56:00.750 --> 56:04.030
irgendwelche Dioden platt zu bügeln oder irgendwelche Ladungen oder

56:04.030 --> 56:05.190
Floating Gates aufzubringen.

56:06.930 --> 56:12.350
Typische Daten hier, Organisationsform 4 Megabit und auch heute mehr,

56:13.090 --> 56:14.930
zum Beispiel 128k mal 8.

56:15.710 --> 56:18.550
Die Zugriffszeiten sind stark unterschiedlich.

56:18.630 --> 56:22.890
E-Broms haben auch ziemlich schlechte Zugriffszeiten, im Bereich von

56:22.890 --> 56:24.470
150 bis 450 Nanosekunden.

56:25.030 --> 56:26.330
Broms sind hingegen sehr schnell.

56:27.090 --> 56:29.590
Broms können bis 35 Nanosekunden runtergehen.

56:30.970 --> 56:33.630
Die Leistungsaufnahme hängt ein bisschen davon ab, ob ich CMOS oder

56:33.630 --> 56:34.290
NMOS habe.

56:34.950 --> 56:38.510
Also bei CMOS aktiv 100mW, inaktiv 5mW.

56:38.630 --> 56:42.790
Wenn ich NMOS habe, aktiv 600mW, Standby 200mW.

56:42.890 --> 56:45.990
Auch hier sehen Sie mal relativ deutlich den Unterschied zwischen der

56:45.990 --> 56:49.310
CMOS -Technik, wo also im ruhigen Zustand, im statischen Zustand kein

56:49.310 --> 56:52.570
Strom fließt, und NMOS-Technik, bei der eben auch im statischen

56:52.570 --> 56:53.710
Zustand Strom fließt.

56:54.030 --> 56:57.270
Gehäuse Dual Inlet Packet 24, 32, 40 Anschlüsse.

57:00.150 --> 57:03.510
Gut, hier mal so ein paar Formen, also so kann so ein Käfer aussehen.

57:04.190 --> 57:06.430
Das wäre so ein 27356, das wäre ein E-Brom.

57:08.990 --> 57:11.670
256kbit, hier sind verschiedene Chip-Matrixen.

57:12.530 --> 57:15.330
Interessant ist Folgendes, Sie erinnern sich an E-Broms, die werden

57:15.330 --> 57:16.410
durch UV-Licht gelöscht.

57:17.230 --> 57:19.790
Dazu haben die hier also so ein kleines Glasfenster, sieht man hier,

57:21.410 --> 57:24.550
in dem ich den Chip sehen kann, und dann kann ich diesen Chip unter

57:24.550 --> 57:27.410
eine UV-Lampe legen oder in so ein Löschgerät, wo eine UV-Lampe drin

57:27.410 --> 57:29.130
ist, und dann kann der gelöscht werden.

57:30.310 --> 57:32.510
Was es jetzt auch noch gibt, sieht man hier unten, das ist ein

57:32.510 --> 57:33.390
sogenanntes OTP.

57:34.450 --> 57:37.390
Das ist ein Abkürzung für One-Time Programmable ROM.

57:37.650 --> 57:41.130
Das ist genauso auch ein E-Brom, hat aber kein Fenster.

57:42.230 --> 57:45.090
Das heißt, dieses E-Brom kann ich nur ein einziges Mal programmieren.

57:45.170 --> 57:47.310
Das ist also im Prinzip wie ein Brom, nur dass es intern E-Brom

57:47.310 --> 57:48.070
-Technologie hat.

57:48.070 --> 57:49.930
Die Frage ist, warum macht man sowas?

57:50.030 --> 57:51.890
Auf den ersten Blick ist es ein Risik.

57:52.150 --> 57:54.770
Warum baue ich ein E-Brom und baue dann kein Fenster ein?

57:55.270 --> 57:59.970
Die Gründe sind rein ökonomischer Natur, weil E-Broms werden in sehr

57:59.970 --> 58:03.670
hohen Stückzahlen produziert, sind also sehr billig von der Produktion

58:03.670 --> 58:03.950
her.

58:04.470 --> 58:07.810
Dieses Glasfenster im Chip ist ein Quarzglasfenster, das ist sehr

58:07.810 --> 58:08.110
teuer.

58:08.730 --> 58:12.130
Deswegen lohnt es rechnerisch, ein E-Brom zu produzieren und ohne

58:12.130 --> 58:15.050
Fenster zu bauen, weil es billiger ist, als ein Brom zu produzieren.

58:16.010 --> 58:18.710
Einfach die Technologie des E-Broms ist sehr preiswert, weil es in

58:18.710 --> 58:20.050
großen Stückzahlen produziert wird.

58:20.110 --> 58:23.290
Das Fenster ist aber sehr teuer, also lohnt die Kombination E-Brom

58:23.290 --> 58:24.990
ohne Fenster, ist billiger als ein Brom.

58:25.570 --> 58:27.190
Deswegen gibt es diese OT-Broms.

58:32.490 --> 58:36.550
Gut, betrachten wir noch die E-Brom-Bausteine, also die, die ich auch

58:36.550 --> 58:37.530
elektrisch wieder löschen kann.

58:39.590 --> 58:41.870
Da haben wir jetzt schon mehrfach an mehreren Gelegenheiten, an

58:41.870 --> 58:43.050
mehreren Stellen eben kennengelernt.

58:43.050 --> 58:46.090
Wir haben die E-Brom-Speicherzelle, dieser Flotox-Transistor, der muss

58:46.090 --> 58:47.570
für jeden Programmieren gelöscht werden.

58:48.150 --> 58:50.150
Es muss eine Ladung auf das Loading Gate aufgebracht werden.

58:50.250 --> 58:52.130
Das heißt, diese Bausteine haben in der Regel zunächst mal eine

58:52.130 --> 58:53.250
automatische Löschhaltung.

58:55.050 --> 58:57.710
Weiterhin ist es so, dieses Programmieren einer Zelle, das dauert

58:57.710 --> 58:59.590
verdammt lange, also 10 Millisekunden.

59:01.530 --> 59:06.150
Da ich es aber nicht möchte, von außen die Daten so lange anliegen zu

59:06.150 --> 59:09.670
lassen, habe ich in der Regel in einem Baustein Register, die die

59:09.670 --> 59:12.290
Datenadressen so lange zwischenspeichern, stabil halten, bis die

59:12.290 --> 59:13.330
Programmierung angelegt ist.

59:13.410 --> 59:16.270
Das heißt, ich muss außen am Baustein die Daten und Adressen nur kurz

59:16.270 --> 59:19.490
anlegen und interne Register halten die Daten dann so lange, bis

59:19.490 --> 59:22.850
wirklich dieser sehr lange Programmierzyklus gegeben ist.

59:24.050 --> 59:25.430
Weiterhin gibt es noch folgende Möglichkeit.

59:25.650 --> 59:29.070
Einige dieser Bausteine ermöglichen es, oder viele, im sogenannten

59:29.070 --> 59:30.990
Page -Mode programmiert zu werden.

59:31.850 --> 59:34.370
Dort kommt wieder das Spiel mit dieser Speicherzeile, mit dieser

59:34.370 --> 59:35.270
Matrix ins Spiel.

59:35.850 --> 59:39.070
Beim Page-Mode nehme ich jetzt einfach eine komplette Zeile, so eine

59:39.070 --> 59:42.110
Zeile wird auch Page und Seite genannt, und programmiere die auf einen

59:42.110 --> 59:42.510
Schlag.

59:42.610 --> 59:47.190
Das heißt, wenn ich den Baustein programmieren möchte, dann speichere

59:47.190 --> 59:50.090
ich alle Daten, die ich programmieren möchte, für eine Zeile zunächst

59:50.090 --> 59:51.670
mal in einem Register im Baustein zwischen.

59:51.770 --> 59:54.110
Das heißt, ich habe ein komplettes Register für eine Zeile im

59:54.110 --> 59:57.950
Baustein, speichere die zwischen und dann programmiere ich die ganze

59:57.950 --> 59:58.970
Zeile auf einen Schlag.

59:59.150 --> 01:00:01.510
Das dauert genauso lange, wenn ich eine einzelne Zelle programmiere

01:00:01.510 --> 01:00:04.030
und habe aber dann eine ganze Zeile erwischt.

01:00:04.030 --> 01:00:08.150
Das bedeutet aber, ich muss die Daten nacheinander anlegen, in der

01:00:08.150 --> 01:00:09.530
Reihenfolge mit aufsteigenden Adressen.

01:00:09.670 --> 01:00:11.330
Das ist aber beim Programmieren ja kein Problem, das werde ich

01:00:11.330 --> 01:00:12.430
normalerweise sowieso tun.

01:00:14.350 --> 01:00:17.690
Das heißt, der Baustein ist durchaus durchweg komplizierter.

01:00:18.290 --> 01:00:21.690
Er besitzt natürlich auch, wie bisher, bidirektionale Treiber.

01:00:23.410 --> 01:00:27.090
Dann haben wir hier im Treiber natürlich ein Pufferregister, um das

01:00:27.090 --> 01:00:30.370
gerade aktuell zu programmierende Datum zwischenzuspeichern.

01:00:30.370 --> 01:00:33.370
Das gleiche hier bei den Adressen, haben wir ein Adressregister, um

01:00:33.370 --> 01:00:34.370
die Adresse zwischenzuspeichern.

01:00:35.970 --> 01:00:38.790
Wir haben hier entsprechende Steuerungen, PowerDown, was kennenlernen.

01:00:38.910 --> 01:00:42.890
Und das Interessante ist, wir haben hier im Deko eben auch vielfach

01:00:42.890 --> 01:00:45.190
dieses Seitenpuffer, dieses Seitenregister.

01:00:45.270 --> 01:00:48.370
Das heißt, ich kann hier die Daten in den Bausteinen zunächst mal

01:00:48.370 --> 01:00:50.510
einzelweitweise zum Beispiel einschreiben.

01:00:51.590 --> 01:00:54.610
Die werden zunächst hier zwischengespeichert, werden dann hier in das

01:00:54.610 --> 01:00:57.230
Register übertragen, dann kann ich das nächste Datum hier

01:00:57.230 --> 01:01:00.130
zwischenspeichern und somit kann ich eine komplette Zeile füllen.

01:01:00.750 --> 01:01:02.350
Oder eine Page, eine Seite.

01:01:02.970 --> 01:01:05.430
Und sobald diese Page voll ist, sage ich, okay, jetzt programmiere ich

01:01:05.430 --> 01:01:06.290
die Page auf einmal.

01:01:07.130 --> 01:01:09.890
Und damit kann ich den Programmiervorgang von EEBOM-Bausteinen

01:01:09.890 --> 01:01:10.870
erheblich beschleunigen.

01:01:12.930 --> 01:01:13.990
Wo ist denn nass geworden?

01:01:19.490 --> 01:01:25.890
Gut, verlassen wir damit die Festwertspeicherbausteine, kommen wir zu

01:01:25.890 --> 01:01:27.330
den Schreib-Lesen-Speicherbausteinen.

01:01:29.010 --> 01:01:31.230
Natürlich haben wir bei allen Schreib-Lesen-Speicherbausteinen

01:01:31.230 --> 01:01:33.250
ebenfalls bidirektionale Datenbus-Treiber.

01:01:35.370 --> 01:01:38.310
Auch hier gibt es relativ große Unterschiede, je nachdem, was für eine

01:01:38.310 --> 01:01:39.470
Art von Baustein wir haben.

01:01:40.550 --> 01:01:42.550
Fangen wir mal an mit statischen REM-Bausteinen.

01:01:43.430 --> 01:01:44.670
Das sind eher die einfachsten.

01:01:44.870 --> 01:01:46.670
Wir haben eine bidirektionale Datenbus-Schiedsstelle.

01:01:47.410 --> 01:01:49.970
Wir haben eine Aktivierung des Bausteins, das Chip-Enable.

01:01:50.170 --> 01:01:53.530
Wir haben eine Auswahl der Übertragungsrichtung, das Wide-Enable.

01:01:53.650 --> 01:01:55.730
Oder wir hatten das Signal auch schon mal Read-Wide genannt.

01:01:58.070 --> 01:01:59.450
Wenig, kann man es auch nennen.

01:02:00.610 --> 01:02:03.810
Und natürlich ist es so, ich kann natürlich bei einer statischen

01:02:03.810 --> 01:02:07.950
Speicherzelle jetzt einen Power-Down nicht dadurch machen, dass ich

01:02:07.950 --> 01:02:09.950
die Speicherzelle einfach ohne Strom lasse, wie bei einer

01:02:09.950 --> 01:02:10.850
Festwertspeicherzelle.

01:02:11.010 --> 01:02:12.590
Weil sobald ich das tue, ist der Inhalt weg.

01:02:13.630 --> 01:02:16.210
Was ich aber tun kann, ist, ich kann die Spannung reduzieren.

01:02:17.370 --> 01:02:19.470
Ich kann die Spannung bis auf einen Punkt reduzieren, wo die

01:02:19.470 --> 01:02:21.310
Speicherzelle ihre Informationen gerade noch hält.

01:02:21.310 --> 01:02:24.270
Sie ist zwar nicht mehr funktionsfähig in dem Sinne, dass ich

01:02:24.270 --> 01:02:27.590
schreiben und lesen kann in diese Speicherzelle, aber die Information

01:02:27.590 --> 01:02:28.510
bleibt noch bewahrt.

01:02:28.530 --> 01:02:29.070
Das ist also z.B.

01:02:29.130 --> 01:02:32.090
bei einer 5 V Speicherzelle üblicherweise bei 2 V der Fall.

01:02:32.150 --> 01:02:35.090
Das heißt, ich kann die Spannung an der Speichermatrix bis auf 2 V

01:02:35.090 --> 01:02:37.190
absenken, ohne dass die Information verloren geht.

01:02:39.030 --> 01:02:41.710
Das ist hier bei solchen Bausteinen der Power-Down-Mode.

01:02:43.910 --> 01:02:46.630
Das heißt, wir haben ansonsten eine relativ ähnliche Schaltung.

01:02:47.130 --> 01:02:49.190
Wir haben einen bidirektionalen Treiber hier.

01:02:50.050 --> 01:02:53.730
Der Treiber wird gesteuert durch Chip-Enable und Ride-Enable.

01:02:53.850 --> 01:02:57.930
Also, wenn Chip-Enable aktiv ist und Ride-Enable nicht aktiv ist, dann

01:02:57.930 --> 01:02:59.270
werden die nach außen angesteuert.

01:02:59.350 --> 01:03:00.510
Das ist ein Negationspunkt hier.

01:03:00.970 --> 01:03:06.490
Wenn Chip-Enable aktiv ist und Ride-Enable aktiv ist, dann wird der

01:03:06.490 --> 01:03:07.550
Treiber nach innen gesteuert.

01:03:07.630 --> 01:03:08.950
Und wir haben die Power-Down-Logik.

01:03:09.050 --> 01:03:13.650
Das heißt, wenn Chip-Enable inaktiv ist, dann wird die Spannung in der

01:03:13.650 --> 01:03:16.490
Speichermatrix etwa auf 2 V abgesenkt.

01:03:16.490 --> 01:03:18.350
Oder 1,8 Volt kann man heute auch schon machen.

01:03:21.250 --> 01:03:24.870
Gut, Kapazität in der Größenordnung bis 1 Megabit.

01:03:26.070 --> 01:03:27.830
Organisationsformen finden wir jetzt im Prinzip fast alle.

01:03:27.910 --> 01:03:29.750
Mal 1, mal 4, mal 8.

01:03:30.510 --> 01:03:32.250
Die Zugriffszeiten sind sehr schnell.

01:03:32.390 --> 01:03:34.750
Statische Rennbausteine gehören zu den schnellsten.

01:03:35.330 --> 01:03:38.130
Liegen also im Bereich von wenigen Nanosekunden bis etwa 150

01:03:38.130 --> 01:03:38.950
Nanosekunden.

01:03:39.670 --> 01:03:42.310
Entsprechend ist aber auch die Stromaufnahme normal relativ hoch, also

01:03:42.310 --> 01:03:43.770
bis 1 Watt hoch aktiv.

01:03:44.350 --> 01:03:45.610
Im Stand bei 10 Milliwatt.

01:03:46.550 --> 01:03:49.990
Anschlüsse, zum Beispiel Dual Inline Package 20 bis 28 Anschlüsse.

01:03:54.090 --> 01:03:57.450
Okay, hier haben wir nochmal diese nicht-flüchtigen Rennbausteine, die

01:03:57.450 --> 01:03:58.850
Non -Volatile Rennbausteine.

01:03:59.950 --> 01:04:02.230
Sie sehen, wir hatten ja vorhin schon gesagt, das ist eine relativ

01:04:02.230 --> 01:04:03.150
aufwendige Geschichte.

01:04:03.370 --> 01:04:04.250
Sie sehen es hier nochmal.

01:04:05.450 --> 01:04:08.310
Besteht einfach darin, dass ich zwei Matrizen habe.

01:04:08.430 --> 01:04:12.510
Was ich im Prinzip hier habe, an der Seite hier, ist eine ganz normale

01:04:12.510 --> 01:04:16.650
Schreib -Lese-Speicherzelle mit meiner Speichermatrix, die

01:04:16.650 --> 01:04:18.550
üblicherweise aus statischem RAM besteht.

01:04:19.990 --> 01:04:23.350
Zeilendecoder, Spaltenauswahl, Interface, Logikansteuerung hier.

01:04:25.070 --> 01:04:29.890
Und zusätzlich habe ich eben meine EEPROM-Speichermatrix, die jetzt

01:04:29.890 --> 01:04:32.670
auch eine eigene Steuerung hat, nämlich eben das Löschen.

01:04:32.890 --> 01:04:35.430
Ich muss ja hier für EEPROM-Zellen, die muss ich löschen können.

01:04:35.890 --> 01:04:38.730
Ich muss speichern können, also einen Store hier machen können oder

01:04:38.730 --> 01:04:39.450
einen Recall.

01:04:40.350 --> 01:04:43.130
Ich muss auch eine Programmierspannung hier drauf geben können.

01:04:43.130 --> 01:04:46.950
Und auf diese Art und Weise muss ich eben diese Zellen ansprechen

01:04:46.950 --> 01:04:47.230
können.

01:04:47.370 --> 01:04:51.030
Das heißt, das sind hier mit Abstand die aufwendigsten, weil ich die

01:04:51.030 --> 01:04:52.230
doppelte Speichermatrix brauche.

01:04:52.330 --> 01:04:53.570
Die ist automatisch übertragen.

01:04:54.350 --> 01:04:55.790
Und eben diese Matrixsteuerung.

01:04:56.530 --> 01:04:58.410
Deswegen ist die Kapazität relativ klein.

01:04:58.630 --> 01:05:04.190
16 Kilobit, also eine typische Organisation 2 Kilobyte wäre eine

01:05:04.190 --> 01:05:04.870
typische Organisation.

01:05:05.710 --> 01:05:08.710
Zugriffszeit liegt im Bereich 150 bis 300 Nanosekunden.

01:05:09.970 --> 01:05:11.510
Leistungsaufnahme ist relativ hoch.

01:05:11.510 --> 01:05:13.510
EEPROM-Standby schon 150 Milliwatt.

01:05:14.490 --> 01:05:16.710
24 bis 28 Anschlüsse in etwa.

01:05:20.760 --> 01:05:23.500
Gut, kommen wir zu den dynamischen Rennbausteinen.

01:05:23.980 --> 01:05:26.500
Die dynamischen Rennbausteine werden ja dadurch ausgekennzeichnet,

01:05:26.680 --> 01:05:28.460
dass sie diese einen Transistorspeicherzeller haben.

01:05:29.020 --> 01:05:31.720
Das heißt, damit erreiche ich die größte Dichte.

01:05:33.040 --> 01:05:34.600
Es wird hier nochmal deutlich gemacht.

01:05:34.740 --> 01:05:37.300
In diesem Bereich dadurch, dass ich normalerweise nicht eine

01:05:37.300 --> 01:05:39.580
Speichermatrix habe, sondern mehrere.

01:05:40.620 --> 01:05:42.460
Eben hier dargestellt durch Teilmatrizen.

01:05:42.560 --> 01:05:44.560
Eben aus diesen elektrischen Kapazitätsproblemen.

01:05:44.580 --> 01:05:47.380
Ich kann an einer Auswahlleitung nicht beliebig viele Speicherzellen

01:05:47.380 --> 01:05:47.960
anschließen.

01:05:48.360 --> 01:05:50.520
Sonst wird der Speicher an sich zu langsam.

01:05:51.080 --> 01:05:52.560
Deswegen eben Teilmatrizen.

01:05:53.140 --> 01:05:55.420
Und aus elektrischen Gründen bei großen Matrizen ist es auch

01:05:55.420 --> 01:05:58.020
geschickt, die Schreibleseverstärker nicht ans Ende zu legen.

01:05:58.100 --> 01:06:00.160
Hier unten hin, sondern in die Mitte der Matrix.

01:06:00.300 --> 01:06:02.440
Das ist auch aus elektrischen Gründen macht es eben vorteilhafter.

01:06:02.440 --> 01:06:06.920
Weil dann der Abstand, die Leitungslänge, der maximale Abstand von

01:06:06.920 --> 01:06:10.760
Zelle zu Schreibleseverstärker nur halb so groß ist, wenn ich sie ans

01:06:10.760 --> 01:06:11.220
Ende lege.

01:06:11.340 --> 01:06:14.560
Also wenn ich hier die Schreibleseverstärker hätte, dann hätte diese

01:06:14.560 --> 01:06:18.200
Zelle hier den doppelten Abstand wie in dem Fall, wo ich sie in die

01:06:18.200 --> 01:06:19.720
Mitte lege, der maximale Abstand ist.

01:06:19.820 --> 01:06:22.940
Das heißt, ich kann den maximalen Abstand zwischen Zelle und

01:06:22.940 --> 01:06:25.460
Schreibleseverstärker halbieren, indem ich Schreibleseverstärker in

01:06:25.460 --> 01:06:27.160
die Mitte der Matrix lege und nicht ans Ende.

01:06:29.160 --> 01:06:31.160
Auch hier habe ich eine Zeilen- und Spaltenauswahl.

01:06:32.460 --> 01:06:34.880
Interessant ist Folgendes, wenn Sie das hier mal betrachten.

01:06:35.740 --> 01:06:38.180
Das ist eine typische Eigenschaft dynamischer Speicher, die gemacht

01:06:38.180 --> 01:06:39.560
wird, um Adressleitungen zu sparen.

01:06:40.820 --> 01:06:44.080
Hier wird bereits die Adresse, die an einem Baustein angelegt wird, in

01:06:44.080 --> 01:06:45.260
Zeilen - und Spaltenadresse aufgeteilt.

01:06:45.860 --> 01:06:47.740
Man spricht hier auch von einer gemultiplexen Adresse.

01:06:47.740 --> 01:06:52.140
Das heißt, ich benutze dieselben Leitungen, um die Adressen von A0 bis

01:06:52.140 --> 01:06:57.840
AN, die Zeilenadressen, und dann die Spaltenadressen AN plus 1 bis A2

01:06:57.840 --> 01:06:59.740
plus 1 hinzulegen.

01:07:00.440 --> 01:07:03.220
Das heißt, ich habe hier, da ich normalerweise hier eine quadratische

01:07:03.220 --> 01:07:07.240
Matrix habe, entsprechend auch hier eine Halbierung.

01:07:08.060 --> 01:07:10.240
Und das macht man einfach deswegen, um Leitungen einzusparen.

01:07:10.240 --> 01:07:15.220
Auch hier, denke ich, ist es relativ klar, diese dynamischen

01:07:15.220 --> 01:07:17.620
Speicherbausteine erreichen die größte Speicherdichte.

01:07:17.800 --> 01:07:20.080
Das heißt, das sind die größten verfügbaren Speicherbausteine, die wir

01:07:20.080 --> 01:07:21.120
überhaupt haben.

01:07:21.200 --> 01:07:23.600
Das heißt, wir haben eine maximale Anzahl von Adressleitungen.

01:07:24.100 --> 01:07:26.620
Kein anderer Speicherbaustein benötigt mehr Adressen.

01:07:27.640 --> 01:07:30.400
Und um Leitungen einzusparen, ist es eben sinnvoll, oder ist es eine

01:07:30.400 --> 01:07:33.400
ganz gute Idee, wenn ich eh schon eine quadratische Matrix innen habe,

01:07:33.820 --> 01:07:37.280
warum dann nicht auch die Adressen eben schon gemultiplex anzulegen.

01:07:37.280 --> 01:07:40.120
Das heißt, nacheinander die Zeilen- und die Spaltenadresse.

01:07:40.620 --> 01:07:41.940
Wir haben da entsprechend hier Register.

01:07:42.140 --> 01:07:46.460
Das heißt, zunächst mal wird die Zeilenadresse angelegt, gespeichert.

01:07:46.580 --> 01:07:48.680
Dann wird die Spaltenadresse angelegt, gespeichert.

01:07:48.760 --> 01:07:50.480
Und dann kann ich hier entsprechend auswählen.

01:07:50.780 --> 01:07:52.780
Und schon habe ich die Hälfte der Adressleitungen eingespart.

01:07:59.830 --> 01:08:02.430
Gut, wie gesagt, wie schon erwähnt, die haben die größte

01:08:02.430 --> 01:08:04.210
Integrationsdichte aller Halbleiterspeicher.

01:08:05.610 --> 01:08:07.290
Sind meistens bitweise organisiert.

01:08:07.410 --> 01:08:10.570
Das heißt, mal 1 baut Steine, wobei ich allerdings eine getrennte Lese

01:08:10.570 --> 01:08:11.470
- und Schreibleitung habe.

01:08:11.550 --> 01:08:14.050
Ich habe also einen getrennten Dateneingang und einen Datenausgang.

01:08:15.710 --> 01:08:17.450
Die Speicheradressen sind gemultiplexed.

01:08:17.890 --> 01:08:19.270
Und ich habe dann entsprechend zwei Auswahlsignale.

01:08:19.930 --> 01:08:21.090
Ich weiß gar nicht, sind die im Bild da drin?

01:08:21.210 --> 01:08:25.230
Ja, da unten, das sind die relativ berühmten Signale RAS und CAS.

01:08:27.030 --> 01:08:29.150
Abkürzung RAS steht für Row Address Strobe.

01:08:29.150 --> 01:08:32.490
Also der Reihen-Adress-Strobe und Column-Adress-Strobe.

01:08:32.570 --> 01:08:36.050
CAS für Column-Adress-Strobe, also Zeilenauswahl, Spaltenauswahl.

01:08:36.630 --> 01:08:39.350
Und mit diesen beiden Signalen tue ich letztendlich kund.

01:08:39.650 --> 01:08:43.030
Habe ich hier an diesen Adressen momentan die Spaltenadresse angelegt

01:08:43.030 --> 01:08:46.950
oder habe ich die Zeilenadresse angelegt, sodass eben diese Einheit

01:08:46.950 --> 01:08:49.790
hier weiß, muss ich die Adresse, die hier anliegt, in dieses Register

01:08:49.790 --> 01:08:52.190
einschreiben oder muss ich sie in dieses Register reinschreiben.

01:08:52.310 --> 01:08:55.610
Das heißt, der Column-Adress-Strobe CAS und der Row-Adress-Strobe RAS.

01:08:57.390 --> 01:09:01.170
Und hier sieht man auch nochmal, meistens mal eins organisiert, aber

01:09:01.170 --> 01:09:03.530
mit getrennten Eingangsleitungen und Ausgangsleitungen.

01:09:04.010 --> 01:09:06.370
Dann habe ich noch das Read-Write, das ist normal die Richtung zu

01:09:06.370 --> 01:09:09.230
bestimmen und ich habe hier das Chip-Select, um den ganzen Baustein zu

01:09:09.230 --> 01:09:09.750
selektieren.

01:09:11.790 --> 01:09:15.330
Was ich hier nicht habe, was vielleicht auffällig ist, ich habe hier

01:09:15.330 --> 01:09:18.210
keinen Power-Down, das ist bei dynamischen Speicherzellen nicht

01:09:18.210 --> 01:09:19.090
besonders sinnvoll.

01:09:19.790 --> 01:09:23.310
Aus folgendem Grund, wie wir auch nachher noch draufkommen werden, der

01:09:23.310 --> 01:09:25.370
Nachteil von dynamischen Speicherzellen ist dieses, dass dieser

01:09:25.370 --> 01:09:28.430
Kondensator, auf dem ich meine Information speichere, die Information

01:09:28.430 --> 01:09:30.590
nur für sehr kurze Zeit halten kann, in der Regel wenige

01:09:30.590 --> 01:09:31.330
Millisekunden.

01:09:31.790 --> 01:09:34.550
Danach wird er durch Selbstentladung und Leckströme sich entleeren.

01:09:35.110 --> 01:09:38.190
Das führt dazu, dass ich solche dynamischen RAM-Bausteine immer in

01:09:38.190 --> 01:09:39.910
periodischen Abständen aufrichten muss.

01:09:40.090 --> 01:09:41.630
Da kommen wir nachher noch genauer drauf.

01:09:43.030 --> 01:09:46.070
Das heißt, diese Speichermatrix ist immer aktiv, grundsätzlich.

01:09:46.250 --> 01:09:48.610
Wenn die Speichermatrix nicht aktiv ist, auch wenn Spannung anliegt,

01:09:48.670 --> 01:09:49.730
verliert der Speicher seinen Inhalt.

01:09:49.730 --> 01:09:53.310
Aus diesem Grund ist es ja wenig sinnvoll, einen Power-Down-Modus zu

01:09:53.310 --> 01:09:56.050
machen, weil der Power-Down-Modus unweigerlich dazu führen wird, dass

01:09:56.050 --> 01:09:58.510
Information verloren geht, weil ich einfach meine Speicherzellen nicht

01:09:58.510 --> 01:09:59.250
mehr auffrischen kann.

01:10:03.090 --> 01:10:07.770
Gut, Kenndaten, zum Beispiel 256 Megabit, Organisation mal 1, meistens

01:10:07.770 --> 01:10:08.790
bis mal 4.

01:10:08.870 --> 01:10:11.230
Die Zykluszeiten sind hier nicht mehr so ganz up-to-date, also die

01:10:11.230 --> 01:10:12.170
Folie ist etwas älter.

01:10:12.770 --> 01:10:16.730
Also wenn wir hier mal 50 Nanosekunden hinschreiben, dann passt das

01:10:16.730 --> 01:10:17.010
besser.

01:10:18.950 --> 01:10:24.030
Zykluszeiten entsprechend 100, dann passt das ganz gut.

01:10:24.790 --> 01:10:27.550
Die Gehäuse sind relativ klein, dadurch, dass ich durch dieses

01:10:27.550 --> 01:10:30.510
Multiplexen der Adressen eben sehr viele Adressleitungen spare.

01:10:34.770 --> 01:10:37.970
Gut, wo wir beim Thema sind, wie adressiere ich jetzt solche

01:10:37.970 --> 01:10:38.570
Bausteine?

01:10:40.470 --> 01:10:42.570
Das ist relativ einfach, ich übertrage einfach die Zeilen in die

01:10:42.570 --> 01:10:43.670
Spaltenadresse nacheinander.

01:10:43.870 --> 01:10:46.730
Hier ist so ein typisches Timing mal dargestellt.

01:10:46.730 --> 01:10:49.570
Beginnen wir einfach mit dem Adressieren hier oben, das ist das

01:10:49.570 --> 01:10:50.070
Adressieren.

01:10:50.770 --> 01:10:53.630
Das heißt, ich fange an und lege zunächst mal die Zeilenadresse an die

01:10:53.630 --> 01:10:53.810
Adressleitung.

01:10:55.390 --> 01:10:58.030
Und mache das deutlich, indem ich hier eine fallende Flanke auf der

01:10:58.030 --> 01:10:58.990
Rastleitung erziele.

01:10:59.990 --> 01:11:03.810
Damit beginnt der Zyklus, der Speicherzyklus.

01:11:05.310 --> 01:11:08.470
Jetzt muss ich eine gewisse Zeit warten, die ist durch das RAM

01:11:08.470 --> 01:11:08.990
definiert.

01:11:09.110 --> 01:11:11.050
Da steht in der Spezifikation des RAM-Bausteins drin, wie lange ich

01:11:11.050 --> 01:11:13.470
warten muss, wie lange ich diese Zeilenadresse aktiv lassen muss.

01:11:14.010 --> 01:11:17.630
Nach einer bestimmten Zeit darf ich dann die Zeilenadresse wegnehmen

01:11:17.630 --> 01:11:19.790
und darf sie nach einer weiteren Zeit durch die Spaltenadresse

01:11:19.790 --> 01:11:20.270
ersetzen.

01:11:21.210 --> 01:11:24.210
Das tue ich, indem ich nun auch noch CAS aktiviere.

01:11:25.410 --> 01:11:27.170
Ich lasse RAS aktiviert.

01:11:27.810 --> 01:11:29.790
Und ab jetzt beginnt eigentlich der wirkliche Zugriff.

01:11:30.870 --> 01:11:34.170
Vorher habe ich im Prinzip schon mal eine Spalte ausgewählt.

01:11:35.190 --> 01:11:36.570
Bis hier ist die Spalte verfügbar.

01:11:36.710 --> 01:11:38.390
Jetzt wähle ich hier aus den Zeilen aus.

01:11:39.150 --> 01:11:40.990
Und jetzt sind nach einer bestimmten Zeit die Daten da.

01:11:40.990 --> 01:11:42.270
Und das ist die Zugriffszeit.

01:11:44.130 --> 01:11:47.290
Die Zykluszeit bei solchen Bausteinen ist aber in der Regel länger,

01:11:47.470 --> 01:11:50.130
weil wir hatten ja vorhin schon, oder ich hatte vorhin schon erklärt,

01:11:50.630 --> 01:11:55.190
das Auslesen der Speicherzelle geht einher mit dem Löschen der

01:11:55.190 --> 01:11:56.350
Kondensatorinformationen.

01:11:56.390 --> 01:11:58.530
Das heißt, das Lesen ist zerstörerisch.

01:11:58.950 --> 01:12:03.650
Das heißt, wir brauchen hier jetzt noch eine sogenannte Recover-Time

01:12:03.650 --> 01:12:07.450
oder eine Wiedererholzeit des Speicherbausteins, bis er sich für den

01:12:07.450 --> 01:12:08.650
nächsten Zugriff erholen kann.

01:12:08.650 --> 01:12:12.030
Das heißt, die Zykluszeit hier oben ist deutlich länger als die

01:12:12.030 --> 01:12:12.690
Zugriffszeit.

01:12:15.830 --> 01:12:17.810
Gut, das Schreiben funktioniert relativ ähnlich.

01:12:17.950 --> 01:12:19.470
Ich wähle die Zeilenadresse aus.

01:12:19.850 --> 01:12:21.250
Ich wähle die Spaltenadresse aus.

01:12:21.370 --> 01:12:25.610
Die Daten werden normalerweise mit der fallenden CAS-Flanke hier

01:12:25.610 --> 01:12:26.610
übernommen.

01:12:26.730 --> 01:12:29.370
Das heißt, ich muss die Daten im Prinzip parallel zur Spaltenadresse

01:12:29.370 --> 01:12:29.830
anlegen.

01:12:29.990 --> 01:12:32.490
Sobald ich die Spaltenadresse anlege, hier muss ich auch die Daten

01:12:32.490 --> 01:12:34.030
anlegen am Daten-In-Signal.

01:12:34.030 --> 01:12:36.810
Mit der fallenden CAS-Leitung werden die Daten dann vom Baustein

01:12:36.810 --> 01:12:38.670
übernommen und werden gespeichert.

01:12:38.790 --> 01:12:40.370
Der Speichervorgang ist hier abgeschlossen.

01:12:40.570 --> 01:12:44.750
Und auch hier muss ich im Prinzip noch die Zykluszeit abwarten.

01:12:51.070 --> 01:12:51.390
Gut.

01:12:53.390 --> 01:12:55.990
Grundsätzlich haben wir jetzt allerdings, haben wir ja gesehen, dieses

01:12:55.990 --> 01:13:01.070
Zugreifen auf die Speichermatrix, das braucht letztendlich zwei

01:13:01.070 --> 01:13:02.510
Schritte, benötigt zwei Schritte.

01:13:02.930 --> 01:13:03.810
Das haben wir irgendwo noch im Bild.

01:13:04.470 --> 01:13:04.870
Genau.

01:13:05.590 --> 01:13:06.330
Gehen wir nochmal her.

01:13:06.770 --> 01:13:10.530
Zum Einmal wähle ich zunächst mal die Zeilenadresse mit RAS.

01:13:11.450 --> 01:13:15.370
Ich kann nie kapieren, warum er manchmal diese Linie hier rein macht.

01:13:17.010 --> 01:13:18.870
Und vor allen Dingen, wann er sie wieder weg macht und auch nicht.

01:13:23.910 --> 01:13:26.690
Das heißt, wir haben zunächst mal hier, die Zeilenadresse wird

01:13:26.690 --> 01:13:28.390
angelegt durch Aktivierung von RAS.

01:13:29.590 --> 01:13:32.330
Dadurch können wir, sobald die Zeilenadresse anliegt, können wir eine

01:13:32.330 --> 01:13:33.250
Zeile aktivieren.

01:13:34.410 --> 01:13:36.750
Dann legen wir danach die Spaltenadresse an.

01:13:36.850 --> 01:13:39.530
Das heißt, wir aktivieren hier eine, bei der Einfachen Station ist

01:13:39.530 --> 01:13:42.310
eine Spalte hier raus und geben die aus oder schreiben sie ein.

01:13:43.310 --> 01:13:46.370
Wenn wir jetzt die nächsten, den nächsten Speicherzähler adressieren

01:13:46.370 --> 01:13:48.390
wollen, müssen wir den Vorgang im Prinzip gerade wiederholen.

01:13:48.550 --> 01:13:50.830
Neue Zeilenadresse, neue Spaltenadresse und so weiter.

01:13:52.150 --> 01:13:55.630
Die Frage ist, was ist, wenn die neue Speicherzelle, die nächste

01:13:55.630 --> 01:13:57.850
Speicherzelle in der gleichen Zeile liegt wie die bisherige?

01:13:58.750 --> 01:14:01.170
Dann können wir es uns ja eigentlich sparen, nochmal wieder die Zeile

01:14:01.170 --> 01:14:01.370
anzusprechen.

01:14:02.030 --> 01:14:05.530
Und genau das geht, das nennt man auch noch den Page Mode oder den

01:14:05.530 --> 01:14:06.490
Fast Page Mode.

01:14:07.570 --> 01:14:13.150
In dieser Betriebsart wähle ich eben eine Zeile aus und anstelle dann

01:14:13.150 --> 01:14:17.470
nur ein einziges Datum in dieser Zeile zu lesen und zu schreiben, gehe

01:14:17.470 --> 01:14:20.190
ich jetzt her und schreibe und lese viele Daten, die einfach nur sich

01:14:20.190 --> 01:14:22.450
dadurch kennzeichnen müssen, dass alle in derselben Zeile liegen.

01:14:26.090 --> 01:14:29.090
Das heißt, das war ja ein normaler Zugriff, Zeilenadresse,

01:14:29.210 --> 01:14:32.010
Spaltenadresse, dann könnte ich hier die nächste Zeilenadresse, die

01:14:32.010 --> 01:14:33.450
nächste Spaltenadresse und so weiter.

01:14:36.110 --> 01:14:38.630
Durch diesen Fast Page Mode kann ich den Zugriff erheblich

01:14:38.630 --> 01:14:39.210
beschleunigen.

01:14:39.310 --> 01:14:43.730
Hier habe ich ein Bild, ich aktiviere RAS und lege die Zeilenadresse

01:14:43.730 --> 01:14:48.030
an, dann aktiviere ich CAS und lege die Spaltenadresse an, dann kann

01:14:48.030 --> 01:14:51.830
ich wie bisher lesen und schreiben, also bis hierhin, bis zu diesem

01:14:51.830 --> 01:14:54.330
Zeitpunkt hier ist alles wie bisher, hat sich nichts verändert.

01:14:55.090 --> 01:15:00.810
Aber jetzt gehe ich her und lasse die Reihenadresse aktiv und tockle

01:15:00.810 --> 01:15:01.810
im Prinzip nur noch mein CAS.

01:15:01.910 --> 01:15:04.530
Das heißt, ich lege die Spaltenadresse 2, Spaltenadresse 3,

01:15:04.650 --> 01:15:08.210
Spaltenadresse 4 an und aktiviere und deaktiviere immer nur noch das

01:15:08.210 --> 01:15:10.930
CAS und damit kann ich im Prinzip immer, mit jeder fallenden CAS

01:15:10.930 --> 01:15:13.950
-Flanke hier, kann ich dann auf ein neues Datum zugreifen.

01:15:14.510 --> 01:15:17.310
Das heißt, ich spare mir dazwischen immer diese Zeilenzugriffe.

01:15:18.090 --> 01:15:20.650
Das ist der Page Mode, damit kann ich sehr viel schneller auf die

01:15:20.650 --> 01:15:23.490
Daten des Speichers zugreifen, allerdings nur solange die Daten

01:15:23.490 --> 01:15:24.590
innerhalb einer Zeile liegen.

01:15:25.850 --> 01:15:29.250
Wenn ich die Zeile wechseln muss, dann muss ich wieder meinen normalen

01:15:29.250 --> 01:15:30.110
Zyklus durchfahren.

01:15:30.790 --> 01:15:33.370
Aber oft hat man eben solche Blockzugriffe, dass man sehr häufig auf

01:15:33.370 --> 01:15:34.890
aufeinanderfolgende Adressen zugreift.

01:15:35.510 --> 01:15:39.390
Das heißt, wir haben doch sehr häufig den Fall, dass die Daten in der

01:15:39.390 --> 01:15:41.950
gleichen Zeile liegen und dann kann ich diesen Fast Page Mode nutzen.

01:15:45.490 --> 01:15:49.930
Gut, hier ist mal so eine Pin-Belegung von so einem Baustein hier, nur

01:15:49.930 --> 01:15:50.810
mal so zur Information.

01:15:53.190 --> 01:15:56.070
Abschließend für heute, so als letztes, wollte ich noch ein bisschen

01:15:56.070 --> 01:15:58.990
genau auf die Timing-Parameter eingehen, die wir hier haben.

01:16:00.290 --> 01:16:05.150
Die verschiedenen Zeiten und so ein dynamisches Speicherbaustein ist

01:16:05.150 --> 01:16:09.410
ein relativ kritisches Gebilde, der also eine relative Vielzahl von

01:16:09.410 --> 01:16:12.370
Zeiten spezifiziert, die auch sehr genau eingehalten werden müssen.

01:16:12.370 --> 01:16:14.970
Also wenn Sie die Datenbücher mal gucken für so einen Baustein, dann

01:16:14.970 --> 01:16:17.310
sehen Sie eine Vielzahl von Zeiten.

01:16:18.150 --> 01:16:20.830
Und Sie tun gut daran, wenn Sie so eine Schaltung mit dem entwerfen,

01:16:20.910 --> 01:16:23.070
dass Sie diese Zeiten wirklich peinlichst genau einhalten, weil

01:16:23.070 --> 01:16:24.850
andernfalls der Baustein nicht richtig funktioniert.

01:16:26.350 --> 01:16:27.430
Was haben wir hier für Zeiten?

01:16:29.210 --> 01:16:33.650
Zunächst mal diese TRC hier oben, das ist die Zykluszeit.

01:16:33.950 --> 01:16:37.610
Das heißt, das Vergehen, Zeilenadresse angelegt, Spaltenadresse

01:16:37.610 --> 01:16:38.690
angelegt, Daten da.

01:16:38.690 --> 01:16:42.070
Bis zu dem Zeitpunkt, ich darf die nächste Zeilenadresse anlegen.

01:16:42.190 --> 01:16:44.030
Das ist die berühmt-berüchtigte Zykluszeit.

01:16:45.510 --> 01:16:48.890
Dann haben wir die TRAC, das ist die Zugriffszeit oder auch die RAS

01:16:48.890 --> 01:16:49.590
-Zugriffszeit.

01:16:49.690 --> 01:16:54.430
RAS -Zugriffszeit, weil sie beginnt mit dem Aktivieren von RAS, was

01:16:54.430 --> 01:16:58.810
unseren Speicherzyklus hier einleitet und endet mit dem Zeitpunkt, wo

01:16:58.810 --> 01:16:59.730
die Daten da sind.

01:16:59.910 --> 01:17:02.110
Das ist im Prinzip das, was wir als Zugriffszeit betrachten.

01:17:02.290 --> 01:17:05.010
Also das haben wir bisher allgemein als Zykluszeit betrachtet.

01:17:06.510 --> 01:17:09.330
Und das war das, was wir bisher als Zugriffszeit betrachtet haben.

01:17:10.990 --> 01:17:14.390
Wird hier RAS-Zugriffszeit genannt, weil eben diese Zugriffszeit mit

01:17:14.390 --> 01:17:16.810
dem Aktivieren von RAS beginnt, was den Speicherbaustein hier

01:17:16.810 --> 01:17:17.330
aktiviert.

01:17:20.470 --> 01:17:24.510
Gut, diese RAS-Zugriffszeit kann ich jetzt in zwei Unterzeiten

01:17:24.510 --> 01:17:28.610
aufteilen, nämlich mal die eine Zeit, die TRCD, das ist das RAS-Cast

01:17:28.610 --> 01:17:29.050
-Delay.

01:17:29.050 --> 01:17:32.310
Das heißt, das ist die Zeitspanne, die ich verstreichen lassen muss

01:17:32.310 --> 01:17:34.530
zwischen der Aktivierung von RAS und CAST.

01:17:34.650 --> 01:17:37.430
Das heißt, das ist nochmal eine Minimumzeite, die ist im Datenbuch

01:17:37.430 --> 01:17:38.010
angegeben.

01:17:38.870 --> 01:17:42.250
Das heißt, wenn ich RAS aktiviere, muss ich mindestens diese Zeit lang

01:17:42.250 --> 01:17:45.670
RAS aktiviert lassen und die Zeilenadresse angelegt haben, bevor ich

01:17:45.670 --> 01:17:47.090
danach CAST aktivieren darf.

01:17:49.550 --> 01:17:52.930
Und der zweite Bestandteil ist dann natürlich die TCAC, das ist die

01:17:52.930 --> 01:17:53.970
CAST -Zugriffszeit.

01:17:53.970 --> 01:17:56.870
Das ist dann die Zugriffszeit, die ich noch brauche mit Beginn von der

01:17:56.870 --> 01:17:59.010
Aktivierung von CAST, bis die Daten da sind.

01:17:59.170 --> 01:18:04.070
Das heißt, diese TRAC gibt es immer aus der Summe von TRCD und TCAC.

01:18:06.550 --> 01:18:10.470
Gut, und dann habe ich noch die RAS-Precharge-Time und das gibt mir im

01:18:10.470 --> 01:18:13.370
Prinzip die Zeit an, die ich brauche, um den Inhalt der Speicherzelle

01:18:13.370 --> 01:18:14.130
wiederherzustellen.

01:18:14.250 --> 01:18:16.110
Das Lesen bei Dynamisch Speicherstellen ist ja zerstörend.

01:18:17.550 --> 01:18:20.470
Das heißt, diese Precharge-Time gibt mir im Prinzip die Zeit an, die

01:18:20.470 --> 01:18:21.090
ich brauche, um wiederherzustellen.

01:18:21.090 --> 01:18:25.830
Im Prinzip ist es letztendlich die Zeit, die die Zugriffszeit

01:18:25.830 --> 01:18:28.430
gegenüber der Zugriffszeit alle verlängert oder vergrößert.

01:18:29.430 --> 01:18:32.130
Ich habe hier mal noch ein paar Beispiele für solche typischen Zeiten.

01:18:36.140 --> 01:18:41.200
Also dieses TRAC, die Zugriffszeit, die minimale Zeitdauer zwischen

01:18:41.200 --> 01:18:43.940
der fallenden Flanke von RAS bis zur Ausgabe der gewünschten Daten,

01:18:44.020 --> 01:18:47.560
das was wir bisher als Zugriffszeit gesehen haben, ist bei einem 4

01:18:47.560 --> 01:18:50.920
Megabit DRM üblicherweise sowas heute um die 60 Nanosekunden, es gibt

01:18:50.920 --> 01:18:52.060
auch schon 50 Nanosekunden.

01:18:57.750 --> 01:19:03.750
Okay, die Zykluszeit, TRC, die ist bei dem gleichen Baustein etwa 110

01:19:03.750 --> 01:19:06.190
Nanosekunden, da sehen Sie diese 80%-Regel etwa.

01:19:06.590 --> 01:19:09.590
Ich habe zwar die Daten schon nach 60 Nanosekunden, aber erst nach 110

01:19:09.590 --> 01:19:11.750
Nanosekunden darf ich den nächsten Zugriff starten.

01:19:12.150 --> 01:19:15.290
Also hier relativ deutlich, hier sehen wir sehr deutlich, die

01:19:15.290 --> 01:19:18.530
Zykluszeit ist nahezu doppelt so hoch wie die Zugriffszeit, also über

01:19:18.530 --> 01:19:19.530
80 % hier sogar.

01:19:24.980 --> 01:19:28.780
Okay, die CAS-Zugriffszeit, das ist die Zeit, nachdem ich dann CAS

01:19:28.780 --> 01:19:32.620
aktiviert habe und die Daten da sind, die ist üblicherweise nach 15

01:19:32.620 --> 01:19:35.160
Nanosekunden, so etwa, bei dem gleichen Baustein.

01:19:38.840 --> 01:19:46.200
Und schließlich diese TRC, diese Recharge-Time, die ist üblicherweise

01:19:46.200 --> 01:19:49.520
hinten am Ende, diese Wiederaufladezeit, die ich brauche, die ist

01:19:49.520 --> 01:19:52.880
üblicherweise 35 Nanosekunden bei einem Baustein.

01:19:53.020 --> 01:19:58.260
Also diese Zeit, die ich da hinten noch brauche, die ist immerhin noch

01:19:58.260 --> 01:19:59.320
35 Nanosekunden.

01:19:59.320 --> 01:20:05.240
Gut, damit haben wir diesen Teil abgehakt.

01:20:06.120 --> 01:20:10.200
Das nächste Mal werden wir uns dann genauer noch mit dynamischen

01:20:10.200 --> 01:20:11.600
Speicherbausteinen auseinandersetzen.

01:20:11.600 --> 01:20:14.600
Wir werden eben diese Problematik jetzt wieder auffrischend

01:20:14.600 --> 01:20:17.800
kennenlernen und wir werden mal ein paar neue Techniken angucken, also

01:20:17.800 --> 01:20:25.160
von Double Data Rate RAMs, ADORAMs, Synchronous DRAMs, SLDRAMs, RAMBUS

01:20:25.160 --> 01:20:28.060
DRAMs, also wenn man die ganzen neuen RAM-Techniken, die heute so auf

01:20:28.060 --> 01:20:30.500
dem Markt sind, respektive in Zukunft entwickelt sind, genauer

01:20:30.500 --> 01:20:30.880
betrachten.

01:20:31.160 --> 01:20:31.840
Das war's für heute.

