Der KDF9 war ein früher britischer 48-Bit -Computer, der von English Electric (1968 in International Computers Limited (ICL) aufgegangen) entwickelt und gebaut wurde. Die erste Maschine wurde 1964 in Betrieb genommen, die letzten beiden der insgesamt 29 Geräte wurden 1980 im National Physical Laboratory außer Betrieb genommen . [ 1 ] Der KDF9 war für mathematische und wissenschaftliche Anwendungen konzipiert und wurde fast ausschließlich in diesen Bereichen eingesetzt – 1967 waren neun Exemplare an britischen Universitäten und Fachhochschulen im Einsatz. [ 2 ] Der parallel entwickelte KDF8 war für kommerzielle Rechenanwendungen ausgelegt.
Die KDF9 war ein frühes Beispiel für eine Maschine, die Multiprogrammierung direkt unterstützte und Offsets im Kernspeicher nutzte , um die Programme in separate virtuelle Adressräume aufzuteilen. Für die Plattform wurden mehrere Betriebssysteme entwickelt, darunter einige, die eine vollständig interaktive Nutzung über PDP-8- Maschinen als intelligente Terminalserver ermöglichten . Es standen verschiedene Compiler zur Verfügung, insbesondere sowohl Checkout- als auch global optimierende Compiler für Algol 60 .
Architektur
Die Logikschaltungen des KDF9 waren vollständig in Halbleitertechnik ausgeführt . Der KDF9 nutzte transformatorgekoppelte Dioden-Transistor-Logik , bestehend aus Germaniumdioden, etwa 20.000 Transistoren und etwa 2.000 Ringkerntransformatoren . [ 3 ] Er wurde mit einem 1-MHz-Takt betrieben, der in jedem Taktzyklus zwei Impulse von 250 ns Dauer im Abstand von 500 ns lieferte. Die maximale Konfiguration umfasste 32.000 Wörter mit 48-Bit-Kernspeicher (192 KB) und einer Zykluszeit von 6 Mikrosekunden. Jedes Wort konnte eine einzelne 48-Bit-Ganzzahl oder Gleitkommazahl , zwei 24-Bit-Ganzzahlen oder Gleitkommazahlen, sechs 8-Bit- Befehlssilben oder acht 6-Bit-Zeichen speichern. [ 4 ] Zudem war die effiziente Verarbeitung von Doppelwort-Zahlen (96 Bit) im Ganzzahl- und Gleitkommaformat möglich. Es gab jedoch keine Möglichkeit zur Byte- oder Zeichenadressierung, was die Verarbeitung nicht-numerischer Daten deutlich erschwerte. Der Standardzeichensatz basierte auf einer für Algol 60 orientierten Version des Friden Flexowriter -Lochstreifencodes und enthielt ungewöhnliche Zeichen wie den Algol-Index 10. Jedes andere E/A-Gerät implementierte jedoch eine eigene Teilmenge davon. So ließ sich beispielsweise nicht jedes vom Lochstreifen lesbare Zeichen auch drucken.
Register
Die CPU-Architektur umfasste drei Registersätze. Der Nest-Registersatz war ein 16-fach verschachtelter Pushdown-Stapel arithmetischer Register. Der SJNS-Registersatz (Subroutine Jump Nesting Store) enthielt einen ähnlichen Stapel von Rücksprungadressen. Der Q-Registersatz bestand aus 16 Indexregistern mit jeweils 48 Bit, unterteilt in Zähler (C), Inkrement (I) und Modifikator (M) mit jeweils 16 Bit. Flags in einem Speicherzugriffsbefehl legten fest, ob die Adresse durch den M-Teil eines Q-Registersatzes modifiziert werden sollte und, falls ja, ob der C-Teil um 1 dekrementiert und der M-Teil um den Inhalt des I-Teils inkrementiert werden sollte. Dies ermöglichte eine sehr effiziente Codierung von Zählschleifen. Drei zusätzliche Nest-Ebenen und eine zusätzliche SJNS-Ebene waren für den Director, das Betriebssystem, reserviert. Dadurch konnten Kurzweg-Interrupts ohne explizites Speichern und Wiederherstellen von Registern behandelt werden. Der Interrupt-Overhead betrug somit nur drei Taktzyklen.
Befehlssatz
Die Befehle bestanden aus ein, zwei oder drei Silben. Obwohl die Entwickler des IBM 7030 Stretch den Begriff „ Byte “ für eine Gruppe von acht Bits geprägt hatten , war er noch nicht weit verbreitet, und English Electric verwendete den Begriff „ Silbe “ für das, was heute als Byte bezeichnet wird. Die meisten arithmetischen Operationen fanden im oberen Bereich des Nest statt und verwendeten einsilbige Befehle mit Nulladresse , obwohl Adressarithmetik und Indexaktualisierung separat im Q-Speicher verarbeitet wurden. Die Verarbeitung im Q-Speicher und einige Speicherzugriffsbefehle verwendeten zwei Silben. Speicherzugriffsbefehle mit einem 16-Bit-Adressversatz, die meisten Sprungbefehle und 16-Bit-Literal-Ladebefehle verwendeten alle drei Silben.
Die dichte Befehlscodierung und die intensive Nutzung der Registersätze führten dazu, dass für gängige wissenschaftliche Berechnungen, wie Skalarprodukt- und Polynom-Innenschleifen, vergleichsweise wenige Speicherzugriffe nötig waren. Dies kompensierte die relativ langsame Taktzeit des Kerns weitgehend und verlieh dem KDF9 etwa ein Drittel der Geschwindigkeit seines viel bekannteren, aber achtmal teureren und kommerziell deutlich weniger erfolgreichen Zeitgenossen, des Manchester/ Ferranti Atlas Computers .
Multiprogrammierung (Timesharing)
Der KDF9 war eines der ersten vollständig hardwaregesicherten Multiprogrammierungssysteme. Bis zu vier Programme konnten gleichzeitig unter der Kontrolle seines eleganten und einfachen Betriebssystems, dem Timesharing Director , ausgeführt werden. Jedes Programm war durch BA- (Basisadresse) und NOL-Register (Anzahl der Speicherorte) auf einen eigenen Kernbereich beschränkt. Jedes Programm verfügte über eigene Stack- und Q-Store-Register, die beim Start des jeweiligen Programms aktiviert wurden, wodurch ein sehr effizienter Kontextwechsel ermöglicht wurde.
Jedes Programm konnte Hardware-E/A-Geräte direkt ansteuern, war jedoch durch Hardwareprüfungen auf die vom Director zugewiesenen Geräte beschränkt. Jeder Versuch, ein nicht zugewiesenes Gerät zu verwenden, führte zu einer Fehlerunterbrechung. Eine ähnliche Unterbrechung wurde durch Überfüllung (oder Überentleerung) des Nest- oder SJNS-Speichers oder durch den Zugriff auf einen Speicherbereich oberhalb der im NOL-Register angegebenen Adresse ausgelöst. Anders verhielt es sich mit der Sperrunterbrechung. Diese trat auf, wenn versucht wurde, auf einen Speicherbereich zuzugreifen, der gerade von einem E/A-Gerät verwendet wurde, sodass der Zugriff auf die DMA-Puffer hardwareseitig gesperrt war. Blockierte ein Programm aufgrund einer Sperre oder wartete es freiwillig auf den Abschluss einer E/A-Übertragung, wurde es unterbrochen und der Director wechselte zum Programm mit der höchsten Priorität, das selbst nicht blockiert war. Sobald eine Sperre aufgehoben oder eine erwartete Übertragung abgeschlossen war und das verantwortliche Programm eine höhere Priorität als das aktuell laufende Programm hatte, unterbrach die E/A-Steuerungseinheit (IOC), um einen sofortigen Kontextwechsel zu ermöglichen. IOC sah außerdem Vorkehrungen vor, um eine Prioritätsumkehr zu vermeiden, bei der ein Programm mit hoher Priorität auf ein Gerät wartet, das von einem Programm mit niedrigerer Priorität belegt ist, und in diesem Fall einen separaten Interrupt anfordert.
Spätere Betriebssysteme, darunter Eldon 2 [ 1 ] an der Universität Leeds und COTAN, das von den UKAEA Culham Laboratories in Zusammenarbeit mit der Universität Glasgow entwickelt wurde, waren vollständig interaktive Mehrzugriffssysteme mit PDP-8- Frontends zur Steuerung der Terminals.
Die Algol-60-Compiler Kidsgrove und Whetstone gehörten zu den ersten ihrer Art. Der Kidsgrove-Compiler legte den Schwerpunkt auf Optimierung; der Whetstone-Compiler erzeugte einen interpretativen Objektcode, der für das Debugging gedacht war. Durch die Instrumentierung des letzteren Compilers gewann Brian Wichmann die Statistiken zum Programmverhalten, die zum Whetstone- Benchmark für wissenschaftliches Rechnen führten [ 5 ] , welcher wiederum den Dhrystone- Benchmark für nicht-numerische Arbeitslasten inspirierte [ 6 ] .
Reminiszenz
Maschinencode-Befehle wurden in einer Oktalform geschrieben, die offiziell als Silbenoktal [ 7 ] (auch bekannt als „Slob-Oktal“- oder „Slob“-Notation, [ 8 ] [ 9 ] ) bezeichnet wurde. Sie repräsentierte 8 Bit mit drei Oktalziffern, wobei die erste Ziffer nur die beiden höchstwertigen Bits repräsentierte, während die anderen beiden Ziffern jeweils die verbleibenden Dreiergruppen von Bits darstellten.
Bei English Electric verwendete der Vorgänger DEUCE ein weit verbreitetes Matrixverfahren auf Basis des GIP (General Interpretive Programme). Die Unzuverlässigkeit von Röhrenmaschinen führte zur Einführung eines Summenprüfmechanismus zur Fehlererkennung bei Matrixoperationen. [ Anm. 1 ] Das Verfahren nutzte Block-Gleitkommaarithmetik mit Festkomma-Hardware, wodurch die Summenprüfungen präzise waren. Als das entsprechende Verfahren jedoch auf KDF9 implementiert wurde, verwendete es Gleitkommaarithmetik, ein neues Konzept mit nur begrenzter mathematischer Analyse. Schnell wurde deutlich, dass die Summenprüfungen nicht mehr präzise waren, und ein Projekt zur Entwicklung einer brauchbaren Prüfung wurde ins Leben gerufen. (In Gleitkommaarithmetik ist (A + B) + C nicht unbedingt dasselbe wie A + (B + C), d. h. die Addition ist nicht assoziativ.) Bald erkannte man jedoch, dass Fehlerraten bei Transistormaschinen kein Problem darstellten; sie funktionierten entweder korrekt oder gar nicht. Folglich wurde die Idee der Summenprüfung verworfen. Das anfängliche Matrixpaket erwies sich als sehr nützliches Systemtestwerkzeug, da es in der Lage war, umfangreiche Leistungsprüfungen zu generieren, lange bevor formellere Testpakete entwickelt wurden.
Es gibt die Legende, dass der KDF9 als Projekt KD9 (Kidsgrove Development 9) entwickelt wurde und das „F“ in der Bezeichnung vom damaligen Vorsitzenden nach einer langen und zähen Diskussion über den Namen des Rechners bei der Markteinführung vorgeschlagen wurde: „Mir ist es egal, wie ihr ihn nennt – “. Die Wahrheit ist jedoch weitaus profaner: Der Name wurde im Grunde willkürlich von einem Marketingmanager gewählt. [ 10 ] (Siehe auch KDF8 zur parallelen Entwicklung und Nutzung eines kommerziell ausgerichteten Computers.)
Das Betriebssystem EGDON wurde so benannt, weil eines davon nach UKAEA Winfrith ging : In Thomas Hardys Roman „ Die Rückkehr des Einheimischen “ wird Winfrith Heath als Egdon Heath bezeichnet . EGDON Fortran hieß EGTRAN. [ 10 ] Eldon wurde so genannt, weil der Computer der Universität Leeds in einer umgebauten Kapelle in Eldon untergebracht war.
Physisch
Die Maschine wog mehr als 10.300 Pfund (5,2 Short Tons; 4,7 t). Bedienpult mit Unterbrechungsschreibmaschine 300 Pfund (136 kg), Hauptspeicher und Ein-/Ausgabe-Steuereinheit 3.500 Pfund (1.587 kg), Rechen- und Hauptsteuereinheit 3.500 Pfund (1.587 kg), Netzteil 3.000 Pfund (1.360 kg). [ 11 ]
Anmerkungen
- ^ Die Summenprüfung war gleichermaßen gut gegen Programmierfehler geschützt, falls eine Matrix ganz oder teilweise versehentlich überschrieben werden sollte.
Referenzen
- ^ a b David Holdsworth (Winter 2009–10). „KDF9 Time Sharing: Eldon 2 is not EGDON!" . Computer RESURRECTION – Ausgabe 49 . Computer Conservation Society . Abgerufen am 3. Oktober 2010 .
- ^ Roberts, Goronwy (06.03.1967). „Computer“ . Parlamentarische Debatten (Hansard) . HC . Abgerufen am 08.07.2017 .
- ^ „Der KDF9-Computer – 30 Jahre später“
- ^ English Electric KDF9: Hochgeschwindigkeits-Datenverarbeitungssystem für Handel, Industrie und Wissenschaft (PDF) (Produktflyer). English Electric . ca. 1961. Publikationsnr. DP/103. 096320WP/RP0961. Archiviert (PDF) vom Original am 27.07.2020 . Abgerufen am 27.07.2020 .
- ^ Curnow, HJ und Wichman, BA " A Synthetic Benchmark " Computer Journal , Band 19, Ausgabe 1, Februar 1976., S. 43–49.
- ^ Weiss, Alan. "Dhrystone Benchmark: Geschichte, Analyse, "Bewertungen" und Empfehlungen" (PDF) .
- ^ Director - Manual (PDF) (Flussdiagramm). English Electric . ca. 1960er Jahre. Archiviert (PDF) vom Original am 27.07.2020 . Abgerufen am 27.07.2020 .(Anmerkung: Erwähnt den Begriff „Syllabenoktal“.)
- ^Beard, Bob (Herbst 1997) [1. Oktober 1996]. „Der KDF9-Computer – 30 Jahre später“ (PDF) . Resurrection – Bulletin der Computer Conservation Society . Nr. 18. Computer Conservation Society (CCS). S. 7–15 [9, 11]. ISSN 0958-7403 . Archiviert (PDF) vom Original am 27. Juli 2020. Abgerufen am 27. Juli 2020 .[1] (Anmerkung: Dies ist eine bearbeitete Fassung eines Vortrags, der am 1. Oktober 1996 vor der North West Group der Gesellschaft im Museum of Science and Industry in Manchester, Großbritannien, gehalten wurde. Darin werden die Begriffe „slob“ und „slob-octal“ als Äquivalent zu „syllabic octal“ erwähnt.)
- ^ „Architektur des English Electric KDF9-Computers“ (PDF) . Version 1. Computer Conservation Society (CCS). September 2009. CCS-N4X2. Archiviert (PDF) vom Original am 4. April 2020. Abgerufen am 27. Juli 2020 .(Anmerkung: Bezieht sich auf Beards Artikel von 1997. )
- ^ a b "(re)Introducing the KDF9" . www.findlayw.plus.com . Abgerufen am 27.12.2020 .
- ^ „English Electric | Selling the Computer Revolution | Computer History Museum“ . www.computerhistory.org . S. 27.
Externe Links
- Die English Electric KDF9
- Die Hardware des KDF9
- Die Software des KDF9
- KDF9 und Benchmarking
- Die KDF9: Eine Bibliographie
- Die KDF9-Zeichencodes
- ee9 , ein in Ada 2012 geschriebener KDF9-Emulator
- paskal , ein in Ada 2012 geschriebener KDF9-Pascal-Cross-Compiler
- Lieferliste und Anwendungsfälle für den English Electric KDF9 (Archiviert am 04.04.2020 im Internet Archive)
- Geschichte des KDF9 Algol-Compilers
- Der Whetstone KDF9 Algol Übersetzer
- Einige Anekdoten zum KDF9 Algol Compiler
- Präsentation über KDF9 Algol beim Besuch von Dijkstra
- KDF9 Nest (Bilder) Archiviert am 31.05.2023 im Internet Archive
- Quellcode für die KDF9-Portierung des Atlas Autocode-Compilers