Der 16M2164 von KWH (Keramische Werke Hermsdorf) ist ein Speicherschaltkreis in Hybridbauweise.
Er ist vermutlich nur in sehr geringen Stückzahlen hergestellt worden.
Der Hybridschaltkreis enthält 16 mal das Die (ein Stück vom Halbleiterwafer) des Schaltkreises U2164 sowie einige Stützkondensatoren auf einem Keramiksubstrat.
Der U2164 ist ein dynamischer RAM mit 64kBit.
In Summe enthält der 16M2164 ein MegaBit bzw. 128 kByte Speicher.
Zum Einsatz kommt der Schaltkreis 16M2164 im Speichermodul M036 für den KC85 aus Mühlhausen 1.
Um die unbestückten Leiterplatte, die für dieses Modul im Umlauf sind, nutzen zu können, benötigt man i.d.R. einen Ersatz für den 16M2164.
Von U. Zander stammt die urspüngliche Idee einer Schaltkreisersatzplatine, die nur mit vier dRAM-Schaltkreisen auskommt 2. Diese Lösung funktioniert leider nicht perfekt.
Note
Bei dynamischen Speichern wird die Information als Ladung in Kondensatoren abgebildet. Durch Leckströme verliert sich diese Ladung mit der Zeit und muß daher regelmäßig aufgefrischt werden (Refresh). Dies geschiet u.a. beim Aktivieren des /RAS-Signals. Der Hersteller gibt dabei an, in welchem Zeitraum jede ROW-Adresse einmal aktiviert werden muß. Normalerweise wird die angelegte ROW-Adresse vom Speichercontroller entsprechend hochgezählt. Bei einem geschickt adressierten Bildwiederholspeicher könnte man auf den Refresh verzichten, da dort durch regelmäßige Lesezugriffe die Information beim Lesen aufgefrischt wird.
In der folgenden Tabelle sind die Refreshzyklen eingier dRAM-Hersteller aufgeführt:
Hersteller | Speicher-IC | Speichergröße | Refreshzyklen | Refreshzeit | Gehäuse |
---|---|---|---|---|---|
x1 Bit dRAMs | |||||
Mostek | MK4096 | 4k x 1 | 64 | 2 ms | DIP16 |
Mostek | MK4116 | 16k x 1 | 128 | 2 ms | DIP16 |
NEC | µPD4164 | 64k x 1 | 128 | 2 ms | DIP16 |
Mostek | MK4564 | 64k x 1 | 128 | 2 ms | DIP16, PLCC18 |
Mostek | MK4164 | 64k x 1 | 256 | 4 ms | DIP16 |
Siemens | HYB4164 | 64k x 1 | 256 | 4 ms | DIP16 |
Mostek | MK41256 | 256k x 1 | 256 | 4 ms | DIP16, PLCC18 |
Siemens | HYB51100 | 1M x 1 | 512 | 8 ms | SOJ26 |
x4 Bit dRAMs | |||||
TI | TMS4416 | 16k x 4 | 256 | 4 ms | DIP18, PLCC18 |
TI | SMJ4464 | 64k x 4 | 256 | 4 ms | DIP18, PLCC18 |
NEC | µPD41464 | 64k x 4 | 256 | 4 ms | DIP18, PLCC18 |
TI | SMJ4464 | 64k x 4 | 256 | 4 ms | DIP18, PLCC18 |
Mitsubishi | M5M4464A | 64k x 4 | 256 | 4 ms | DIP18, PLCC18, ZIP20 |
Samsung | KM41464A | 64k x 4 | 256 | 4 ms | DIP18, PLCC18, ZIP20 |
Siemens | HYB514256 | 256k x 4 | 512 | 8 ms | DIP20, SOJ26/20 |
NEC | µPD424400 | 1M x 4 | 1024 | 16 ms | TSOP26, SOJ26/20 |
Die verwendeten Speicher-IC der Größe 64k x 4 Bit benötigen alle 256 Refreshzyklen. Damit muß der Zähler für den Refresh mindestens acht Bit breit sein. Die U880/Z80-CPU enthält nur einen 7 Bit-Refreshzähler, der für die Bausteine mit 64 oder 128 Refreshzyklen ausreichend ist. Die obere Hälfte des Speichers erhält keinen definierten Refresh und verliert mit der Zeit ihren Inhalt.
Im Folgenden sind drei Wege aufgezeigt, um den fehlenden Speicher zu ersetzen: Variante R, Variante D und Variante S.
Der übliche Weg ist es, den Refreshzähler zu erweitern.
Ein Schaltung dafür findet sich z.B. in 3.
Auch im Grundgerät D001 (KC85/4) werden aus den Signalen /rfsh, mreq und ab6 die Signale RF7 und RF8 gebildet, die den Refreshzähler des Z80 auf 9 Bit erweitern:
Der erweiterte Refreshzähler steht leider nur den interne RAM-Bausteinen auf der Hauptplatine zur Verfügung.
Am Modul 16M2164 steht weder der erweiterte Refreshzähler, noch das eigentliche Refresh-Signal zur Verfügung.
Zumindest des Refresh-Signal müsste auf separatem Weg zugeführt werden.
Daher wurde diese Lösung nicht weiter verfolgt.
Im Robotrontechnik-Forum ist ein Bild vom Innenaufbau des 16M2164 verlinkt 4. Mit etwas Geschick lassen sich die 16 Stück U2164 auf einer Aufsteckplatine plazieren und so die Schaltung des 16M2164 1:1 nachbilden. Die erste Hälfte der Schaltkreise sitzt direkt auf der Adapterplatine. Die zweite Hälfte wird huckepack auf die bereits eingelöteten Schaltkreise gelötet und bis auf das /CAS-Signal parallel geschaltet. Die die untere Hälfte wird mit dem Signal /CAS0 aktiv. Die obere Hälfte wird entsprechend mit dem /CAS1-Signal aktiv.
Der große Nachteil dieser Lösung: sie benötigt zuviel Platz und passt nicht mehr in ein Modulgehäuse bzw. den Modulschacht. Das M036 läßt sich so nur offen an einem Adapter M007 betreiben.
Warum ersetzen wir nicht die dRAM-Schaltkreise durch einen einzelnen SRAM der Größe 128kx8 Bit? Ein SRAM benötigt die Signale /CS, /WE und /OE sowie Daten und Adressen. Am Bestückungsplatz für das 16M2164 stehen die Signale /RAS, /CAS0 (unter Hälfte), /CAS1 (obere Hälfte) und /WE zur Verfügung. Die Adressenleitungen sind multiplext.
Die Adressen müssen wieder demultiplext werden und für die Steuersignale ist eine Signalanpassung nötig. Ein Latch, was mit dem invertierten /RAS-Signal angesteuert wird, speichert die eine Hälfte der Adressinformation. Die andere Hälfte der Adresse wird direkt an den SRAM durchgereicht. Aus /CAS0 und /CAS1 wird das /CS-Signal gebildet. Aus dem Signal /WE wird noch das Signal /OE abgeleitet.
Da es ein RAM ist, dürfen Datenleitungen problemlos miteinander vertauscht werden. Ebenso kann man Adressleitungen tauschen, solange keine Sonderfunktionen realisiert sind. Damit wird das Routing auf der zweilagigen Platine erleichtert.
Im Bild ist die Lösung zu sehen, die von der Grundfläche dem Original 16M2164 entspricht.
Mit flachen Präzisions-Stiftleisten läßt sich die Ersatzplatine so im Modulgehäuse unterbringen.
Für einen Speichertest im KC85/4 bzw. KC85/5 bietet sich das Programm RAMTEST3 an.
Um gezielt nur das Speichermodul M036 zu testen kann man mit TESTM
den Modulschacht mit angeben, z.B. TESTM 0C
.
Anschließend werden die acht Segmente des M036 durchgetestet:
Das Textverarbeitungssystemm Typestar5 bringt das RAMDOS-System mit. Damit wird das KC-CAOS um eine RAM-Disk erweitert.
Beim Start von MicroDOS 6 werden vorhande RAM-Module als RAM-Disk (Laufwerk A:) initialisiert. Das funktioniert auch mit dem Modul M036:
Footnotes
-
Modul M036, Beschreibung, Bilder und Handbuch: Modulbeschreibung auf mpm-kc85.de ↩
-
Schaltkreisersatzplatine 16M2164 https://www.sax.de/~zander/ --> Hobby --> KC85 --> Hardware --> 128K-Segmented-RAM-Modul (M036) ↩
-
c't 1984, Heft 9, M. Hungershausen, 8-Bit-Refresh für Z80 ↩
-
Bild vom Innenleben des 16M2164 Forum robotrontechnik.de ↩
-
Modul M033, Typestar: Modulbeschreibung auf mpm-kc85.de ↩
-
MicroDOS: Beschreibung auf mpm-kc85.de ↩