Felix C
From Wikipedia, the free encyclopedia
Die Felix-C-Rechnerfamilie war eine in Rumänien von ICE Felix hergestellte Familie von Großrechnern, die ab 1970 in Großserie gefertigt wurde. Die Rechner wurden in großer Zahl in rumänischen Rechenzentren eingesetzt und teilweise exportiert; sie blieben etwa zehn Jahre lang im produktiven Einsatz, vorwiegend für industrielle Steuerung und administrative Datenverarbeitung. Obwohl ihre Leistung die der im Einheitlichen System (ESER) zusammengefassten Rechner der sozialistischen Länder übertraf, wurde dem Felix C die Aufnahme in diese Rechnerfamilie verwehrt.

Die Bezeichnung Felix C-nnn gibt die verfügbare Arbeitsspeicherkapazität in Kilobyte an (32, 128, 256, 512 oder 1024). Die Architektur basiert auf den französischen IRIS-Rechnern der Compagnie internationale pour l’informatique (CII) – daher auch der Name SIRIS für das Betriebssystem. Die IRIS-Rechner wiederum waren unter Lizenz nach dem Vorbild der amerikanischen SDS-Sigma-7-Rechner von Scientific Data Systems entstanden, ohne jedoch binärkompatibel zu sein; die Maschinenbefehle waren lediglich funktional äquivalent. Das Betriebssystem SIRIS wurde eigenständig von CII entwickelt und unterschied sich von den SDS-Betriebssystemen.
Heute existiert kein funktionsfähiges Exemplar mehr. Es gibt jedoch das Simulatorprojekt RASSIRIS,[1] das auf den zahlreichen noch erhaltenen technischen Handbüchern basiert.
Hardware

