Tandem Computers, Inc. была доминирующим производителем отказоустойчивых компьютерных систем для сетей банкоматов , банков , фондовых бирж , телефонных коммутационных центров, систем 911 и других подобных коммерческих приложений обработки транзакций, требующих максимального времени безотказной работы и отсутствия потери данных. Компания была основана Джимми Трейбигом в 1974 году [1] в Купертино, Калифорния . Она оставалась независимой до 1997 года, когда она стала серверным подразделением в составе Compaq . В настоящее время это серверное подразделение в составе Hewlett Packard Enterprise после приобретения Compaq компанией Hewlett-Packard и разделения Hewlett-Packard на HP Inc. и Hewlett Packard Enterprise.
Системы NonStop от Tandem используют ряд независимых идентичных процессоров, избыточных устройств хранения данных и избыточных контроллеров для обеспечения автоматического высокоскоростного « переключения при отказе » в случае сбоя оборудования или программного обеспечения. Чтобы ограничить масштаб сбоев и поврежденных данных, эти многокомпьютерные системы не имеют общих центральных компонентов, даже основной памяти. Все обычные многокомпьютерные системы используют общую память и работают напрямую с общими объектами данных. Вместо этого процессоры NonStop взаимодействуют, обмениваясь сообщениями через надежную структуру, а программное обеспечение периодически делает снимки для возможного отката состояния памяти программы.
Помимо маскировки сбоев, эта система обмена сообщениями « ничего общего » также масштабируется до самых больших коммерческих рабочих нагрузок. Каждое удвоение общего числа процессоров удваивает пропускную способность системы, вплоть до максимальной конфигурации в 4000 процессоров. Напротив, производительность обычных многопроцессорных систем ограничена скоростью некоторой общей памяти, шины или коммутатора. Добавление более 4–8 процессоров таким образом не дает дальнейшего ускорения системы. Системы NonStop чаще покупались для удовлетворения требований масштабирования, чем для обеспечения чрезвычайной отказоустойчивости. Они конкурируют с крупнейшими мэйнфреймами IBM, несмотря на то, что построены на основе более простой технологии мини-компьютеров.
Tandem Computers была основана в 1974 году Джеймсом Трейбигом . Трейбиг впервые увидел потребность рынка в отказоустойчивости в системах OLTP (обработка транзакций в режиме онлайн), когда руководил маркетинговой командой для подразделения компьютеров HP 3000 компании Hewlett-Packard , но HP не была заинтересована в разработке для этой ниши. Затем он присоединился к венчурной компании Kleiner Perkins и разработал там бизнес-план Tandem. [2] [3] [4] Трейбиг собрал основную команду инженеров, нанятых из подразделения HP 3000 : Майка Грина, Джима Кацмана, Дэйва Маки и Джека Лустауноу. Их бизнес-план предусматривал сверхнадежные системы, которые никогда не имели сбоев и никогда не теряли или не повреждали данные. Они были модульными по-новому, что было защищено от всех « отказов в одной точке », но при этом были лишь незначительно дороже обычных неотказоустойчивых систем. Они будут менее затратными и будут поддерживать большую пропускную способность, чем некоторые существующие специальные усиленные системы, которые используют избыточные, но обычно требующие «горячего резерва».
Каждый инженер был уверен, что сможет быстро выполнить свою часть этого сложного нового проекта, но сомневался, что другие области смогут быть проработаны. Части дизайна оборудования и программного обеспечения, которые не должны были отличаться, в значительной степени основывались на постепенных улучшениях знакомых конструкций оборудования и программного обеспечения HP 3000. Многие последующие инженеры и программисты также пришли из HP. Штаб-квартира Tandem в Купертино, Калифорния, находилась в четверти мили от офисов HP. Первоначальные венчурные инвестиции в Tandem Computers поступили от Тома Перкинса, который ранее был генеральным менеджером подразделения HP 3000.
Бизнес-план включал подробные идеи по созданию уникальной корпоративной культуры, отражающей ценности Treybig.
Разработка первоначального оборудования Tandem/16 была завершена в 1975 году, а первая система была отправлена в Citibank в мае 1976 года.
Компания непрерывно росла экспоненциально до 1983 года. Журнал Inc. оценил Tandem как самую быстрорастущую публичную компанию в Америке. К 1996 году Tandem была компанией стоимостью 2,3 миллиарда долларов, в которой работало около 8000 человек по всему миру.
За 40 лет основная линейка продуктов NonStop компании Tandem росла и развивалась в восходящем направлении от первоначальной отказоустойчивой системы T/16 с тремя основными изменениями в ее модульной архитектуре верхнего уровня или архитектуре набора инструкций программирования. В каждой серии было несколько крупных повторных реализаций по мере развития технологии чипов.
В то время как обычные системы той эпохи, включая большие мэйнфреймы , имели среднее время между отказами (MTBF) порядка нескольких дней, система NonStop была разработана для интервалов между отказами в 100 раз больше, с временем безотказной работы, измеряемым годами. Тем не менее, NonStop была разработана так, чтобы быть конкурентоспособной по цене с обычными системами, с простой системой с 2 ЦП, которая стоила чуть более чем в два раза больше, чем конкурирующий однопроцессорный мэйнфрейм, в отличие от четырех или более раз других отказоустойчивых решений.
Первой системой была Tandem/16 или T/16 , позже переименованная в NonStop I. [ 5] Машина состояла из двух-шести процессоров, организованных как отказоустойчивый компьютерный кластер , упакованный в одну стойку. Каждый процессор имел свою собственную частную, неразделяемую память, свой собственный процессор ввода-вывода , свою собственную частную шину ввода-вывода для подключения к контроллерам ввода-вывода и двойные соединения со всеми другими процессорами через специальную межпроцессорную объединительную шину , называемую Dynabus . Каждый дисковый контроллер или сетевой контроллер был дублирован и имел двойные соединения как с процессорами, так и с устройствами. Каждый диск был зеркалирован с отдельными соединениями с двумя независимыми контроллерами дисков. Если диск выходил из строя, его данные все еще были доступны из его зеркальной копии. Если выходил из строя процессор, контроллер или шина, диск все еще был доступен через альтернативный процессор, контроллер и/или шину. Каждый дисковый или сетевой контроллер был подключен к двум независимым процессорам. Каждый блок питания был подключен только к одной стороне пары ЦП, контроллеров или шин, так что система могла продолжать работать без потери соединений, если один блок питания выходил из строя. Тщательное сложное расположение деталей и соединений в более крупных конфигурациях клиентов было задокументировано на диаграмме Mackie , названной в честь ведущего продавца Дэвида Макки, который изобрел эту нотацию. [6] Ни одна из этих дублированных деталей не была бесполезной «горячей заменой»; все добавлялось к пропускной способности системы во время нормальной работы.
Помимо хорошего восстановления после отказа деталей, T/16 также был разработан для обнаружения как можно большего количества видов периодических сбоев как можно скорее. Это быстрое обнаружение называется «fail fast». Суть заключалась в том, чтобы найти и изолировать поврежденные данные до того, как они будут навсегда записаны в базы данных и другие файлы на диске. В T/16 обнаружение ошибок осуществлялось с помощью дополнительных пользовательских схем, которые добавляли небольшую стоимость к общей конструкции; никакие основные детали не дублировались для обнаружения ошибок.
Процессор T/16 был фирменной разработкой. На него сильно повлиял миникомпьютер HP 3000. Они оба были микропрограммируемыми , 16-битными , стековыми машинами с сегментированной 16-битной виртуальной адресацией. Оба предназначались для программирования исключительно на языках высокого уровня, без использования ассемблера . Оба изначально были реализованы с помощью стандартных микросхем TTL низкой плотности , каждая из которых содержала 4-битный фрагмент 16-битного ALU . Оба имели небольшое количество верхних 16-битных регистров данных плюс несколько дополнительных адресных регистров для доступа к стеку памяти. Оба использовали кодировку Хаффмана смещений адресов операндов, чтобы вместить большое разнообразие режимов адресов и размеров смещений в формат 16-битных инструкций с хорошей плотностью кода. Оба в значительной степени полагались на пулы косвенных адресов для преодоления формата коротких инструкций. Оба поддерживали большие 32- и 64-битные операнды с помощью нескольких циклов ALU и строковых операций память-память. Оба использовали адресацию "big-endian" длинных и коротких операндов памяти. Все эти функции были вдохновлены стековыми машинами мэйнфреймов Burroughs B5500–B6800.
Набор инструкций T/16 изменил несколько функций по сравнению с конструкцией HP 3000. T/16 поддерживал страничную виртуальную память с самого начала. Серия HP 3000 не добавляла страничную адресацию до поколения PA-RISC, 10 лет спустя (хотя через MPE V она имела форму страничной адресации с использованием прошивки APL, в 1978 году). Tandem добавила поддержку 32-битной адресации во второй машине; HP 3000 не имел ее до поколения PA-RISC. Страничная адресация и длинные адреса были критически важны для поддержки сложного системного программного обеспечения и больших приложений. T/16 обрабатывал свои регистры верхнего стека новым способом; компилятор, а не микрокод, отвечал за решение, когда полные регистры сбрасывались в стек памяти, а когда пустые регистры повторно заполнялись из стека памяти. В HP 3000 это решение требовало дополнительных циклов микрокода в каждой инструкции. HP 3000 поддерживал COBOL с несколькими инструкциями для прямого вычисления строк цифр BCD (двоично-десятичные) произвольной длины. T/16 упростил это до отдельных инструкций для преобразования между строками BCD и 64-битными двоичными целыми числами.
В T/16 каждый ЦП состоял из двух плат логики TTL и SRAM и работал со скоростью около 0,7 MIPS . [7] В любой момент времени он мог получить доступ только к четырем сегментам виртуальной памяти (системные данные, системный код, пользовательские данные, пользовательский код), каждый из которых был ограничен размером 128 КБ. 16-битные адресные пространства были уже малы для основных приложений, когда он поставлялся.
Первая версия T/16 имела только один язык программирования, Transaction Application Language (TAL). Это был эффективный машинно-зависимый системный язык программирования (для операционных систем, компиляторов и т. д.), но его можно было использовать и для непереносимых приложений. Он был получен из System Programming Language (SPL) HP 3000. Оба имели семантику, похожую на C, но синтаксис был основан на ALGOL Берроуза . Последующие версии добавили поддержку Cobol74, Basic , Fortran , Java , C, C++ и MUMPS .
Серия Tandem NonStop работала на пользовательской операционной системе , которая существенно отличалась от Unix или MPE HP 3000. Первоначально она называлась T/TOS ( Tandem Transactional Operating System ), но вскоре получила название Guardian за ее способность защищать все данные от сбоев машины и программного обеспечения. В отличие от всех других коммерческих операционных систем, Guardian была основана на передаче сообщений как на основном способе взаимодействия всех процессов, без общей памяти, независимо от того, где эти процессы выполнялись. [8] [9] Этот подход легко масштабировался до кластеров из нескольких компьютеров и помогал изолировать поврежденные данные до их распространения.
Все процессы файловой системы и все процессы транзакционных приложений были структурированы как пары процессов главный/подчиненный, работающие на отдельных ЦП. Подчиненный процесс периодически делал снимки состояния памяти главного процесса и брал на себя рабочую нагрузку, если и когда главный процесс сталкивался с проблемами. Это позволяло приложению пережить сбои в любом ЦП или связанных с ним устройствах без потери данных. Это также позволяло восстанавливаться после некоторых периодических сбоев программного обеспечения. Между сбоями мониторинг подчиненным процессом добавлял некоторые накладные расходы на производительность, но это было намного меньше, чем 100% дублирование в других конструкциях систем. Некоторые основные ранние приложения были напрямую закодированы в этом стиле контрольных точек, но большинство вместо этого использовали различные программные слои Tandem, которые скрывали детали этого полупереносимым способом.
В 1981 году все процессоры T/16 были заменены на NonStop II . Его основным отличием от T/16 была поддержка периодической 32-битной адресации через переключаемый пользователем «расширенный сегмент данных». Это поддерживало следующие десять лет роста программного обеспечения и было преимуществом по сравнению с T/16 или HP 3000. Видимые регистры оставались 16-битными, и это незапланированное дополнение к набору инструкций требовало выполнения множества инструкций на ссылку памяти по сравнению с большинством 32-битных мини-компьютеров. Все последующие компьютеры TNS были ограничены этой неэффективностью набора инструкций. Поскольку у NonStop II не было более широких внутренних путей данных, ему приходилось использовать дополнительные шаги микрокода для 32-битных адресов. Процессор NonStop II имел три платы, используя чипы и конструкцию, похожие на T/16. NonStop II также заменил основную память на память DRAM с батарейным питанием.
В 1983 году NonStop TXP CPU стал первой полностью новой реализацией архитектуры набора инструкций TNS. [10] [11] [12] Он был построен из стандартных микросхем TTL и микросхем Programmed Array Logic, с четырьмя платами на модуль ЦП. Он впервые в истории Tandem использовал кэш-память. Он имел более прямую реализацию 32-битной адресации, но по-прежнему отправлял их через 16-битные сумматоры. Более широкое хранилище микрокодов позволило значительно сократить количество циклов, выполняемых на одну инструкцию; скорость возросла до 2,0 MIPS. Он использовал ту же упаковку стойки, контроллеры, объединительную плату и шины, что и раньше. Шины Dynabus и ввода-вывода были перепроектированы в T/16, поэтому они могли работать в течение нескольких поколений обновлений.
До 14 систем TXP и NonStop II теперь можно было объединить через FOX , отказоустойчивую оптоволоконную шину большой протяженности для соединения кластеров TNS по всему бизнес-кампус; кластер кластеров с общим количеством ЦП 224. Это позволяло дальнейшее масштабирование для работы с крупнейшими приложениями мэйнфреймов. [13] Как и модули ЦП в компьютерах, операционная система Guardian могла переключать целые наборы задач на другие машины в сети. Всемирные кластеры из 4000 ЦП также могли быть построены с помощью обычных магистральных сетевых соединений.
В 1986 году Tandem представила процессор третьего поколения NonStop VLX . [14] Он имел 32-битные пути данных, более широкий микрокод, время цикла 12 МГц и пиковую скорость одной инструкции за цикл. Он был построен из трех плат чипов вентильной матрицы ECL (с распиновкой TTL). Он имел переработанный Dynabus со скоростью, увеличенной до 20 МБ/с на соединение, всего 40 МБ/с. Позже FOX II увеличил физический диаметр кластеров TNS до 4 километров.
Первоначальная поддержка баз данных Tandem была только для иерархических, нереляционных баз данных через файловую систему ENSCRIBE . Она была расширена до реляционной базы данных под названием ENCOMPASS . [15] В 1986 году Tandem представила первую отказоустойчивую базу данных SQL , NonStop SQL . [16] Разработанная полностью внутри компании, NonStop SQL включает ряд функций на основе Guardian для обеспечения достоверности данных на узлах. NonStop SQL известна своим линейным масштабированием производительности с количеством узлов, добавленных в систему, в то время как большинство баз данных имели производительность, которая довольно быстро стабилизировалась, часто всего после двух ЦП. Более поздняя версия, выпущенная в 1989 году , добавила транзакции, которые можно было распределить по узлам, функция, которая оставалась уникальной в течение некоторого времени. NonStop SQL продолжала развиваться, сначала как NonStop SQL/MP, а затем как NonStop SQL/MX, которая перешла от Tandem к Compaq и HP. Код по-прежнему используется в проектах NonStop SQL/MP, NonStop SQL/MX компании HP и Apache Trafodion . [17]
В 1987 году Tandem представила NonStop CLX , недорогую и менее расширяемую миникомпьютерную систему. [18] [19] Ее роль заключалась в росте нижнего уровня отказоустойчивого рынка и развертывании на удаленных границах больших сетей Tandem. Ее первоначальная производительность была примерно такой же, как у TXP; более поздние версии улучшились до уровня, когда они были примерно на 20% медленнее, чем VLX. Ее небольшой корпус можно было установить в любой офисной среде «копировальной комнаты». ЦП CLX представлял собой одну плату, содержащую шесть «скомпилированных кремниевых» микросхем ASIC CMOS . Микросхема ядра ЦП была дублирована и имела блокировку для максимального обнаружения ошибок. Это не добавляло дополнительной отказоустойчивости, но гарантировало целостность данных, поскольку каждый ЦП включал проверочную логику, которая гарантировала, что результаты обоих микросхем ЦП были идентичны. Другие процессоры обеспечивали отказоустойчивость. Распиновка была основным ограничением этой технологии чипов. Микрокод, кэш и TLB были внешними по отношению к ядру ЦП и совместно использовали одну шину и один банк SRAM . В результате CLX требовал не менее двух машинных циклов на инструкцию.
В 1989 году Tandem представила NonStop Cyclone , быструю, но дорогую систему для мэйнфреймового сегмента рынка. [20] [21] Каждый самопроверяющийся ЦП занимал три платы, заполненные горячими микросхемами вентильной матрицы ECL, плюс платы памяти. Несмотря на микропрограммирование, ЦП был суперскалярным , часто выполняя две инструкции за цикл кэширования. Это достигалось за счет наличия отдельной процедуры микрокода для каждой общей пары инструкций. [22] Эта объединенная пара инструкций стека обычно выполняла ту же работу, что и одна инструкция обычных 32-битных мини-компьютеров. Процессоры Cyclone были упакованы в секции по четыре ЦП каждая, а секции соединялись оптоволоконной версией Dynabus.
Как и предыдущие высококлассные машины Tandem, корпуса Cyclone были оформлены в черном цвете, что символизировало прочность и мощь. Рекламные видеоролики напрямую сравнивали Cyclone с самолетом-шпионом Lockheed SR-71 Blackbird Mach 3. Название Cyclone должно было отражать его «неудержимую скорость в прорыве через рабочие нагрузки OLTP». День объявления был 17 октября 1989 года. В тот день днем регион пострадал от землетрясения магнитудой 6,9 баллов в Лома-Приете , вызвавшего обрушение автомагистралей в Окленде и крупные пожары в Сан-Франциско . Офисы Tandem были потрясены, но никто серьезно не пострадал на месте.
В 1980–1983 годах Tandem попыталась перепроектировать весь свой аппаратный и программный стек, чтобы поставить свои методы NonStop на более прочную основу, чем унаследованные черты HP 3000. Аппаратное обеспечение Rainbow представляло собой 32-битную машину регистровых файлов, которая должна была быть лучше, чем Digital Equipment Corporation VAX . Для надежного программирования основным языком программирования был «TPL», подмножество Ada . В то время программисты едва понимали, как компилировать Ada в неоптимизированный код. Для существующего системного программного обеспечения NonStop, закодированного в TAL, не существовало пути миграции. ОС, база данных и компиляторы Cobol были полностью переработаны. Клиенты увидели бы это как совершенно разрозненную линейку продуктов, требующую от них совершенно нового программного обеспечения. Программная сторона этого проекта заняла гораздо больше времени, чем планировалось. Аппаратное обеспечение уже устарело и уступало TXP еще до того, как его программное обеспечение было готово, в результате чего проект Rainbow был заброшен. Все последующие усилия подчеркивали совместимость сверху вниз и простые пути миграции.
Разработка усовершенствованной клиент-серверной среды разработки приложений Rainbow под названием «Crystal» продолжалась некоторое время и была выделена в отдельный продукт «Ellipse» компании Cooperative Systems Incorporated. [23]
В 1985 году Tandem попыталась захватить часть быстрорастущего рынка персональных компьютеров , выпустив Dynamite PC/workstation на базе MS-DOS . Многочисленные компромиссы в дизайне (включая уникальную аппаратную платформу на базе 8086, несовместимую с картами расширения того времени, и крайне ограниченную совместимость с ПК на базе IBM ) низвели Dynamite до уровня использования в первую очередь в качестве смарт-терминала. Он был тихо и быстро снят с рынка.
Операционная система Tandem NonStop на основе сообщений имела преимущества для масштабирования, чрезвычайной надежности и эффективного использования дорогих «запасных» ресурсов. Но многие потенциальные клиенты хотели просто достаточно хорошей надежности в небольшой системе, используя знакомую операционную систему Unix и стандартные отраслевые программы. Различные отказоустойчивые конкуренты Tandem все приняли более простую конструкцию, ориентированную только на аппаратную память, где все восстановление выполнялось путем переключения между горячими резервами. Самым успешным конкурентом была Stratus Technologies , чьи машины были перепроданы IBM как «IBM System/88».
В таких системах резервные процессоры не вносят вклад в пропускную способность системы между сбоями, а просто избыточно выполняют точно такой же поток данных, что и активный процессор в тот же момент, в «блокировке шага». Неисправности обнаруживаются путем наблюдения за тем, когда выходные данные клонированных процессоров расходятся. Для обнаружения сбоев система должна иметь два физических процессора для каждого логического, активного процессора. Чтобы также реализовать автоматическое восстановление после отказа, система должна иметь три или четыре физических процессора для каждого логического процессора. Тройная или учетверенная стоимость этого резервирования практична, когда дублированные части являются однокристальными микропроцессорами массового производства.
Продукция Tandem для этого рынка началась с линейки Integrity в 1989 году, использующей процессоры MIPS и вариант Unix «NonStop UX». Она была разработана в Остине, штат Техас. В 1991 году Integrity S2 использовала TMR, тройную модульную избыточность, где каждый логический ЦП использовал три микропроцессора MIPS R2000 для выполнения одного и того же потока данных с голосованием для поиска и блокировки отказавшей части. Их быстрые часы не могли быть синхронизированы, как при строгом шаге блокировки, поэтому голосование вместо этого происходило при каждом прерывании. [24] Некоторые другие версии Integrity использовали избыточность 4x «пара и запасные». Пары процессоров работали в режиме блокировки, чтобы проверять друг друга. Когда они не соглашались, оба процессора помечались как недоверенные, и их рабочая нагрузка принималась парой процессоров горячего резерва, состояние которой уже было текущим. В 1995 году Integrity S4000 стал первым устройством, в котором использовалась структура ServerNet (сетевая «шина»), и перешел к совместному использованию периферийных устройств с линейкой NonStop.
В 1995–1997 годах Tandem сотрудничала с Microsoft для внедрения функций высокой доступности и расширенных конфигураций SQL в кластерах машин Microsoft Windows NT . Этот проект имел кодовое название «Wolfpack» и впервые был поставлен как Microsoft Cluster Server в 1997 году. Microsoft извлекла большую выгоду из этого партнерства; Tandem — нет.
Когда в 1974 году была образована компания Tandem, каждая компьютерная компания проектировала и создавала свои процессоры на основе базовых схем [ требуется ссылка ] , используя собственный набор инструкций, компиляторы и т. д. С каждым годом прогресса полупроводников с законом Мура все больше основных схем процессора могли поместиться в отдельные чипы и работать быстрее и дешевле в результате. Однако для компьютерной компании становилось все дороже разрабатывать эти передовые пользовательские чипы или строить заводы для их изготовления. Столкнувшись с проблемами этого меняющегося рынка и производственного ландшафта, Tandem заключила партнерство с MIPS и приняла его чипсеты R3000 и последующие чипсеты, а также их передовой оптимизирующий компилятор. Последующие машины NonStop Guardian, использующие архитектуру MIPS, были известны программистам как машины TNS/R и имели различные маркетинговые названия.
В 1991 году Tandem выпустила Cyclone/R, также известную как CLX/R. Это была недорогая система среднего уровня, основанная на компонентах CLX, но использовавшая микропроцессоры R3000 вместо гораздо более медленной платы стековой машины CLX. Чтобы сократить время выхода на рынок, эта машина изначально поставлялась без какого-либо программного обеспечения MIPS в собственном режиме. Все, включая ее операционную систему NonStop Kernel (NSK) (продолжение Guardian) и базу данных NonStop SQL, было скомпилировано в код стековой машины TNS. Затем этот объектный код был переведен в эквивалентные частично оптимизированные последовательности инструкций MIPS во время установки ядра с помощью инструмента, называемого Accelerator. [25] Менее важные программы также могли выполняться напрямую без предварительной трансляции, через интерпретатор кода TNS . Эти методы миграции оказались успешными и используются по сей день. Программное обеспечение для конечного пользователя было перенесено без дополнительной работы, производительность была достаточно хорошей для машин среднего уровня, и программисты могли игнорировать различия в инструкциях даже при отладке на уровне машинного кода. В следующем выпуске эти машины Cyclone/R были обновлены до более быстрой операционной системы NSK в собственном режиме.
Микропроцессоры R3000 и более поздние имели только типичное количество внутренних проверок ошибок, недостаточное для нужд Tandem. Поэтому Cyclone/R запускал пары процессоров R3000 в режиме блокировки шага, запуская один и тот же поток данных. Это было сделано для обеспечения целостности данных, а не отказоустойчивости — отказоустойчивость обеспечивалась другими механизмами, которые все еще были на месте. Он использовал разновидность блокировки шага. Процессор проверки работал на 1 цикл позже основного процессора. Это позволяло им совместно использовать одну копию внешнего кода и кэшей данных, не создавая чрезмерной нагрузки на выводную часть системной шины и не снижая тактовую частоту системы. Для успешного запуска микропроцессоров в режиме блокировки шага чипы должны быть спроектированы как полностью детерминированные. Любое скрытое внутреннее состояние должно быть очищено механизмом сброса чипа. В противном случае согласованные чипы могут выйти из синхронизации без видимых причин и без каких-либо неисправностей, еще долго после перезапуска чипов. Разработчики чипов согласны, что это хорошие принципы, поскольку они помогают им тестировать чипы во время производства. Однако все новые микропроцессорные чипы, по-видимому, имели ошибки в этой области, и потребовались месяцы совместной работы между MIPS (сторонним производителем, с которым работает Tandem) и Tandem, чтобы устранить или обойти последние едва заметные ошибки.
В 1993 году Tandem выпустила NonStop Himalaya K-серии с более быстрым MIPS R4400 , операционной системой NSK в собственном режиме и полностью расширяемыми компонентами системы Cyclone. Они были соединены Dynabus, Dynabus+ и оригинальной шиной ввода-вывода, которые к тому времени уже исчерпали запас производительности.
В 1995 году ядро NonStop было расширено Unix-подобной средой POSIX под названием Open System Services. [26] Оригинальная оболочка Guardian и ABI остались доступными.
В 1997 году Tandem представила NonStop Himalaya S-Series с новой архитектурой системы верхнего уровня на основе соединений ServerNet . ServerNet заменил шины Dynabus, FOX и I/O. Он был намного быстрее, более универсален и мог быть расширен до большего, чем просто двухстороннее резервирование через произвольную структуру соединений точка-точка. Tandem разработала ServerNet для собственных нужд, но затем способствовала его использованию другими; он превратился в отраслевой стандарт InfiniBand .
Все машины серии S использовали процессоры MIPS, включая R4400, R10000 , R12000 и R14000 .
Разработка более поздних, более быстрых ядер MIPS в основном финансировалась Silicon Graphics Inc. Но шестое поколение Pentium Pro от Intel превзошло производительность конструкций RISC , а также сократился графический бизнес SGI. После R10000 не было инвестиций в значительные новые конструкции ядер MIPS для высокопроизводительных серверов. Поэтому Tandem необходимо было перевести свою линейку продуктов NonStop на другую архитектуру микропроцессоров с конкурентоспособными быстрыми чипами.
Джимми Трейбиг оставался генеральным директором основанной им компании до спада в 1996 году. Следующим генеральным директором стал Роэл Пипер , который присоединился к компании в 1996 году в качестве президента и генерального директора. Ребрендинг для продвижения себя как настоящей платформы Wintel (Windows/Intel) был проведен их внутренней командой по бренду и креативу во главе с Рональдом Мэем, который позже стал соучредителем Silicon Valley Brand Forum в 1999 году. Концепция сработала, и вскоре после этого компания была приобретена Compaq.
Подразделение Compaq по производству серверов на базе x86 стало одним из первых внешних пользователей технологии межсоединений ServerNet/InfiniBand компании Tandem. В 1997 году Compaq приобрела компанию Tandem Computers и клиентскую базу NonStop, чтобы сбалансировать сильную ориентацию Compaq на персональные компьютеры (ПК). В 1998 году Compaq также приобрела гораздо более крупную Digital Equipment Corporation и унаследовала ее серверы DEC Alpha RISC с клиентскими базами OpenVMS и Tru64 Unix . Tandem тогда находилась на полпути к переносу своей линейки продуктов NonStop с микропроцессоров MIPS R12000 на новые микропроцессоры Itanium Merced компании Intel. Этот проект был перезапущен с Alpha в качестве новой цели, чтобы привести NonStop в соответствие с другими крупными линейками серверов Compaq. Но в 2001 году Compaq прекратила все инженерные инвестиции в Alpha в пользу микропроцессоров Itanium, прежде чем какие-либо новые продукты NonStop были выпущены на Alpha.
В 2001 году Hewlett-Packard аналогичным образом сделала выбор в пользу отказа от своих успешных линеек продуктов PA-RISC в пользу микропроцессоров Itanium от Intel, которые HP помогала разрабатывать. Вскоре после этого Compaq и HP объявили о своем плане слияния и консолидации своих схожих линеек продуктов. Это спорное слияние стало официальным в мае 2002 года. Объединения были болезненными и разрушили ориентированные на инженеров культуры DEC и "HP Way", но объединенная компания знала, как продавать сложные системы предприятиям и получать прибыль, поэтому это было улучшением для выжившего подразделения NonStop и его клиентов.
В некотором смысле, путь Tandem от стартапа, вдохновленного HP, до конкурента, вдохновленного HP, а затем до подразделения HP был «возвращением Tandem к ее первоначальным корням», но это был уже не тот HP.
Перенос линейки продуктов NonStop на базе NSK с процессоров MIPS на процессоры на базе Itanium был завершен и получил название «серверы HP Integrity NonStop». (Эта линейка продуктов NSK Integrity NonStop не имела отношения к оригинальной серии «Integrity» от Tandem для Unix.)
Поскольку было невозможно запустить чипы Itanium McKinley с блокировкой на уровне тактовой частоты, машины Integrity NonStop вместо этого блокировали шаг, используя сравнения между состояниями чипа в более длительных временных масштабах, в точках прерывания и в различных точках синхронизации программного обеспечения между прерываниями. Промежуточные точки синхронизации автоматически запускались на каждой n-й взятой инструкции ветвления и также явно вставлялись в длинные тела циклов всеми компиляторами NonStop. Конструкция машины поддерживала как двойную, так и тройную избыточность, с двумя или тремя физическими микропроцессорами на логический процессор Itanium. Тройная версия продавалась клиентам, которым требовалась максимальная надежность. Этот новый подход к проверке назывался NSAA, NonStop Advanced Architecture . [27]
Как и при более ранней миграции со стековых машин на микропроцессоры MIPS, все клиентское программное обеспечение было перенесено без изменения исходного кода. Исходный код «родного режима», скомпилированный непосредственно в машинный код MIPS, был просто перекомпилирован для Itanium. Некоторое старое «неродное» программное обеспечение все еще находилось в форме стековой машины TNS. Они были автоматически перенесены на Itanium с помощью методов трансляции объектного кода.
Следующим шагом стал переход с Itanium на архитектуру Intel x86. Он был завершен в 2014 году, когда первые системы поступили в продажу.
Включение отказоустойчивых коммутаторов InfiniBand 4X FDR (Fourteen Data Rate) двойной ширины обеспечило более чем 25-кратное увеличение пропускной способности системных соединений. [28]
NSK Guardian также стала основой для HP Neoview OS, операционной системы, используемой в системах HP Neoview , которые были адаптированы для использования в Business Intelligence и Enterprise Data Warehouse. NonStop SQL/MX также стала отправной точкой для Neoview SQL, который был адаптирован для использования в Business Intelligence. Код также был перенесен на Linux и послужил основой для проекта Apache Trafodion .
Бизнес-план Treybig включал в себя подробные идеи по созданию корпоративной культуры, отражающей ценности Treybig, такие как оплачиваемый шестинедельный отпуск каждые четыре года для всех сотрудников, ежегодный подарок в размере 100 акций Tandem всем сотрудникам, еженедельная вечеринка для всех сотрудников, известная как Beer Bust Fridays, и ежемесячная всемирная закрытая телетрансляция («First Friday») для информирования сотрудников.