Homepage

 

 

 

Mikrocontroller   PCs — Embedded Electronics

Ideen — Projekte — Fachwissen 

 

 

 

 

System .004

 

 

 

 

 

 

 

 Home

 ReAl Computer Architecture

 Projekte

 Fachtexte

 Lehrarchiv

 Privatarchiv

 Die historische Webseite

 Impressum + Datenschutz

 Kontakt

 Neuigkeiten

 

 

 

 

 

 

 

System .004

--  Wie es innen aussieht --

Mit freundlicher Genehmigung und Unterstützung des Heinz Nixdorf MuseumsForum, Paderborn, war es möglich, den Aufbau dieses Gerätes  fotografisch zu dokumentieren -  weit mehr als 30 Jahre nach seiner Entwicklung.

Das Blockschaltbild:

Technische Dokumentation ist nicht verfügbar. Die folgenden Erläuterungen beruhen vor allem auf dem Gedächtnis, teilweise auch auf Patentbeschreibungen. Für Typenbezeichnungen usw. verwende ich die international üblichen.

Schaltkreistechnologien:

  • Mikroprozessorsystem Z80 (CPU, PIO, SIO, CTC)
  • EPROMs (UV-Löschung) 1 kBytes
  • SRAMs: 256  Bits und 1 kBits
  • DRAMs: 16 kBits
  • Logik: TTL und LS-TTL (SN74xx, SN74LSxx) SSI und MSI

Entwurfsprinzip war Minimum Package Count, ganz gleich,was in den Gehäusen drin ist. Kombinatorische Schaltungen einfach, dafür ein paar Flipflops mehr, weitgehende Ausnutzung der höher integrierten Schaltkreise, insbesondere der  ROMs und SRAMs.

Kennzeichnend sind die großen Platinen mit jeweils einer Funktionseinheit:

Der Single Board Computer (SBC)

  • Z80 CPU, 3 * PIO, 1 SIO, 1 CTC
  • 4 kBytes ROM
  • 32 kBytes DRAM; 9 Bits je Byte
  • Multimaster-Bussystem. Kann als Master oder Slave wirken.
  • Eingebaute Diagnose- und Debugging-Vorkehrungen
  • Anschluß für Diagnoseadapter

Das 9. Bit im DRAM ist im Normalbetrieb das Paritätsbit. Im Wartungsbetrieb kannn es zu Vergleichsstopzwecken verwendet werden. Ein als gesetzt gelesenes Bit kann  NMI auslösen (das hängt von der Art des Zugriffs ab und ist einstellbar). Auf diese Art sind unbegrenzt viele Hardware-Breakpoints möglich. Befehlsweiser Betrieb ergibt sich durch Füllen aller Bits mit Einsen. Der Speicher hat zudem eine Schutzfunktion. Einteilung in nur Lesen (Schreibschutz, Pseudo ROM, ) und freier Zugriff. Abgrenzung über Grenzadreßregister.

Zur gleichen Zeit brauchten ähnliche Single-Board-Computer etwa 100 Schaltkreise. Unser SBC hat etwa 130, teils weil manche MSI-Typen nicht verfügbar waren, teils wegen der erweiterten Funktionen (Multimaster-Bus mit echtem Dual-Port-Zugriff zum DRAM, eingebaute Diagnose usw.). Die Systemauslegung -- wenige komfortabel ausgestattete SBCs und ein vollwertiger Systembus* oder mehrere einfache Mikroprozessormodule mit einer leistungsschwachen  und funktionell primitiven Mehrprozessorkopplung (seriell, über PIO usw.) -- hat sich nach etlichen Probeentwürfen ergeben.

*: Mit Prioritäten, Busfreigabe, Burstbetrieb, Wartungszugriffen usw. Die SBCs  können auch Befehle über den Bus holen, also Programme ausführen, die in anderen Einrichtungen gespeichert sind.

