# NonStop

Das NonStop-Verfahren bezeichnet besonders fehlertolerante Computersysteme mit hoher Verfügbarkeit, die im Bereich unternehmenskritischer, transaktionsintensiver Anwendungen verwendet werden. Sie wurde ab 1974 von Tandem Computers entwickelt und 1976 mit dem System Tandem NonStop I erstmals auf den Markt gebracht. Seit Tandem 1997 zunächst von Compaq und dann 2002 von Hewlett-Packard übernommen wurde, sind die Systeme heute unter der Marke HP Integrity NonStop Server ein Teil der HP Integrity Server-Familie.
NonStop-Systeme sind grundsätzlich Mehrprozessorsysteme, um im Falle von Hardware- oder Softwarefehlern ohne Ausfall weiterarbeiten zu können. Mit den 2008 eingeführten Blade Systemen sind auch Mehrkernprozessoren (Doppelkern und Vierkern) verfügbar.

## Geschichte und Technische Entwicklung
### Gründung

Tandem Computers wurde 1974 von James Treybig gegründet. Er war Mitarbeiter von HP und arbeitete an der HP-3000-Serie. Früh erkannte er den Bedarf für fehlertolerante OLTP (Online-Transaktionsverarbeitung) Systeme. Nach einem Wechsel zu Kleiner Perkins Caufield & Byers arbeitet er zwei Jahre an seiner Tandem-Idee, bevor er die Firma ins Leben rief. Die Hälfte der ersten 18 Mitarbeiter waren frühere Mitarbeiter von HP.

### TNS Stack Systeme
#### NonStop I

Das erste System war die Tandem/16 oder T/16, später umbenannt in NonStop I. 1975 wurde das Hardwaredesign vollendet und 1976 das erste System ausgeliefert. Das System bestand aus 2 bis 16 CPUs. Jede CPU hatte einen eigenen unshared Memory, einen eigenen I/O Prozessor, einen eigenen Bus; darüber hinaus gab es eine redundante Verbindung zwischen allen CPU über eine übergreifende Backplane, genannt Dynabus. Jeder Disk- und Netzwerkcontroller hatte Verbindung zu zwei CPUs und I/O-Controllern. Jede Festplatte war gespiegelt (RAID 1) und hatte physisch getrennte Verbindungen zu zwei Disk-Controllern. Beim Ausfall einer Festplatte konnte auf der Spiegelplatte weitergearbeitet werden. Beim Ausfall einer CPU, eines Controllers oder eines Bus war die Festplatte immer noch über alternative Wege erreichbar. Auch die Stromversorgung war innerhalb des Systems redundant ausgelegt. Die Systemkonfiguration wurde in sogenannten Mackie-Diagrammen dokumentiert, benannt nach dem Tandem-Mitarbeiter David Mackie. Kein Bauteil war als reiner Ersatz konstruiert, sondern alle wurden auch im Regelbetrieb genutzt.
Die T/16 CPU hatte ein proprietäres Design, eng verwandt mit der HP3000. Jede CPU bestand aus zwei Boards mit TTL Logic und SRAMs und arbeitete mit ca. 0,7 MIPS.
Die erste Version der T/16 hatte nur eine Programmiersprache: TAL, für Tandem Application Language. TAL war eine effektive, maschinenabhängige Systemprogrammiersprache (für Betriebssystem, Compiler etc.), die aber auch für – nicht portable – Anwendungen genutzt werden konnte. Sie war abgeleitet aus der HP3000 SPL language. Von der Semantik her gab es Ähnlichkeiten zu C, während die Syntax auf Burroughs ALGOL basierte. Darauf folgende Veröffentlichungen unterstützten Cobol74, Fortran, und Mumps.
Die Tandem-Systeme hatten ein proprietäres Betriebssystem, das sich deutlich von Unix oder HP3000 MPE unterschied. Die erste Bezeichnung T/TOS (Tandem Transactional Operating System) wurde wegen seiner Fähigkeit, Datenbanken vor Hardware- oder Softwareausfällen zu schützen, bald in Guardian umbenannt, was so viel wie ‚Wächter‘ bedeutet. Im Gegensatz zu allen anderen kommerziellen Betriebssystemen war Guardian ein nachrichtenbasiertes Betriebssystem, in dem alle Prozesse miteinander kommunizieren können (ohne die Nutzung von Shared Memory), unabhängig davon, in welcher CPU die Prozesse laufen. Diese Herangehensweise ermöglicht Cluster von prinzipiell unbegrenzt vielen Einzelrechnern, was zu dieser Zeit revolutionär war.
Alle wichtigen System- und Anwendungsprozesse waren als Master/Slave-Paare ausgelegt, die in verschiedenen CPUs liefen. Der Slave-Prozess bekam periodisch einen Speicherauszug vom Speicher des Master-Prozesses (Checkpointing) und konnte übernehmen, wenn der Master-Prozess in Probleme kam. Das ermöglichte der Anwendung, Fehler in einer CPU oder in einem Controller ohne Datenverlust zu überstehen. Das Checkpointing zwischen Primär- und Backup-Prozess erzeugte zwar einen gewissen Overhead, aber bei weitem nicht 100 % wie in anderen Systemen.

