TR 440

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

TR 440 (gelesen: vier-vierzig) ist die Bezeichnung des von der Telefunken AG, später AEG-Telefunken, danach Computer Gesellschaft Konstanz, aus dem „Telefunken-Rechner TR 4“ weiterentwickelten Großrechners. Der erste Rechner wurde 1969 an das Deutsche Rechenzentrum in Darmstadt geliefert. Insgesamt wurden zusammen 45 Anlagen Typ TR 440 gebaut.

Der (auch: die) TR 440 oder TR440 (Schreibweise uneinheitlich) war an vielen deutschen Universitäten eingesetzt, unter anderem Ruhr-Universität Bochum (1971), Universität Düsseldorf, RWTH Aachen, Ludwig-Maximilians-Universität München und Technische Universität München am Leibniz-Rechenzentrum der Bayerischen Akademie der Wissenschaften, Universität Würzburg, Universität Hamburg, Technische Universität Berlin, Friedrich-Alexander-Universität Erlangen-Nürnberg, Eberhard Karls Universität Tübingen, Universität Stuttgart, Universität Konstanz, Universität des Saarlandes, Universität Kaiserslautern, Universität Marburg, Technische Universität Clausthal und Forschungseinrichtungen wie der GKSS in Geesthacht. Der Erlangener Rechner war als einziger mit einem Dreifach-Prozessor ausgerüstet, die anderen liefen in der Endphase teilweise mit Doppelprozessoren.

Technische Einzelheiten[Bearbeiten]

Register (Rechenwerk, 48 Bit + Typenkennung):

  • A – Akkumulator
  • Q – Quotientenregister
  • D – Multiplikandenregister
  • H – Hilfsregister
  • Y – Schiftzähler (8 Bit)
  • M – Markenregister (1 Bit)

Im Akkumulator werden Transport- und Rechen-Operationen ausgeführt, außerdem dient das Register als Zwischenspeicher für zu bearbeitende Daten. Mit dem Quotientenregister kann der Akkumulator zu einem bei Multiplikation und Division notwendigen doppeltlangen Register verbunden werden.

Register (Befehlswerk, 24 Bit):

  • BL – Bereitadressenregister
  • F – Befehlsfolgeregister
  • X – Indexbasisregister (22 Bit)
  • K – Merklichterregister (8 Bit)
  • U – Unterprogrammregister (8 Bit)

Das Indexbasisregister enthält die Anfangsadresse eines Bereiches von 256 Halbworten des Hauptspeichers, die einem Programm als Indexspeicher dienen.

Das Ganzwort hat im Speicher 52 Bit, von denen für die eigentliche Informationsdarstellung 48 Bit benutzt werden. Zwei Bit enthalten die Typenkennung

  • 0 – Gleitkommawert oder höherwertiger Teil bei doppelter Genauigkeit
  • 1 – Festkommawert oder niedrigwertiger Teil einer doppelt genauen Gleitkommazahl
  • 2 – Befehlsworte oder Adressen (2 je Ganzwort)
  • 3 – Zeichenkette (meist 6 Zeichen je Ganzwort) oder beliebige Bitmaterie

Zwei Bit enthalten eine Prüfsumme, die Dreierprobe, mit denen die in seltenen Fällen auftretenden Maschinenfehler erkannt werden können. In den Registern entfällt die Dreierprobe.

Die Ganzzahl-Darstellung erfolgt im Einerkomplement, das heißt Negation durch bitweise Umkehrung, die Gleitkommazahl-Darstellung durch Exponent zur Basis 16, mit 8 Bit Exponent, 38 Bit (84 bei doppelter Genauigkeit) Mantisse.

Bei Fest- und Gleitkommazahlen sind in den Rechenwerksregistern zwei Bit für die Darstellung des Vorzeichens vorgesehen; werden diese beiden Bits bei einer Rechenoperation verschieden, so ist das ein Zeichen für die Überschreitung des vorgesehenen Zahlenraums, wodurch eine Programmunterbrechung, der so genannte BÜ-Alarm ausgelöst wird. Im Speicher ist – im Gegensatz zu den Rechenwerksregistern – dieser Überlauf-Schutz unnötig; hier steht das zusätzliche Vorzeichenbit als Marke zur Verfügung, etwa zur Kennzeichnung des letzten Koeffizienten eines Polynoms.

Eine architektonische Besonderheit sind typenkennungsabhängige Maschinenbefehle: einige Befehle arbeiten unterschiedlich, je nach der Typenkennung des Operanden; andere sind nur auf Operanden mit bestimmter Typenkennung anwendbar. Beispiele:

  • Der Befehl B (für Bringe) kopiert ein Wort aus dem Speicher ins A-Register; hat diese Speicherzelle die TK 0 oder 1, so wird deren Markenbit ins M-Register kopiert und das linke Vorzeichenbit im A-Register ans rechte angeglichen. Bei Typenkennung 2 oder 3 bleibt dagegen das M-Register unverändert und sämtliche Bits des Operanden werden ins A-Register übertragen.
  • Der Befehl S (für Springe) muss auf ein Halbwort in einem Wort mit TK 2 führen; andernfalls wird eine Programmunterbrechung, der so genannte TK-Alarm ausgelöst.

Außer Halb-, Ganz- und Doppelworten können durch spezielle Befehle neben Bytes (wahlweise zu 4, 6, 8 oder 12 Bits) auch beliebige Wortausschnitte transportiert werden.

Vorgesehene Peripheriegeräte[Bearbeiten]