Die Aufgabenteilung:

  • SBC 1: Spezialinterface, Bedienung der Zentraleinheit, Floppy-Disk-Subsystem
  • SBC 2: Geräte am Standardinterface, Druckersteuerung im Normalbetrieb

Der Dual Video Adapter

  • Anschluß von zwei Monitoren
  • Alphanumerische Anzeige jeweils 24 Zeilen zu 80 Zeichen
  • Die Monitore sind im Grunde kleine Fernsehgeräte (mußten genommen werden, es gab nichts anderes). Ansteuerung in Halbbildschreibung. 50 Bilder/s zu 312 Zeilen
  • Verbesserte Zeichendarstellung in Auswertung dessen,was damals für Bildschirmarbeitsplätze gefordert wurde (Ergonomie). Zeichenraster 7 * 9, dargestellt in 9 Pixeln horizontal und 12 Zeilen vertikal. Anzeigeraster also 720 * 288 Pixel. 
  • Bildspeicher: 32k * 9 Bits. 16k je Monitor. Das entspricht jeweils 8 kompletten Bildern.
  • Zeichencodierung: eigener 7-Bit-Code (SCM-Code). Das 8. Bit kennzeichnet Feldsteuerzeichen, das 9. die Cursorposition. Feldsteuerung entsprechend IBM 3270 (andere Codierung, aber gleiche Funktionen), darüber hinaus auch invertierte Darstellung
  • 4 ROMs Zeichengenerator (zwei je Monitor)
  • 2 ROMs zur Decodierung der Pixel- und Zeilenzähler (horizontal / vertikal) und Generierung der diversen Steuersignale
  • Wirkt als Slave am Multimaster-Bussystem. Bildspeicherzugriffe sind echte Dual-Port-Zugriffe. Zugriffe über den Bus jederzeit möglich,
  • Sonderzugriffsmodus, so daß das Suchen nach bestimmten Feldsteuerzeichen mit den Blocksuchbefehlen des Z80 ausprogrammiert werden kann.

CRT-Steuerschaltkreise waren nicht verfügbar. Deshalb eine eigene Lösung mit etlichen Schaltungstricks. Grundlage ist der Pixeltakt. Ein Zeichen hat je Zeile 9 Pixeltakte. Der DRAM wird zyklisch adressiert, und zwar mit drei Zugriffen zu je 6 Pixeltakten in 18 Pixeltakten: Bildschreibung Monitor 1, Bildschreibung Monitor 2, Buszugriff. Die Busvermittlung ist also eine Zeitteilungsvermittlung. Die Wartezeit (von maximal ca. 2 µs) war erträglich.  Ein eigener Mikroprozessor hat nicht auf die Platine gepaßt, deshalb mußte alles im jeweiligen SBC ausprogrammiert werden. Der kritische Ablauf war das Suchen nach Feldsteuerzeichen. Das wurde mit einer Sonderzugriffsart beschleunigt, die je nach Suchaufgabe Codes liefert, nach denen man mit den Blocksuchbefehlen des Z80 suchen kann (Befehle CPIR, CPDR).

