Tandem Computers, Inc. fue el fabricante dominante de sistemas informáticos tolerantes a fallos para redes de cajeros automáticos , bancos , bolsas de valores , centros de conmutación telefónica, sistemas de 911 y otras aplicaciones similares de procesamiento de transacciones comerciales que requieren el máximo tiempo de actividad y ninguna pérdida de datos. La empresa fue fundada por Jimmy Treybig en 1974 [1] en Cupertino, California . Se mantuvo independiente hasta 1997, cuando se convirtió en una división de servidores dentro de Compaq . Ahora es una división de servidores dentro de Hewlett Packard Enterprise , tras la adquisición de Compaq por parte de Hewlett-Packard y la división de Hewlett-Packard en HP Inc. y Hewlett Packard Enterprise.
Los sistemas NonStop de Tandem utilizan una serie de procesadores idénticos independientes, dispositivos de almacenamiento redundantes y controladores redundantes para proporcionar una " conmutación por error " automática de alta velocidad en caso de un fallo de hardware o software. Para limitar el alcance de los fallos y de los datos dañados, estos sistemas multiordenadores no tienen componentes centrales compartidos, ni siquiera memoria principal. Los sistemas multiordenadores convencionales utilizan memorias compartidas y trabajan directamente sobre objetos de datos compartidos. En cambio, los procesadores NonStop cooperan intercambiando mensajes a través de una estructura fiable y el software toma instantáneas periódicas para una posible reversión del estado de la memoria del programa.
Además de enmascarar los fallos, este diseño de sistema de mensajería " sin compartir nada " también se adapta a las mayores cargas de trabajo comerciales. Cada duplicación del número total de procesadores duplica el rendimiento del sistema, hasta la configuración máxima de 4000 procesadores. En cambio, el rendimiento de los sistemas multiprocesador convencionales está limitado por la velocidad de alguna memoria compartida, bus o conmutador. Añadir más de 4 a 8 procesadores de esa manera no proporciona una mayor aceleración del sistema. Los sistemas NonStop se han comprado con más frecuencia para cumplir con los requisitos de escalabilidad que para una tolerancia extrema a fallos. Compiten con los mainframes más grandes de IBM, a pesar de estar construidos con tecnología de minicomputadoras más sencilla.
Tandem Computers fue fundada en 1974 por James Treybig . Treybig fue el primero en ver la necesidad del mercado de tolerancia a fallos en los sistemas OLTP (procesamiento de transacciones en línea) mientras dirigía un equipo de marketing para la división de ordenadores HP 3000 de Hewlett-Packard , pero HP no estaba interesado en desarrollar para este nicho. Luego se unió a la empresa de capital de riesgo Kleiner Perkins y desarrolló allí el plan de negocios de Tandem. [2] [3] [4] Treybig reunió a un equipo de ingeniería central contratado fuera de la división HP 3000 : Mike Green, Jim Katzman, Dave Mackie y Jack Loustaunou. Su plan de negocios exigía sistemas ultra fiables que nunca tuvieran cortes y nunca perdieran o corrompieran datos. Estos eran modulares de una manera nueva que era segura ante todos los " fallos de punto único " pero que serían solo marginalmente más caros que los sistemas convencionales no tolerantes a fallos. Serían menos costosos y soportarían un mayor rendimiento que algunos sistemas endurecidos ad-hoc existentes que usaban redundantes pero que generalmente requerían "repuestos activos".
Cada ingeniero estaba seguro de que podría llevar a cabo rápidamente su propia parte de este nuevo y complejo diseño, pero dudaba de que las áreas de los demás pudieran resolverse. Las partes del diseño de hardware y software que no tenían que ser diferentes se basaban en gran medida en mejoras incrementales de los diseños de hardware y software familiares del HP 3000. Muchos ingenieros y programadores posteriores también provenían de HP. La sede de Tandem en Cupertino, California, estaba a un cuarto de milla de las oficinas de HP. La inversión inicial de capital de riesgo en Tandem Computers provino de Tom Perkins, quien anteriormente era gerente general de la división HP 3000.
El plan de negocios incluía ideas detalladas para construir una cultura corporativa única que reflejara los valores de Treybig.
El diseño del hardware inicial Tandem/16 se completó en 1975 y el primer sistema se envió a Citibank en mayo de 1976.
La empresa disfrutó de un crecimiento exponencial ininterrumpido hasta 1983. La revista Inc. clasificó a Tandem como la empresa pública de más rápido crecimiento en Estados Unidos. En 1996, Tandem era una empresa de 2.300 millones de dólares que empleaba aproximadamente a 8.000 personas en todo el mundo.
A lo largo de 40 años, la línea principal de productos NonStop de Tandem creció y evolucionó de manera compatible con versiones anteriores a partir del sistema tolerante a fallas T/16 inicial, con tres cambios importantes en su arquitectura modular de nivel superior o en su arquitectura de conjunto de instrucciones de nivel de programación. Dentro de cada serie, se han producido varias reimplementaciones importantes a medida que avanzaba la tecnología de chips.
Mientras que los sistemas convencionales de la época, incluidos los mainframes de gran tamaño , tenían un tiempo medio entre fallos (MTBF) del orden de unos pocos días, el sistema NonStop estaba diseñado para intervalos de fallos 100 veces más largos, con tiempos de funcionamiento medidos en años. Sin embargo, el NonStop fue diseñado para ser competitivo en precio con los sistemas convencionales, con un sistema simple de 2 CPU que costaba poco más del doble que un mainframe de un solo procesador de la competencia, en comparación con el cuádruple o más de otras soluciones tolerantes a fallos.
El primer sistema fue el Tandem/16 o T/16 , posteriormente rebautizado como NonStop I. [ 5] La máquina constaba de entre dos y 16 CPU, organizadas como un clúster informático tolerante a fallos empaquetado en un único bastidor. Cada CPU tenía su propia memoria privada no compartida, su propio procesador de E/S , su propio bus de E/S privado para conectarse a los controladores de E/S y conexiones duales a todas las demás CPU a través de un bus de placa base entre CPU personalizado llamado Dynabus . Cada controlador de disco o controlador de red estaba duplicado y tenía conexiones duales tanto a las CPU como a los dispositivos. Cada disco estaba reflejado, con conexiones separadas a dos controladores de disco independientes. Si un disco fallaba, sus datos seguían estando disponibles en su copia reflejada. Si una CPU, un controlador o un bus fallaba, el disco seguía siendo accesible a través de una CPU, un controlador y/o un bus alternativos. Cada disco o controlador de red estaba conectado a dos CPU independientes. Las fuentes de alimentación estaban conectadas por cable a un solo lado de un par de CPU, controladores o buses, de modo que el sistema pudiera seguir funcionando sin pérdida de conexiones si una fuente de alimentación fallaba. La cuidadosa y compleja disposición de las piezas y conexiones en las configuraciones más grandes de los clientes se documentó en un diagrama de Mackie , llamado así por el vendedor principal David Mackie, quien inventó la notación. [6] Ninguna de estas piezas duplicadas se desperdiciaba como "repuestos en caliente"; todo se sumaba al rendimiento del sistema durante las operaciones normales.
Además de recuperarse bien de las piezas defectuosas, el T/16 también fue diseñado para detectar tantos tipos de fallas intermitentes como fuera posible, lo antes posible. Esta detección rápida se llama "fail fast" (fallo rápido). El objetivo era encontrar y aislar los datos dañados antes de que se escribieran de forma permanente en bases de datos y otros archivos de disco. En el T/16, la detección de errores se realizaba mediante circuitos personalizados que sumaban poco costo al diseño total; no se duplicaban piezas importantes para obtener la detección de errores.
La CPU T/16 era un diseño propietario. Fue muy influenciada por la minicomputadora HP 3000. Ambas eran máquinas microprogramadas , de 16 bits , basadas en pila con direccionamiento virtual segmentado de 16 bits . Ambas estaban destinadas a ser programadas exclusivamente en lenguajes de alto nivel, sin uso de ensamblador . Ambas se implementaron inicialmente a través de chips TTL de baja densidad estándar , cada uno con una porción de 4 bits de la ALU de 16 bits . Ambas tenían una pequeña cantidad de registros de datos de 16 bits en la parte superior de la pila, más algunos registros de dirección adicionales para acceder a la pila de memoria. Ambas usaban codificación Huffman de desplazamientos de dirección de operandos, para adaptar una gran variedad de modos de dirección y tamaños de desplazamiento en el formato de instrucción de 16 bits con buena densidad de código. Ambas dependían en gran medida de grupos de direcciones indirectas para superar el formato de instrucción corto. Ambas admitían operandos más grandes de 32 y 64 bits a través de múltiples ciclos de ALU y operaciones de cadena de memoria a memoria. Ambos utilizaban el direccionamiento "big-endian" de operandos de memoria largos y cortos. Todas estas características se habían inspirado en las máquinas de pila de mainframe Burroughs B5500–B6800.
El conjunto de instrucciones T/16 cambió varias características del diseño de la HP 3000. La T/16 admitía memoria virtual paginada desde el principio. La serie HP 3000 no añadió paginación hasta la generación PA-RISC, 10 años después (aunque a través de MPE V tenía una forma de paginación utilizando el firmware APL, en 1978). Tandem añadió compatibilidad con direccionamiento de 32 bits en su segunda máquina; la HP 3000 carecía de esto hasta su generación PA-RISC. La paginación y las direcciones largas eran fundamentales para admitir software de sistema complejo y aplicaciones grandes. La T/16 trataba sus registros de la parte superior de la pila de una forma novedosa; el compilador, no el microcódigo, era responsable de decidir cuándo se volcaban los registros llenos a la pila de memoria y cuándo se rellenaban los registros vacíos desde la pila de memoria. En la HP 3000, esta decisión requería ciclos de microcódigo adicionales en cada instrucción. La HP 3000 admitía COBOL con varias instrucciones para realizar cálculos directamente sobre cadenas de dígitos BCD (decimal codificado en binario) de longitud arbitraria. La T/16 simplificó esto a instrucciones individuales para convertir entre cadenas BCD y números enteros binarios de 64 bits.
En el T/16, cada CPU constaba de dos placas de lógica TTL y SRAM , y funcionaba a unos 0,7 MIPS . [7] En cualquier instante, podía acceder solo a cuatro segmentos de memoria virtual (datos del sistema, código del sistema, datos del usuario, código del usuario), cada uno limitado a 128 KB de tamaño. Los espacios de direcciones de 16 bits ya eran pequeños para las principales aplicaciones cuando se lanzó.
La primera versión de T/16 tenía un único lenguaje de programación, Transaction Application Language (TAL). Se trataba de un lenguaje de programación de sistemas eficiente y dependiente de la máquina (para sistemas operativos, compiladores, etc.), pero que también podía utilizarse para aplicaciones no portátiles. Se derivaba del lenguaje de programación de sistemas (SPL) de HP 3000. Ambos tenían una semántica similar a C, pero una sintaxis basada en ALGOL de Burroughs . Las versiones posteriores añadieron compatibilidad con Cobol74, Basic , Fortran , Java , C, C++ y MUMPS .
La serie Tandem NonStop ejecutaba un sistema operativo personalizado que era significativamente diferente de Unix o MPE de HP 3000. Inicialmente se llamó T/TOS ( Tandem Transactional Operating System ), pero pronto se lo denominó Guardian por su capacidad de proteger todos los datos de fallas de la máquina y del software. A diferencia de todos los demás sistemas operativos comerciales, Guardian se basaba en el paso de mensajes como la forma básica para que todos los procesos interactuaran, sin memoria compartida, independientemente de dónde se estuvieran ejecutando los procesos. [8] [9] Este enfoque se escaló fácilmente a clústeres de múltiples computadoras y ayudó a aislar los datos corruptos antes de que se propagaran.
Todos los procesos del sistema de archivos y todos los procesos de aplicaciones transaccionales se estructuraron como pares de procesos maestro/esclavo que se ejecutaban en CPU independientes. El proceso esclavo tomaba periódicamente instantáneas del estado de la memoria del maestro y se hacía cargo de la carga de trabajo si el proceso maestro tenía problemas. Esto permitía que la aplicación sobreviviera a fallas en cualquier CPU o sus dispositivos asociados, sin pérdida de datos. Además, permitía la recuperación de algunas fallas de software de estilo intermitente. Entre fallas, la supervisión por parte del proceso esclavo añadía cierta sobrecarga de rendimiento, pero era mucho menor que la duplicación del 100 % en otros diseños de sistemas. Algunas de las primeras aplicaciones importantes se codificaban directamente en este estilo de punto de control, pero la mayoría utilizaba en su lugar varias capas de software Tandem que ocultaban los detalles de esto de una manera semiportátil.
En 1981, todas las CPU T/16 fueron reemplazadas por la NonStop II . Su principal diferencia con la T/16 era el soporte para direccionamiento ocasional de 32 bits a través de un "segmento de datos extendido" conmutable por el usuario. Esto apoyó los siguientes diez años de crecimiento en software y fue una ventaja sobre la T/16 o la HP 3000. Los registros visibles siguieron siendo de 16 bits, y esta adición no planificada al conjunto de instrucciones requirió la ejecución de muchas instrucciones por referencia de memoria en comparación con la mayoría de las minicomputadoras de 32 bits. Todas las computadoras TNS posteriores se vieron obstaculizadas por esta ineficiencia del conjunto de instrucciones. Como la NonStop II carecía de rutas de datos internas más amplias, tuvo que usar pasos de microcódigo adicionales para direcciones de 32 bits. Una CPU NonStop II tenía tres placas, que usaban chips y un diseño similar al de la T/16. La NonStop II también reemplazó la memoria central con memoria DRAM respaldada por batería.
En 1983, la CPU NonStop TXP fue la primera implementación completamente nueva de la arquitectura del conjunto de instrucciones TNS. [10] [11] [12] Se construyó a partir de chips TTL estándar y chips de lógica de matriz programada, con cuatro placas por módulo de CPU. Tenía el primer uso de memoria caché de Tandem. Tenía una implementación más directa de direccionamiento de 32 bits, pero aún los enviaba a través de sumadores de 16 bits. Un almacenamiento de microcódigo más amplio permitió una reducción importante en los ciclos ejecutados por instrucción; la velocidad aumentó a 2,0 MIPS. Utilizaba el mismo empaquetado de bastidor, controladores, placa base y buses que antes. Los buses Dynabus y de E/S habían sido sobrediseñados en el T/16 para que funcionaran durante varias generaciones de actualizaciones.
Ahora se podían combinar hasta 14 sistemas TXP y NonStop II a través de FOX , un bus de fibra óptica tolerante a fallos de larga distancia para conectar clústeres TNS en un campus empresarial; un clúster de clústeres con un total de 224 CPU. Esto permitió una mayor ampliación para asumir las aplicaciones de mainframe más grandes. [13] Al igual que los módulos de CPU dentro de las computadoras, el sistema operativo Guardian podía conmutar por error conjuntos de tareas completos a otras máquinas en la red. También se podían construir clústeres mundiales de 4000 CPU a través de enlaces de red de larga distancia convencionales.
En 1986, Tandem introdujo una CPU de tercera generación, la NonStop VLX . [14] Tenía rutas de datos de 32 bits, un microcódigo más amplio, un tiempo de ciclo de 12 MHz y una tasa máxima de una instrucción por ciclo. Se construyó a partir de tres placas de chips de matriz de puertas ECL (con distribución de pines TTL). Tenía un Dynabus revisado con velocidad aumentada a 20 MB/s por enlace, 40 MB/s en total. Más tarde, FOX II aumentó el diámetro físico de los clústeres TNS a 4 kilómetros.
El soporte inicial de bases de datos de Tandem era solo para bases de datos jerárquicas y no relacionales a través del sistema de archivos ENSCRIBE . Esto se amplió a una base de datos relacional llamada ENCOMPASS . [15] En 1986, Tandem presentó la primera base de datos SQL tolerante a fallas , NonStop SQL . [16] Desarrollado totalmente internamente, NonStop SQL incluye una serie de características basadas en Guardian para garantizar la validez de los datos en todos los nodos. NonStop SQL es conocido por escalar linealmente en rendimiento con la cantidad de nodos agregados al sistema, mientras que la mayoría de las bases de datos tenían un rendimiento que se estancaba bastante rápido, a menudo después de solo dos CPU. Una versión posterior lanzada en 1989 agregó transacciones que podían distribuirse entre los nodos, una característica que permaneció única durante algún tiempo. NonStop SQL continuó evolucionando, primero como NonStop SQL/MP y luego como NonStop SQL/MX, que pasó de Tandem a Compaq y luego a HP. El código sigue en uso tanto en NonStop SQL/MP de HP, NonStop SQL/MX y el proyecto Apache Trafodion . [17]
En 1987, Tandem introdujo el NonStop CLX , un sistema de minicomputadoras de bajo costo y menos expandible. [18] [19] Su función era hacer crecer el extremo inferior del mercado tolerante a fallas y para implementarlo en los bordes remotos de grandes redes Tandem. Su rendimiento inicial era aproximadamente similar al TXP; las versiones posteriores mejoraron hasta el punto de ser aproximadamente un 20% más lento que un VLX. Su pequeño gabinete podía instalarse en cualquier entorno de oficina de "sala de fotocopiadoras". Una CPU CLX era una placa que contenía seis chips CMOS ASIC de "silicio compilado" . El chip del núcleo de la CPU se duplicó y se escalonó para una detección máxima de errores. Esto no agregó tolerancia a fallas adicional, pero aseguró la integridad de los datos ya que cada CPU incluía una lógica de verificación que aseguraba que los resultados de ambos chips de CPU fueran idénticos. Otros procesadores proporcionarían tolerancia a fallas. La distribución de pines era una limitación principal de esta tecnología de chip. El microcódigo, la caché y el TLB eran todos externos al núcleo de la CPU y compartían un solo bus y un solo banco de SRAM . Como resultado, CLX requirió al menos dos ciclos de máquina por instrucción.
En 1989, Tandem introdujo el NonStop Cyclone , un sistema rápido pero costoso para el extremo mainframe del mercado. [20] [21] Cada CPU con autocontrol tomaba tres placas llenas de chips de matriz de puertas ECL de funcionamiento en caliente, además de placas de memoria. A pesar de estar microprogramada, la CPU era superescalar , y a menudo completaba dos instrucciones por ciclo de caché. Esto se lograba al tener una rutina de microcódigo separada para cada par común de instrucciones. [22] Ese par fusionado de instrucciones de pila generalmente realizaba el mismo trabajo que una sola instrucción de minicomputadoras normales de 32 bits. Los procesadores Cyclone se empaquetaban como secciones de cuatro CPU cada una, y las secciones se unían mediante una versión de fibra óptica de Dynabus.
Al igual que las máquinas de alta gama anteriores de Tandem, los gabinetes Cyclone estaban diseñados con mucho negro angular para sugerir fuerza y potencia. Los videos publicitarios compararon directamente a Cyclone con el avión espía Lockheed SR-71 Blackbird Mach 3. Se suponía que el nombre de Cyclone representaba su "velocidad imparable al rugir a través de cargas de trabajo OLTP". El día del anuncio fue el 17 de octubre de 1989. Esa tarde, la región fue golpeada por el terremoto de magnitud 6,9 de Loma Prieta , que provocó derrumbes de autopistas en Oakland e incendios importantes en San Francisco . Las oficinas de Tandem se sacudieron, pero nadie resultó gravemente herido en el lugar.
Entre 1980 y 1983, Tandem intentó rediseñar todo su conjunto de hardware y software para poner sus métodos NonStop sobre una base más sólida que sus rasgos heredados de HP 3000. El hardware de Rainbow era una máquina de archivos de registro de 32 bits que apuntaba a ser mejor que un VAX de Digital Equipment Corporation . Para una programación confiable, el lenguaje de programación principal era "TPL", un subconjunto de Ada . En ese momento, los programadores apenas entendían cómo compilar Ada a código no optimizado. No había una ruta de migración para el software del sistema NonStop existente codificado en TAL. El sistema operativo, la base de datos y los compiladores Cobol se rediseñaron por completo. Los clientes lo verían como una línea de productos totalmente disjunta que requería un software completamente nuevo. La parte del software de este proyecto tomó mucho más tiempo de lo planeado. El hardware ya estaba obsoleto y TXP lo superó antes de que su software estuviera listo, lo que resultó en el abandono del proyecto Rainbow. Todos los esfuerzos posteriores enfatizaron la compatibilidad ascendente y las rutas de migración fáciles.
El desarrollo del marco de desarrollo de aplicaciones cliente/servidor avanzado de Rainbow, llamado "Crystal", continuó durante un tiempo más y se escindió como el producto "Ellipse" de Cooperative Systems Incorporated. [23]
En 1985, Tandem intentó hacerse con una parte del creciente mercado de ordenadores personales con la introducción de la estación de trabajo/PC Dynamite basada en MS-DOS . Numerosas concesiones en el diseño (incluida una plataforma de hardware única basada en 8086 incompatible con las tarjetas de expansión de la época y una compatibilidad extremadamente limitada con los PC basados en IBM ) relegaron al Dynamite a servir principalmente como terminal inteligente. Fue retirado del mercado de forma silenciosa y rápida.
El sistema operativo NonStop basado en mensajes de Tandem tenía ventajas en términos de escalabilidad, confiabilidad extrema y uso eficiente de recursos "de repuesto" costosos. Pero muchos clientes potenciales querían una confiabilidad lo suficientemente buena en un sistema pequeño, utilizando un sistema operativo Unix familiar y programas estándar de la industria. Los diversos competidores tolerantes a fallas de Tandem adoptaron un diseño más simple centrado en la memoria y solo en hardware, donde toda la recuperación se realizaba alternando entre repuestos activos. El competidor más exitoso fue Stratus Technologies , cuyas máquinas fueron revendidas por IBM como "IBM System/88".
En estos sistemas, los procesadores de repuesto no contribuyen al rendimiento del sistema entre fallos, sino que simplemente ejecutan de forma redundante exactamente el mismo hilo de datos que el procesador activo en el mismo instante, "en sincronía". Los fallos se detectan viendo cuándo divergieron las salidas de los procesadores clonados. Para detectar fallos, el sistema debe tener dos procesadores físicos para cada procesador lógico activo. Para implementar también la recuperación automática ante fallos, el sistema debe tener tres o cuatro procesadores físicos para cada procesador lógico. El costo triple o cuádruple de esta sustitución es práctico cuando las partes duplicadas son microprocesadores de un solo chip de uso general.
Los productos de Tandem para este mercado comenzaron con la línea Integrity en 1989, utilizando procesadores MIPS y una variante "NonStop UX" de Unix. Fue desarrollado en Austin, Texas. En 1991, el Integrity S2 utilizó TMR, Triple Modular Redundancy, donde cada CPU lógica usaba tres microprocesadores MIPS R2000 para ejecutar el mismo hilo de datos, con votación para encontrar y bloquear una parte fallida. Sus relojes rápidos no podían sincronizarse como en el paso estricto de bloqueo, por lo que la votación se producía en cada interrupción. [24] Algunas otras versiones de Integrity utilizaban redundancia de "pares y repuestos" 4x. Los pares de procesadores funcionaban al unísono para comprobarse entre sí. Cuando no estaban de acuerdo, ambos procesadores se marcaban como no confiables y su carga de trabajo era asumida por un par de procesadores de repuesto en caliente cuyo estado ya era actual. En 1995, el Integrity S4000 fue el primero en utilizar ServerNet (una estructura de "bus" en red) y avanzó hacia el uso compartido de periféricos con la línea NonStop.
Entre 1995 y 1997, Tandem se asoció con Microsoft para implementar funciones de alta disponibilidad y configuraciones SQL avanzadas en clústeres de máquinas Microsoft Windows NT . Este proyecto recibió el nombre en código "Wolfpack" y se lanzó por primera vez como Microsoft Cluster Server en 1997. Microsoft se benefició enormemente de esta asociación; Tandem no.
Cuando se formó Tandem en 1974, todas las empresas de informática diseñaban y construían sus CPU a partir de circuitos básicos [ cita requerida ] , utilizando su propio conjunto de instrucciones, compiladores, etc. Con cada año de progreso de los semiconductores con la Ley de Moore, más circuitos básicos de una CPU podían caber en chips individuales y, como resultado, funcionar más rápido y más barato. Sin embargo, se volvió cada vez más caro para una empresa de informática diseñar esos chips personalizados avanzados o construir las plantas para fabricar los chips. Ante los desafíos de este mercado cambiante y el panorama de fabricación, Tandem se asoció con MIPS y adoptó sus chipsets R3000 y sucesores y su compilador de optimización avanzado. Las máquinas NonStop Guardian posteriores que usaban la arquitectura MIPS fueron conocidas por los programadores como máquinas TNS/R y tuvieron una variedad de nombres comerciales.
En 1991, Tandem lanzó el Cyclone/R, también conocido como CLX/R. Se trataba de un sistema de gama media de bajo coste basado en componentes CLX pero que utilizaba microprocesadores R3000 en lugar de la placa de máquina de pila CLX mucho más lenta. Para minimizar el tiempo de comercialización, esta máquina se envió inicialmente sin ningún software de modo nativo MIPS. Todo, incluido su sistema operativo NonStop Kernel (NSK) (una continuación de Guardian) y la base de datos NonStop SQL, se compilaba en código de máquina de pila TNS. Ese código objeto se traducía luego a secuencias de instrucciones MIPS parcialmente optimizadas equivalentes en el momento de la instalación del núcleo mediante una herramienta llamada Accelerator. [25] Los programas menos importantes también se podían ejecutar directamente sin traducción previa, a través de un intérprete de código TNS . Estas técnicas de migración tuvieron éxito y siguen utilizándose en la actualidad. El software del usuario final se incorporaba sin trabajo adicional, el rendimiento era lo suficientemente bueno para las máquinas de gama media y los programadores podían ignorar las diferencias de instrucciones, incluso al depurar a nivel de código de máquina. Estas máquinas Cyclone/R se actualizaron con un sistema operativo NSK en modo nativo más rápido en una versión posterior.
Los microprocesadores R3000 y posteriores tenían solo una cantidad típica de verificación de errores internos, insuficiente para las necesidades de Tandem. Por lo tanto, el Cyclone/R ejecutó pares de procesadores R3000 en sincronía, ejecutando el mismo hilo de datos. Esto era para fines de integridad de datos y no de tolerancia a fallas; la tolerancia a fallas era manejada por los otros mecanismos que aún estaban en su lugar. Utilizaba una variación de la verificación en sincronía. El procesador verificador se ejecutaba un ciclo detrás del procesador primario. Esto les permitía compartir una sola copia de cachés de datos y código externo sin poner una carga excesiva de asignación de pines en el bus del sistema y reducir la velocidad del reloj del sistema. Para ejecutar con éxito microprocesadores en sincronía, los chips deben estar diseñados para ser completamente deterministas. Cualquier estado interno oculto debe ser borrado por el mecanismo de reinicio del chip. De lo contrario, los chips emparejados pueden desincronizarse sin ninguna razón visible y sin fallas, mucho después de que se reinician los chips. Los diseñadores de chips están de acuerdo en que estos son buenos principios porque los ayudan a probar los chips en el momento de la fabricación. Pero todos los nuevos chips de microprocesadores parecían tener errores en esta área y requerían meses de trabajo compartido entre MIPS (el fabricante externo utilizado por Tandem) y Tandem para eliminar o solucionar los errores sutiles finales.
En 1993, Tandem lanzó la serie K de NonStop Himalaya con el MIPS R4400 más rápido , un sistema operativo NSK en modo nativo y componentes del sistema Cyclone totalmente ampliables. Estos se conectaban mediante Dynabus, Dynabus+ y el bus de E/S original, que para ese entonces se estaban quedando sin margen de rendimiento.
En 1995, el núcleo NonStop se amplió con un entorno POSIX similar a Unix llamado Open System Services. [26] El shell Guardian original y la ABI siguieron estando disponibles.
En 1997, Tandem presentó la serie S de NonStop Himalaya con una nueva arquitectura de sistema de alto nivel basada en conexiones ServerNet . ServerNet reemplazó a los buses Dynabus, FOX y de E/S. Era mucho más rápido, más general y podía extenderse a más que una simple redundancia bidireccional a través de una estructura arbitraria de conexiones punto a punto. Tandem diseñó ServerNet para sus propias necesidades, pero luego promovió su uso por parte de otros; evolucionó hasta convertirse en el estándar de la industria InfiniBand .
Todas las máquinas de la Serie S utilizan procesadores MIPS, incluidos el R4400, R10000 , R12000 y R14000 .
El diseño de los núcleos MIPS más rápidos y posteriores fue financiado principalmente por Silicon Graphics Inc. Pero la sexta generación de Pentium Pro de Intel superó el rendimiento de los diseños RISC y también el negocio de gráficos de SGI se redujo. Después del R10000, no hubo inversiones significativas en nuevos diseños de núcleos MIPS para servidores de alta gama. Por lo tanto, Tandem necesitaba trasladar su línea de productos NonStop a otra arquitectura de microprocesador con chips rápidos competitivos.
Jimmy Treybig siguió siendo el director ejecutivo de la empresa que fundó hasta que se produjo una recesión en 1996. El siguiente director ejecutivo fue Roel Pieper , que se incorporó a la empresa en 1996 como presidente y director ejecutivo. El equipo creativo y de marca interno, dirigido por Ronald May, que más tarde cofundó el Silicon Valley Brand Forum en 1999, llevó a cabo una renovación de la marca para promocionarse como una auténtica plataforma Wintel (Windows/Intel). El concepto funcionó y, poco después, la empresa fue adquirida por Compaq.
La división de servidores x86 de Compaq fue una de las primeras en adoptar la tecnología de interconexión ServerNet/InfiniBand de Tandem. En 1997, Compaq adquirió la empresa Tandem Computers y la base de clientes de NonStop para equilibrar el fuerte enfoque de Compaq en los ordenadores personales (PC). En 1998, Compaq también adquirió la mucho más grande Digital Equipment Corporation y heredó sus servidores DEC Alpha RISC con bases de clientes OpenVMS y Tru64 Unix . Tandem estaba entonces a medio camino de trasladar su línea de productos NonStop de los microprocesadores MIPS R12000 a los nuevos microprocesadores Itanium Merced de Intel . Este proyecto se reinició con Alpha como el nuevo objetivo para alinear NonStop con las otras grandes líneas de servidores de Compaq. Pero en 2001, Compaq canceló todas las inversiones de ingeniería de Alpha a favor de los microprocesadores Itanium, antes de que se lanzaran nuevos productos NonStop en Alpha.
En 2001, Hewlett-Packard también tomó la decisión de renunciar a sus exitosas líneas de productos PA-RISC en favor de los microprocesadores Itanium de Intel, que HP ayudó a diseñar. Poco después, Compaq y HP anunciaron su plan de fusionarse y consolidar sus líneas de productos similares. Esta polémica fusión se hizo oficial en mayo de 2002. Las consolidaciones fueron dolorosas y destruyeron las culturas orientadas a los ingenieros de DEC y "HP Way", pero la empresa combinada sabía cómo vender sistemas complejos a las empresas y obtener ganancias, por lo que fue una mejora para la división NonStop que sobrevivió y sus clientes.
En cierto modo, el viaje de Tandem desde una start-up inspirada en HP a un competidor inspirado en HP, luego a una división de HP fue "devolver a Tandem a sus raíces originales", pero este no era el mismo HP.
Se completó la migración de la línea de productos NonStop basada en NSK de procesadores MIPS a procesadores basados en Itanium y se la denominó "Servidores HP Integrity NonStop". (Este NSK Integrity NonStop no estaba relacionado con la serie "Integrity" original de Tandem para Unix).
Como no era posible ejecutar chips Itanium McKinley con sincronización a nivel de reloj, las máquinas Integrity NonStop realizaron la sincronización mediante comparaciones entre estados de chips en escalas de tiempo más largas, en puntos de interrupción y en varios puntos de sincronización de software entre interrupciones. Los puntos de sincronización intermedios se activaban automáticamente en cada instrucción de bifurcación n'th y también se insertaban explícitamente en cuerpos de bucles largos por todos los compiladores NonStop. El diseño de la máquina admitía redundancia dual y triple, con dos o tres microprocesadores físicos por procesador Itanium lógico. La versión triple se vendió a clientes que necesitaban la máxima confiabilidad. Este nuevo enfoque de verificación se llamó NSAA, NonStop Advanced Architecture . [27]
Al igual que en la migración anterior de las máquinas de pila a los microprocesadores MIPS, todo el software del cliente se transfirió sin cambios en el código fuente. El código fuente en "modo nativo" compilado directamente en código de máquina MIPS simplemente se recompiló para Itanium. Algunos programas "no nativos" más antiguos todavía estaban en formato de máquina de pila TNS. Estos se trasladaron automáticamente a Itanium mediante técnicas de traducción de código objeto.
El siguiente paso fue pasar de Itanium a la arquitectura Intel x86, proyecto que se completó en 2014 y que permitió comercializar los primeros sistemas.
La inclusión de conmutadores InfiniBand de doble ancho 4X FDR (Fourteen Data Rate) tolerantes a fallas proporcionó un aumento de más de 25 veces en la capacidad de interconexión del sistema. [28]
NSK Guardian también se convirtió en la base del sistema operativo HP Neoview OS, el sistema operativo utilizado en los sistemas HP Neoview que se adaptaron para su uso en Business Intelligence y Enterprise Data Warehouse. NonStop SQL/MX también fue el punto de partida para Neoview SQL, que se adaptó al uso de Business Intelligence. El código también se adaptó a Linux y sirvió como base para el proyecto Apache Trafodion .
El plan de negocios de Treybig incluía ideas detalladas para construir una cultura corporativa que reflejara los valores de Treybig, como por ejemplo, seis semanas sabáticas pagadas cada cuatro años para todos los empleados, un regalo anual de 100 acciones de Tandem a todos los empleados, una fiesta semanal para todos los empleados conocida como Beer Bust Fridays y una transmisión mensual en circuito cerrado a nivel mundial ("First Friday") para mantener informados a los empleados.