#### NonStop II

Im Jahr 1981 wurden die T/16 CPUs durch die NonStop II ersetzt. Der Hauptunterschied zur T/16 war die Unterstützung der 32-Bit-Adressierung durch das vom Benutzer umschaltbare „extended data segment“. Das ermöglichte die nächsten zehn Jahre der Softwareweiterentwicklung und war ein großer Vorteil gegenüber T/16 oder HP3000. Allerdings hatten die sichtbaren Register weiterhin 16-Bit Breite, was zusätzliche Instruktionen im Vergleich zu 32-Bit Systemen erforderlich machte. Alle folgenden Systeme der TNS-Architektur waren durch diesen ineffizienten Befehlssatz beeinträchtigt. Auch die NonStop II CPU hatte keinen größeren internen Datenbus, was zusätzlichen Mikrocode für 32-Bit-Adressen erforderlich machte. Eine NonStop II CPU hatte 3 Boards, mit ähnlichen Chips und Design wie die T/16, außerdem wurde der Hauptspeicher durch batteriegepufferten DRAM-Speicher ersetzt.

#### NonStop TXP

Im Jahr 1983 war die NonStop TXP CPU die erste Neuimplementierung der TNS Befehlssatzarchitektur. Sie bestand aus Standard TTL-Chips und Programmable-Array-Logic-Chips, mit 4 Boards pro CPU Modul. Zum ersten Mal wurde Cache Memory genutzt. Die CPU hatte eine direktere Implementierung der 32-Bit-Adressierung, aber immer noch einen 16-Bit Datenbus. Ein erweiterter Mikrocode erlaubte eine Reduzierung der Prozessor-Taktzyklen pro Instruktion; die Geschwindigkeit der CPU erhöhte sich auf 2,0 MIPS. Rack, Controller, Backplane und Bus blieben gleich. Der Dynabus und I/O Bus wurden bereits in der T/16 überarbeitet.
Bis zu 14 TXP und NonStop II Systeme konnten nun mittels FOX (Fiber Optics Extension – ein fehlertoleranter Glasfaser-Bus) miteinander verbunden werden; ein Cluster aus Clustern mit insgesamt 224 CPUs. Dies ermöglichte weitere Skalierung, um auch größte Mainframe-Applikationen zu übernehmen.

#### NonStop VLX

Im Jahr 1986 führte Tandem die dritte CPU-Generation ein, die NonStop VLX. Sie hatte 32-Bit-Datenpfade, einen erweiterten Mikrocode, 12 MHz Taktfrequenz und konnte eine Anweisung pro Mikrozyklus ausführen. Sie bestand aus 3 Boards ECL Gate-Array-Chips (mit TTL-Kontaktbelegung) sowie einen erweiterten Dynabus mit einer erhöhten Geschwindigkeit von 20 MByte/s pro Link, 40 MByte/s insgesamt. FOX II erhöhte die physikalische Entfernung von TNS-Clustern auf 4 km, zu dieser Zeit ein technisches Alleinstellungsmerkmal.
Tandem unterstützte zu Beginn nur hierarchische, nicht jedoch relationale Datenbanken mittels des Enscribe-Dateisystems. Dieses wurde später zu einer relationalen Datenbank erweitert, genannt ENCOMPASS. 1986 führte Tandem die erste fehlertolerante SQL-Datenbank ein und nannte sie NonStop SQL. 1989 wurden knotenübergreifende Transaktionen eingeführt, ein Feature, das einige Zeit lang einzigartig war.