Der Standard Interface Adapter (SIFAD)

  • Anschluß an einen Bytemultiplexkanal. Standardinterface (SIF) = Kanalinterface System /360.
  • Unterstützt bis zu 8 Geräte mit maximal 4 Kommandosätzen
  • Mikroprogrammsteuerwerk
  • Mikrobefehle 32 Bits. Besondere Formate zur Unterstützung der Steuerfolgen am Standardinterface
  • Mikroprogrammspeicher: 1k Mikrobefehle (ROM)
  • Verarbeitungseinheit: ALU 8 Bits, Lokalspeicher 256 Bytes SRAM = 32 Bytes je Gerät
  • ALU-Verknüpfungsprinzip: Lokalspeicherinhalt = Lokalspeicherinhalt OP Direktwert im Mikrobefehl
  • Kommandodecodierung: ROM
  • Geräteadressierung: RAM
  • Geräteadressen und Gerätekonfiguration ladbar
  • Zugriffe am Multimaster-Bussystem: Slavezugriffe zum Lokalspeicher und zu einigen Registern, Masterzugriffe zur Interruptauslösung
  • Eingebaute Diagnose- und Debugging-Vorkehrungen: zusätzlich 1k SRAM am Mikroprogrammspeicher zu Vergleichsstopzwecken (ähnlich SBC), Mikrobefehlsregister über den Bus seriell ladbar. Auf diesem Wege  können Testmikrobefehle eingespeist und ausgeführt werden
  • Interfaceanschluß über besondere Platinen mit Kabelbaustufen und Interfacesteckverbindern. Dort auch diagnostische Rückführungen. Im Testbetrieb kann der Kanal mit Software funktionell nachgebildet werden (quasistaische Diagnose)
  • Testauslösung im Wartungsbetrieb (Bildschirmbedienung)
  • Gerätekonfiguration,  Mikroprogramm-Vergleichsstop usw. im Systembetrieb (Bildschirmbedienung)

Es ist alles soft, keine Jumper, Schalter o. dergl. Es werden drei Gerätefunktionen unterstützt:

  • linker Bildschirm (Hauptkonsole): 3270 oder 1052
  • obere Hälfte rechter Bildschirm (Hilfskonsole): 1052
  • Drucker

1052 =  wie Bedienschreibmaschine (Schreibmaschinenmodus), 3270 = wie Bildschirmsystem (Displaymodus).

Die Bussteuerung (Bus Control)

Aufgaben: Bus-Sequencer, Steuerung der "kleinen" Peripherie (Tastatur, akustische Signalisierung, Wartungsfeld, Bedienfeld usw.), Fehlerbehandlung, Wartungs- und Fehlersuchfunktionen, Protokolldruck im Fehlerfall.

  • Z 80 CPU, 4 * PIO, 1 * CTC
  • 10 kBytes ROM
  • 1 kBytes SRAM
  • Anschluß für Diagnoseadapter

Multimaster-Bussystem mit 8 Daten- und 20 Adreßleitungen. Mastervermittlung in Kombination der Prinzipien Daisy Chain (vgl. Standardinterface) und unabhängige Anforderungen (vgl. PCI). Beides mit durchgehenden Flachbandkabeln  zu implementieren, also mit 1:1-Verbindungen aller Einrichtungen, erforderte einige Überlegungen (das Standardinterface hat ankommende und abgehende Kabel, der PCI-Bus hat unabhängige Anforderungs- und Bestätigungsleitungen auf dem Motherboard).  Asynchroner Betrieb mit Handshaking, wählbar mit neuer Mastervermittlung nach jedem Zyklus (Multiplexbetrieb) oder nachdem der Master den Bus freigegeben hat (Burst-Betrieb). Fehlersignalisierung, Vergleichsstopsignalisierung, Interruptauslösung,  selektives Rücksetzen. Ein Slave kann den Buszyklus entweder zu Ende bringen (Antwortsignal REPLY) oder abweisen (Antwortsignal RELEASE), falls er zur Zeit nicht in der Lage ist oder Wichtigeres zu tun hat. Sonderzustand (NES = Non Executive State), in dem die Bussteuerung unbeschränkten Zugrff auf alle Slaves hat, unabhängig von deren aktuellen Arbeitszustand (zwecks Fehlerbehandlung usw.). Die Mikroprozessoren in den Slaves verweilen dabei  im Wartezustand.

Tastatur