Zentrales Bedienelement für die Operateure und zugleich Protokolldrucker war eine IBM Selectric Kugelkopfschreibmaschine. Daneben war über die zentrale Anzeigetafel jederzeit die Kanalauslastung (Zentraleinheit ↔ Speicher) ersichtlich. Nach der Verschrottung der Hamburger Maschine überlebte dieses Panel als „Kunst am Bau“ und ziert das Treppenhaus des Rechenzentrums.

Ein Rechnerneustart – also kein Technischer Grundzustand nach Rechnerstillstand – erfolgte mit einem Bootprogramm auf Lochstreifen. So konnte das restliche Betriebssystem vom Plattenspeicher auf den schnelleren Trommelspeicher und in den Kernspeicher geladen werden.

Betriebssystem BS3[Bearbeiten]

Programmiersprachen[Bearbeiten]

  • Algol 60
  • Algol 68
  • BASIC (nur BASIC-Interpreter, kein Compiler)
  • FORTRAN IV (Compiler und Interpreter)
  • Pascal
  • PL/I (eine Portierung des Multics-PL/I-Compilers)
  • COBOL (auch ANSI-COBOL)
  • RPG
  • GPSS
  • TAS (Telefunken-Assembler-Sprache, ein Makro-Assembler)
  • PS440, eine hardware-orientierte Sprache mit Syntaxelementen höherer Programmiersprachen
  • BCPL
  • AIDA, Algol60-Interpreter
  • ELAN: In der Bielefelder Installation des TR440 stand ein von Ulrich Bartling und Jochen Liedtke entwickelter ELAN-Compiler zur Verfügung.


Kommandosprache[Bearbeiten]

  • mehrere parallel ablaufende Stapelprogramme (Grundlast)
  • dialogfähiges Teilnehmer-Rechensystem über Satellit TR 86 (bis zu 48 Teilnehmer gleichzeitig)
  • Assemblerbefehle (SSR…) und (Befehls-)Kommandos in deutsch. Beispiele:
    • $EDIERE Beispiel
    • $RECHNE Beispiel,,Pascal – oder in Einzelkommandos:
    • $UEBERSETZE Beispiel,Pascal – alternativ:
      • $UEBERSETZE,,Sprache=Pascal,Quelle=Beispiel
    • $MONTIERE Beispiel
    • $STARTE Beispiel
    • $.
    • $MBAUFSPANNE

Bemerkenswert:

  • Die gemeinsame LFD (LangFristige Datenhaltung) erstreckte sich über jeweils mehrere Plattentürme und konnte im Tandembetrieb (Verbund zweier TR 440) betrieben werden.
  • Das BS3 optimierte seinen Durchsatz am besten selbst, für Spezialjobs (in deutsch: Aufträge) konnten jedoch über die Steuerkonsole die Prozesspriorität und erforderliche Ressourcen genau dosiert werden.
  • Kommandos und Parameternamen konnten bis zur Eindeutigkeit beliebig abgekürzt werden, d. h. $UEBERSETZE wurde zu $UE und QUELLE zu Q.
  • Durch die Ausnutzung der Voreinstellungen (-STD-) und der Kenntnis der Parameterposition von Optionen konnte die Schreibarbeit dabei enorm reduziert werden.
  • Aber auch das Gegenteil war möglich (s. o.): die Parameter durften in beliebiger Reihenfolge (auch mehrfach) unter Angabe des Parameternamens eingegeben werden und sich über mehrere Zeilen bzw. Lochkarten erstrecken
  • Eine weitere Vereinfachung bzw. Steuerungsmöglichkeit ergab sich durch den Einsatz vordefinierter ($GEDAECHTNIS) oder selbst vereinbarter Kommandos, gesetzten Variablen und Wahlschaltern.
  • Bei Fehlern in der Eingabe oder Programmausführung gab es im Dialog mehrstufige Korrekturmöglichkeiten.
  • Zu übersetzende Programme konnten optional mit dynamischer Kontrolle und Überwachung versehen werden, um beispielsweise die Einhaltung von Feldgrenzen bei Arrays zur Ausführungszeit zu prüfen.
  • Zahlreiche Compiler standen zur Verfügung bzw. wurden entwickelt und ermöglichten sogar die Übersetzung verschiedensprachlicher Quellen und Montage zur gemeinsamen Ausführung.
  • Die Typenkennung konnte fehlerhafte – durch noch nicht initialisierte Variable oder programmiertechnisch ungewollte (z. B. Zuweisung einer Zahl auf Stringvariable) – Wertzuweisungen verhindern.
  • Nach Programmabbrüchen konnte optional ein Dump (Aktualwerteausdruck) der verwendeten Variablen mit Klarnamen und – durch die Typenkennung möglich – in leicht lesbarer Normaldarstellung erstellt werden.

Quelle[Bearbeiten]

  • E. Thiele (Hrsg.): Telefunken nach 100 Jahren: Das Erbe einer deutschen Weltmarke. Nicolai, Berlin 2003
  • AEG Telefunken: TR440 Große Befehlsliste, 6. Änderungsdienst, Konstanz (1970)

Literatur[Bearbeiten]

  • Informatik – Forschung und Entwicklung. Springer-Verlag, Berlin/Heidelberg; ISSN 0178-3564 (Print) 0949-2925 (Online); Volume 22; Number 4 / Oktober 2008
  • Anwendung einer binären Verweiskettenmethode beim Aufbau von Listen. Elektronische Rechenanlagen 10 (1968), von Gernot Gwehenberger beschreibt eine Suchmethode und Datenstruktur, die für die Realisierung des TR440 Assemblerprogramms entwickelt wurde

Weblinks[Bearbeiten]