#### NonStop CLX

Im Jahr 1987 wurde NonStop CLX eingeführt, ein fehlertolerantes System für den Niedrigpreissektor. Die initiale Performance war vergleichbar mit der TXP; spätere Versionen waren ungefähr 20 % langsamer als die VLX. Das relativ kleine Gehäuse passte in jeden „Kopierraum“. Es befand sich eine CLX CPU auf dem Board, die sechs „compiled silicon“ ASIC CMOS Chips enthielt. Die CPU war zweifach vorhanden, und es fand ein Lock-Stepping statt, um maximale Fehlererkennung zu ermöglichen. Die Pinbelegung war Hauptbegrenzung dieser Chiptechnologie. Mikrocode, Cache und TLB waren extern zur CPU und hatten einen Bus und eine SRAM-Speicherbank. Daher brauchte die CLX mindestens zwei Taktzyklen für eine Instruktion.

#### NonStop Cyclone

Im Jahr 1989 wurde die NonStop Cyclone eingeführt, ein schnelles, aber teures System für den oberen Bereich des Großrechnermarktes. Jede CPU hatte 3 Boards mit ECL Gate-Array Chips und Speicherboards. Obwohl sie mikroprogrammiert war, war die CPU superskalar ausgelegt und schaffte zwei Instruktionen pro Cache-Zyklus. Dies wurde durch separate Mikrocode-Routinen für jedes gemeinsame Paar von Instruktionen erreicht. Dieses gemeinsame Paar von Instruktionen bewältigte die gleiche Arbeit wie Einzelinstruktionen in normalen 32-Bit-Systemen. Cyclone Prozessoren waren in Viererpaketen verbaut, die untereinander mit einer Glasfaserversion des Dynabus verbunden waren.
Die Deutsche Bundesbahn verwendete ein solches System als zentralen Server für das System Kurs 90.

### TNS/R NonStop Migration nach MIPS

Als Tandem 1974 gegründet wurde, musste jeder Computerhersteller seine CPUs (mit einem proprietären Befehlssatz und eigenen Compilern etc.) selbst entwerfen und bauen. Nach dem auch heute noch gültigen Mooreschen Gesetz passen durch die fortschreitende Halbleiterentwicklung von Jahr zu Jahr mehr Schaltkreise in einen Chip, wodurch diese in kontinuierlich exponentiell wachsender Größenordnung schneller (und damit auch billiger) werden. Wegen der schnellen Produktzyklen und des hohen Innovationstempos wurde es für die Computerindustrie immer teurer, eigene Chips zu entwerfen und zu bauen. Ungefähr ab 1991 konnten nur noch die größten Computerhersteller eigene konkurrenzfähige Chips herstellen. Tandem war nicht groß genug für diesen Prozess und musste daher seine NonStop-Produktlinie auf Chips umstellen, die von anderen produziert wurden.
Tandem gründete eine Partnerschaft mit MIPS und verwendete deren R3000 und folgende Chipsätze. NonStop Guardian Systeme, die den MIPS-Befehlssatz verwendeten, wurden als TNS/R Maschinen bezeichnet.

#### NonStop CLX/R

1991 stellte Tandem die Cyclone/R, auch bekannt als CLX/R, vor. Dieses kostengünstige System basierten auf CLX-Komponenten, benutzte aber R3000 Mikroprozessoren anstelle der langsameren CLX-Prozessorboards. Um das System schnell auf den Markt zu bringen, wurde zu Anfang keine native MIPS Software ausgeliefert. Alle Programme, auch das Betriebssystem NSK und die SQL-Datenbank, wurden zu TNS Stack Maschinencode kompiliert. Der entstandene Objektcode wurde dann während der Kernel-Installationsphase für den MIPS Befehlssatz übersetzt. Das dazu verwendete Tool war der Accelerator. Aber die Anwendungsprogramme konnten mittels eines TNS Code Interpreters auch ohne Übersetzung in den MIPS Befehlssatz durchgeführt werden. Diese Migrationstechnik war sehr erfolgreich und wird bis heute eingesetzt. Um Prozessorfehler auszuschließen, liefen jeweils zwei Prozessoren im Lock-Stepping.

#### NonStop Himalaya K-Serie