Das Tastenlayout war vorgegeben (QWERTY statt QWERZ). Grundsätzliches Tastenlayout wie Bildschirmsystem IBM 3270. Es gab auch eine kyrillische Tastatur. Rechts außen zwei zusätzliche Reihen Bedientasten:

  1. 5 Funktionstasten, frei programmierbar (VFKs = Variable Function Keys). Beschriftung erscheint in der Mitte der unteren Hälfte des rechten Bildschirms.
  2. Tasten der CPU-Bedienung. Vgl. System/370 Principles of Operation.
  • Die Tastatur ist ein reines Tastenfeld. Abfrage vom Mikroprozessor der Bussteuerung. Mehrfach-Rollover und Typematic.
  • Halleffekt-Tasten, also prellfrei
  • Tastenabfrage über Multiplexer. Also keine Phantom Keys / kein Ghosting. Unbeschränkte Mehrfachbetätigung. So kann man z. B. die Taste TOD SEC niederhalten und die Uhrzeit eintippen.

Akustische Signalisierung

  • Lautsprecher. Signalerzeugung auf der Verteilerplatine, von der Bussteuerung gesteuert.
  • Verschiedene Pieps- und Signaltöne (Tastenbetätigung, Eingabefehler, Gerätefehler usw.)
  • Konfiguration und Lautstärkeeinstellung über Bildschirmbedienung
  • Lautstärkebeeinflussung über einen einfachen D-A-Wandler mit geschalteten Widerständen. Hierüber kann auch Musik und Sprache ausgegeben werden (nur hatte sich damals niemand gefunden, die Wavetables bzw. Phoneme herzustellen...).

Drucker

Nadeldrucker, um die 40 Zeichen/s, Zeichenraster 5 *7. Interface parallel ähnlich Centronics. Drucker ohne Zeilenpuffer. Durchlaufendes Drucken erfordert Zeichenanlieferung in harter Realzeit (sehr wenige ms). Wird die Zeit überschritten, hält der Drucker zwei Zeichen später an (Übergang in den Start-Stop-Betrieb; vom Hersteller garantiert). Das wird überwacht. Ggf. wird zweimal Rückschritt (Backspace) gegeben, dann wird neu gedruckt.

Druckeranschluß über Dual Printer Adapter:

  • Drucken während des Normalbetriebs von SBC 2 gesteuert
  • Nutzung als Ausgabeberät  (über Druckerkommandos) und für Bildschirmkopien
  • Zeichenausgabe über beschleunigte Interruptbehandlung unter Nutzung der Austauschregister des Z80
  • Drucken im Wartungsbetrieb von der Bussteuerung gesteuert. So werden Fehlernachrichten und Fehlerprotokolle ausgegeben (ERROR DUMP).

Floppy-Disk-Subsystem

Laufwerke 8", FM-Aufzeichung. Also das einfachste, was es seinerzeit gab. Alle fangen mal klein an... Es hat viel Arbeit und Lehrgeld gekostet, einschließlich des mißglückten Versuchs, eine digitale PLL zu bauen, ohne sich um die Theorie zu kümmern. Wenn man den I-Anteil im Regler wegläßt, darf man sich nicht wundern, daß es dauernd schwingt -- aber darauf muß man erst einmal kommen (war mein Fehler...). Erste Versuche mit Impulstrennung und -erzeugung über digitale Zählstufen (Funktion wie Monoflops). Endlösung dann eine industrieübliche analoge PLL mit Operationsverstärkern.

  • Adaptierung an SBC 1 über Z80 SIO
  • Floppy-Disk-Adapter hat eine gewisse ROM-Ausstattung, um den SBC mit den ersten Programmen zu versorgen. Die beiden SBCs sind baugleich.
  • Eigenes Format (SCM-Format*). Keine Sektoren, sondern jeweils die komplette Spur (4 kBytes). Komplette Spur im SBC zwischengepuffert
  • Geschwindigkeitsmäßig gar kein Vergleich mit Softsektorierung. Maschine war nach dem Einschalten viel  schneller betriebsbereit als die üblichen PCs (und würde womöglich auch heute noch gegen manchen PC gewinnen...)
  • Dateisystem auf elementare Weise objektorientiert (Deskriptorprinzip angeregt von Burroughs 5500, aber stark vereinfacht)
  • Fehlerkorrektur mit ineinandergeschachtelten (interleaved) Hamming-Codes, wie beim ECC am Arbeitsspeicher (64 Daten- und 8 ECC-Bits). Ineinanderschachtelung so, daß Burst-Fehler bis zu 128 Bits korrigiert werden können
  • Das übliche IBM-Format kann gelesen werden. So wurden Progammdisketten vom Entwicklungssystem in SCM-Disketten konvertiert (Dienstfunktion).

          *: SCM = Saechsische Computer Manufactur...