Die Architektur des Felix C ist festverdrahtet (englisch hardwired control). Die Arithmetisch-logische Einheit (ALU) beherrscht Operationen mit ganzen Zahlen (mit und ohne Vorzeichen), mit Gleitkommazahlen in einfacher und doppelter Genauigkeit sowie mit BCD-kodierten Dezimalzahlen. Der Hauptspeicher wurde mit Ferritkernen realisiert; die physische Verdrahtung ist in Wire-Wrap-Technik ausgeführt.
Die Kommunikation mit den Peripheriegeräten erfolgte über eine spezialisierte Einheit namens USM (rumänisch Unitate de Schimburi Multiple, Mehrfach-Austauscheinheit), die über einen eigenen Befehlssatz verfügte und DMA implementierte. Anschließbar waren die damals üblichen Peripheriegeräte: Lochkartenleser, Lochstreifenleser, Magnetbandlaufwerke, Plattenlaufwerke (kleine vom Typ DIAM und große vom Typ DIMAS) sowie Kettendrucker. Ab 1978 kamen Bildschirmterminals vom Typ DAF 1001 hinzu. Die Bedienerkonsole war fest verdrahtet und bestand aus einer dedizierten Schreibmaschine mit Farbband.
Befehlsformat
Das Befehlsformat ist fest auf 32 Bit ausgelegt und gliedert sich in folgende Felder:
- I (1 Bit) – indirekte Adressierung
- B (3 Bit) – Basisregister für die Adressrelokation (R8 bis R15, üblicherweise R14)
- Q (4 Bit) – Arbeitsregister
- X (1 Bit) – Indexierung
- F (7 Bit) – Operationscode
- D (16 Bit) – Displacement bzw. Speicheradresse
Der Rechner verfügt über 16 Allzweckregister, die symmetrisch behandelt werden – es gibt keinen dedizierten Akkumulator. Die beiden Gruppen R0–R7 und R8–R15 werden in den Befehlen jedoch unterschiedlich verwendet. Der Befehlssatz ist komplex im Sinne von CISC und nutzt mehrere Adressierungsarten, weist aber eine einfache und orthogonale Grundstruktur auf.
Eine Besonderheit: Die 16 Register sind physisch in den ersten 64 Byte des Hauptspeichers abgebildet und lassen sich sowohl über die Felder B und Q als auch über Speicheradressen ab Adresse 0 ansprechen.
Der Felix C unterstützt Befehle auf Byte-, Halbwort- (16 Bit), Wort- (32 Bit), Doppelwort- (64 Bit) und Byteketten-Ebene (bis 128 Bit). Je nach Variante standen Gleitkomma-, Festkomma- oder Zeichenkettenoperationen zur Verfügung. Der Felix C-1024 besaß einen EDIT-Befehl, der Festkommazahlen nach einem COBOL-PICTURE-Muster formatieren konnte. Für 64-Bit-Operationen wurden Registerpaare mit gerader Nummer verwendet. Der Felix C-512 hatte einen erweiterten Befehlssatz, den der Felix C-1024 nochmals ergänzte.
Betriebssystem
Das Betriebssystem SIRIS ermöglichte Mehrprogrammbetrieb mit bis zu drei festen Speicherpartitionen, die beim Systemstart festgelegt wurden. Die Steuerung erfolgte über eine Jobsteuersprache (JCL), die im Prinzip der auf anderen Systemen (etwa der IBM-System/360-Serie) verwendeten ähnelte, jedoch systemspezifisch war.
SIRIS umfasste:
- ein Dateisystem namens SGF (Système de Gestion des Fichiers), das die in COBOL üblichen Dateiformate unterstützte;
- eine Bibliotheksverwaltung für Quellbibliotheken (mit Änderungs- und Versionsverwaltung), Objektbibliotheken im relozierbaren Format (BT) und ausführbare Bibliotheken im Format IMT;
- einen Systemgenerator zur Erzeugung eines ladefähigen Systemabbilds mit konfigurierbaren Parametern;
- Compiler für ASSIRIS (Assemblersprache), MAGIRIS (Makrogenerator), Fortran, COBOL, TTPL (eine eingeschränkte APL-Variante), BASIC und Lisp;
- das Datenbankverwaltungssystem SOCRATE;
- Datenfernverarbeitungssysteme wie SESAM.
Der Felix C-8000 verwendete anstelle von SIRIS das Betriebssystem HELIOS.
Symbiont
Jedes Programm benötigte mindestens zwei Peripheriegeräte – eines für die Eingabe und eines für die Ausgabe. Bei einer Ein-/Ausgabe-Operation wurde die Programmausführung durch die Zentraleinheit so lange unterbrochen, bis das Peripheriegerät geantwortet hatte. Während dieser Wartezeit konnte die Zentraleinheit ein anderes, im Arbeitsspeicher befindliches Programm ausführen. Die Partitionierung des Speichers erlaubte es, in jeder Partition ein Programm vorzuhalten; die abwechselnden Zugriffe auf die Peripheriegeräte erzeugten den Eindruck gleichzeitiger Programmausführung (Mehrprogrammbetrieb) und verbesserten die Auslastung der Zentraleinheit.
Da Peripheriegeräte teuer waren, konnte nicht jedes Programm über eigene physische Ein- und Ausgabegeräte verfügen. Die Lösung bestand darin, Ein-/Ausgabe-Operationen über Dateien (als "virtuelle Geräte") abzuwickeln, deren Inhalt von den physischen Geräten bereitgestellt bzw. abgeholt wurde, sobald diese verfügbar waren.[2] Üblicherweise wurden die Aufträge partitionsweise über separate Auftragsketten verarbeitet und vom Bediener manuell gesteuert. Da dieses Verfahren nicht optimal war, entstand die Idee einer ergänzenden Anwendung, die die Verteilung der Aufträge nach benötigten Ressourcen (etwa Speicher) und Ein-/Ausgabe-Anforderungen optimieren sollte.[3]
Diese Anwendung wurde vom Zentralinstitut für Leitung und Informatik (ICI) unter dem Namen Symbiont entwickelt; 1978 erschien die zweite Version SY V2. Tests ergaben eine Steigerung des Auftragsdurchsatzes um 15–25 % gegenüber dem klassischen Mehrprogrammbetrieb.[2] Die Komplexität der Anwendung[4] überstieg jedoch das übliche Qualifikationsniveau der Konsolenbediener – in der Regel Absolventen der Sekundarstufe –, sodass sich die Nutzung in Grenzen hielt und die Bediener den einfacheren klassischen Mehrprogrammbetrieb bevorzugten.
Varianten
| Modell | Arbeitsspeicher | Anmerkungen |
|---|---|---|
| Felix C-32 | 32 KiB | Basismodell |
| Felix C-256 | 256 KiB | |
| Felix C-512 | 512 KiB | erweiterter Befehlssatz |
| Felix C-515 | ||
| Felix C-1024 | 1024 KiB | nochmals erweiterter Befehlssatz, EDIT-Befehl |
| Felix C-5000 | ||
| Felix C-8000 | Betriebssystem HELIOS statt SIRIS | |
| Felix C-8010 |
Preis eines Felix-C-Systems: ca. 30.000.000 Lei (1979).