Im Jahr 1993 brachte Tandem die NonStop Himalaya K-Serie mit schnelleren MIPS R4400 und einem Native Mode Kernel auf den Markt.
1994 wurde der NonStop-Kernel mit einer Unix-ähnlichen POSIX-Umgebung namens Open System Services (OSS) erweitert.

#### NonStop Himalaya S-Serie

Im Jahr 1997 führte Tandem die NonStop Himalaya S-Serie ein; ihre neue Systemarchitektur basierte auf ServerNet-Verbindungen. Das viele schnellere ServerNet ersetzte damit den Dynabus, FOX und den I/O Bus. Tandem entwarf ServerNet für die eigene Verwendung, veröffentlichte aber das Konzept gleichzeitig, so dass es sich schließlich zum InfiniBand Industriestandard entwickelte.
Alle S-Serie Systeme nutzten MIPS Prozessoren, den R4400, R10000, R12000, und R14000.
Durch das sinkende Geschäft des damaligen MIPS-Produzenten Silicon Graphics und dem Erfolg von Intels Pentium Pro wurden keine neuen Investitionen in die MIPS Prozessorreihe mehr getätigt, so dass sich Tandem wiederum nach einem neuen konkurrenzfähigen Prozessor umsehen musste.

### Akquisition durch Compaq, versuchte Migration zu Alpha

Jimmy Treybig blieb bis 1996 CEO und dynamisches Zentrum des Unternehmens, das er gegründet hatte.
Compaqs x86-basierende Serverlinie war einer der ersten Anwender der ServerNet/Infiniband Technologie. Im Jahr 1997 übernahm Compaq die Firma Tandem Computers, um den eigenen Unternehmensschwerpunkt auf PCs auszubalancieren. Compaq übernahm ebenso Digital Equipment Corporation und deren DEC Alpha RISC Server. Nach zwischenzeitlichen Überlegungen, deren Alpha-Prozessoren zu verwenden, entschied man sich letztendlich dafür, auf Intel Itanium 2 zu migrieren.

### Akquisition durch Hewlett Packard, TNS/E Migration zu Itanium

2002 wurde Compaq mit HP verschmolzen. In gewisser Weise kam Tandem über den Weg von einem von HP inspirierten Startup mit anschließender Phase als Konkurrent von HP zurück zu seinen Wurzeln als eigene Serverlinie bei HP.

#### NonStop Integrity

Die Migration der NonStop-Produktlinie von MIPS Prozessoren zu Itanium Prozessoren wurde 2005 abgeschlossen und als 'HP Integrity NonStop Server' vermarktet.
Das Systemdesign unterstützt Lock-Stepping in Form von Dual- (DMR) und Triple-Mode-Redundanz (TMR), mit entweder zwei oder drei physikalischen Prozessoren pro logischem Itanium-Prozessor. Die TMR-Version wird an Kunden mit höchsten Verfügbarkeitsanforderungen ausgeliefert. Diese Architektur trägt den Namen NSAA, NonStop Advanced Architecture.

#### NonStop Blade

Im Jahr 2008 führte HP die NonStop Multicore Architecture (NSMA) ein. Durch die Verwendung von Standard-Hardware konnten die Kosten weiter gesenkt werden. Die HP NonStop Blade Systeme arbeiten mit Mehrkernprozessoren (Zweikern und Vierkern).

#### Java, Open Source und Eclipse

HP portiert zunehmend Open-Source-Software auf die NonStop-Plattform und bietet sie als Produkt an, wie z. B. SOAP, JavaServer Pages (Tomcat + Pathway) oder JBoss (ab 2013). Zudem sind diverse Open-Source-Java-Frameworks (MyFaces, Axis2/Java, Spring, Hibernate = SASH.) zertifiziert worden, um auf der Plattform zusammen mit der HP NonStop Development Environment for Eclipse Java-Projekte implementieren zu können.

### Migration zu x86 / Xeon Technologie

Im November 2013 hat HP angekündigt, die NonStop-Technologie auf die x86-Prozessorarchitektur zu erweitern. Seit April 2015 ist sie als NonStop X NS3 X1 und als NonStop X NS7 X1 verfügbar.

### NonStop in der Cloud

Seit dem Frühjahr 2017 bietet HPE eine Virtualized NonStop an, die in einer Cloud betrieben werden kann.

## Usergruppen

* GTUG (German NonStop User Group)
* ITUG (International NonStop User Group) jetzt Teil der Connect (Users Group)