Diagnoseadapter

Er dient zur Fehleranzeige und Testauslösung. Die Funktionseinheiten mit Z80 haben einen entsprechenden Anschluß. Es ist eine anzusteckende kleine Platine, ähnlich den sog. POST-Cards der Personalcomputer*. Die Plastikverkleidung war gut gemeint, aber eigentlich unnötig...

*: Nur mit mehr Funktionen und von Grund auf  in die Maschine eingebaut (kein Add-on, sondern ein Feature).

  • Segmente der Siebensegmentanzeigen einzeln programmseitig setzbar. Damit können auch Sonderzeichen, umlaufende Balken usw. dargestellt werden
  • Dezimalpunkte für zusätzliche Zustandsanzeigen verwendet
  • Sensortaste zum Rücksetzen.Sensor deshalb, damit man keinen seitlichen Druck ausüben muß. Sanftes Berühren genügt
  • Diagnoseadapteranschluß unmittelbar am Z80, so daß Zugriffe auch dann möglich sind, wenn schwere Fehler in der Bussteuerung, Speichervermittlung usw. vorliegen. Prinzip der Hardcore-Diagnose. Am Anfang müssen nur Z80 und ROM funktionieren. Das genügt schon, um die ersten Testprogramme auszuführen
  • 8 über den Datenbus des Z80 programmseitig lesbare DIL-Schalter zur Testauswahl.
  • DIL-Schalter DIAG ZERO FORCING, um zu erzwingen, daß eine feste Null vom Datenbus gelesen wird (NOP-Befehl). Freilauffunktion für Prüfungen mittels Oszilloskop und Signaturanalyse
  • DIL-Schalter INIBIT DIAG IN zum Unterdrücken von Lesezugriffen. Diagnaoseadapter bleibt am Datenbus hochohmig. Vorkehrung zur Hardcoreprüfung

SCM-Code

Es ist ein 7-Bit-Code  mit lateinischen und kyrillischen Zeichen. Ergänzende Sonderzeichen für einfache Graphik und Siebensegmentanzeige. Weshalb etwas Eigenes?

  • Um zügig entwickeln zu können. Offizielle, von internationalen Gremien verwaltete Codes werden immer wieder geändert. Die Zeichen bleiben, nur die Position in der Codetabelle ändert sich
  • Wir brauchen die 8. Bitposition für die Feldsteuerzeichen*. Ein 9. Bit paßt schlecht zum Z80. Auch ist es eine Aufwandsfrage. Die Platinen sind zwar groß, können aber nicht unbegrenzt viele Schaltkreise aufnehmen...
  • Die Hexadezimalzeichen 0...9. A...F sollen in einer Spalte liegen, um die elementaren Routinen der Wartungsbedienung bequem programmieren zu können. Auch diese Bedienfunktionen sind soft und laufen über Bildschirm und Tastatur. Die wichtigsten sollen auch ohne Diskette funktionieren. Es sind aber nur wenige kBytes ROM...
  • Die Wandlung an den äußeren Schnittstellen geht schnell (binäre Codetabellen)

*: Ähnlich 3270 Attribute Characters, nur anders codiert. Zudem auch inverse Darstellung möglich.

 

-- Fortsetzung --

 

 

 

 

Aktuelles:

14. 11. 2017

Seite aktualisiert

Der Rückblick als PDF

Fortsetzung

Vorgänger und Nachfolger:

System .002b:

System .005:

System .011:

 

Bildquellen: Firmenprospekte / privat. Besseres nicht verfügbar...