Введение

Производитель отказоустойчивых компьютеров

Tandem Computers, Inc. была доминирующим производителем отказоустойчивых компьютерных систем для сетей банкоматов, банков, фондовых бирж, телефонных коммутационных центров, систем экстренной помощи 911 и других аналогичных приложений для обработки коммерческих транзакций, требующих максимального времени безотказной работы и отсутствия потери данных. Компания была основана Джимми Трейбигом в 1974 году в Купертино, Калифорния. Она оставалась независимой до 1997 года, когда стала серверным подразделением Compaq. В настоящее время это серверное подразделение в Hewlett Packard Enterprise, после приобретения компанией Hewlett Packard компании Compaq и разделения 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. Трейбиг собрал основную команду инженеров, переманив их из подразделения HP 3000: Майка Грина, Джима Кацмана, Дэйва Макки и Джека Лустауну. Их бизнес-план предусматривал создание сверхнадежных систем, которые никогда не выходили бы из строя и не теряли бы или повреждали данные. Эти системы должны были быть модульными, с новой архитектурой, защищенной от всех "единичных точек отказа", при этом лишь незначительно превосходя по стоимости обычные системы, не обладающие отказоустойчивостью. Они должны были быть дешевле и обеспечивать более высокую пропускную способность, чем некоторые существующие специализированные, усиленные системы, использующие резервирование, но обычно требующие "горячих резервных копий". Каждый инженер был уверен, что сможет быстро реализовать свою часть этого сложного нового проекта, но сомневался в возможности успешной реализации других компонентов. Части аппаратного и программного обеспечения, которые не требовали изменений, в основном базировались на постепенных улучшениях знакомых аппаратных и программных решений HP 3000. Многие последующие инженеры и программисты также пришли из HP. Штаб-квартира Tandem в Купертино, Калифорния, находилась в квартале мили от офисов HP. Первоначальные венчурные инвестиции в Tandem Computers поступили от Тома Перкинса, который ранее был генеральным директором подразделения HP 3000. Бизнес-план включал в себя детальные идеи по созданию уникальной корпоративной культуры, отражающей ценности Трейбига. Проектирование первоначального оборудования Tandem/16 было завершено в 1975 году, а первая система была поставлена в Citibank в мае 1976 года. Компания демонстрировала непрерывный экспоненциальный рост вплоть до 1983 года. Журнал Inc. признал Tandem самой быстрорастущей публичной компанией в Америке. К 1996 году Tandem стала компанией с оборотом в 2,3 миллиарда долларов, в которой работало около 8000 человек по всему миру.

Тандемные стальные машины без остановки (TNS)

За более чем 40 лет основная линейка продуктов NonStop компании Tandem росла и развивалась, сохраняя обратную совместимость, начиная с первой отказоустойчивой системы T/16. За это время в ее модульной архитектуре верхнего уровня и архитектуре набора команд программирования было внесено три существенных изменения. В рамках каждой серии проводились несколько крупных переработок по мере развития элементной базы. В то время как типичные системы того времени, включая крупные мейнфреймы, имели среднее время наработки на отказ (MTBF) порядка нескольких дней, система NonStop была спроектирована для работы в 100 раз дольше между отказами, обеспечивая время безотказной работы, измеряемое годами. При этом NonStop разрабатывался как конкурентоспособное по цене решение: простая система с двумя процессорами стоила чуть более чем в два раза дороже, чем сопоставимый однопроцессорный мейнфрейм, в отличие от четырех и более раз по сравнению с другими отказоустойчивыми решениями.

Не останавливайтесь.

Первой системой была Tandem/16 или T/16, позже переименованная в NonStop I. Машина состояла из двух–16 процессоров, организованных в виде отказоустойчивого компьютерного кластера, размещенного в одной стойке. Каждый процессор имел свою собственную, выделенную память, свой собственный процессор ввода-вывода, свою собственную выделенную шину ввода-вывода для подключения к контроллерам ввода-вывода и двойные соединения со всеми остальными процессорами через специальную межпроцессорную шину под названием Dynabus. Каждый дисковый или сетевой контроллер был дублирован и имел двойные соединения как с процессорами, так и с устройствами. Каждый диск был зеркалирован, с отдельными соединениями к двум независимым дисковым контроллерам. В случае выхода диска из строя его данные оставались доступными из его зеркальной копии. В случае отказа процессора, контроллера или шины диск оставался доступным через альтернативный процессор, контроллер и/или шину. Каждый дисковый или сетевой контроллер был подключен к двум независимым процессорам. Блоки питания подключались только к одной стороне пары процессоров, контроллеров или шин, чтобы система продолжала работать без потери соединений в случае отказа одного блока питания. Тщательная и сложная компоновка деталей и соединений в крупных клиентских конфигурациях была задокументирована в диаграмме Макки, названной в честь ведущего продавца Дэвида Макки, который разработал эту нотацию. Ни одна из этих дублированных частей не использовалась в качестве "горячих запасных"; все они увеличивали пропускную способность системы во время нормальной работы. Помимо успешного восстановления после отказавших компонентов, T/16 также был разработан для обнаружения как можно большего числа видов прерывистых сбоев как можно быстрее. Это быстрое обнаружение называется "fail fast". Цель состояла в том, чтобы обнаружить и изолировать поврежденные данные до того, как они будут навсегда записаны в базы данных и другие дисковые файлы. В T/16 обнаружение ошибок осуществлялось с помощью дополнительных специализированных схем, которые незначительно увеличивали общую стоимость конструкции; основные компоненты не дублировались только для обнаружения ошибок. Процессор T/16 был разработан компанией самостоятельно. На него оказал большое влияние миникомпьютер HP 3000. Оба были микропрограммируемыми, 16-битными, стековыми машинами с сегментированной 16-битной виртуальной адресацией. Оба предназначались для программирования исключительно на языках высокого уровня, без использования ассемблера. Оба изначально были реализованы с использованием стандартных TTL-чипов с низкой плотностью, каждый из которых содержал 4-битный срез 16-битного АЛУ. Оба имели небольшое количество регистров данных верхнего уровня стека, 16 бит, а также несколько дополнительных адресных регистров для доступа к стеку памяти. Оба использовали кодирование Хаффмана для смещений адресов операндов, чтобы уместить большое разнообразие режимов адресации и размеров смещений в 16-битный формат инструкции с очень хорошей плотностью кода. Оба в значительной степени полагались на пулы косвенных адресов для преодоления короткого формата инструкций. Оба поддерживали более крупные 32- и 64-битные операнды посредством нескольких циклов АЛУ и операции со строками в памяти. Оба использовали порядок байтов "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. В любой момент времени он мог получить доступ только к четырем сегментам виртуальной памяти (Системные данные, Системный код, Пользовательские данные, Пользовательский код), каждый из которых был ограничен размером 128 КБ. 16-битные адресные пространства уже были малы для крупных приложений на момент выпуска. Первая версия T/16 имела только один язык программирования – Transaction Application Language (TAL). Это был эффективный, зависимый от машины язык системного программирования (для операционных систем, компиляторов и т. д.), но также мог использоваться для непереносимых приложений. Он был получен из System Programming Language (SPL) HP 3000. Оба имели семантику, аналогичную C, но синтаксис, основанный на ALGOL от Burroughs. В последующих версиях была добавлена поддержка Cobol74, Basic, Fortran, Java, C, C++ и MUMPS. Операционная система серии Tandem NonStop была собственной и значительно отличалась от Unix или MPE от HP 3000. Первоначально она называлась T/TOS (Tandem Transactional Operating System), но вскоре была переименована в Guardian за ее способность защищать все данные от аппаратных и программных сбоев. В отличие от всех других коммерческих операционных систем, Guardian был основан на передаче сообщений как на основном способе взаимодействия всех процессов, без общей памяти, независимо от того, где выполнялись процессы. Этот подход легко масштабировался до нескольких компьютерных кластеров и помогал изолировать поврежденные данные до их распространения. Все процессы файловой системы и все процессы транзакционных приложений были структурированы как пары процессов "главный/подчиненный", работающие на отдельных процессорах. Подчиненный процесс периодически создавал снимки состояния памяти главного процесса и перехватывал рабочую нагрузку, если и когда главный процесс сталкивался с проблемами. Это позволяло приложению выживать при сбоях в любом процессоре или связанных с ним устройствах, без потери данных. Это также позволяло восстановиться после некоторых прерывистых программных сбоев. Между сбоями мониторинг со стороны подчиненного процесса добавлял некоторую задержку, но она была намного меньше, чем 100% дублирование в других системных конструкциях. Некоторые крупные ранние приложения были непосредственно закодированы в этом стиле контрольных точек, но большинство из них вместо этого использовали различные программные слои Tandem, которые скрывали детали этого в полупереносимом виде.

NonStop II

В 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-память с резервным питанием от батареи.

Не останавливайтесь на TXP

В 1983 году NonStop TXP CPU стал первой полностью новой реализацией архитектуры набора команд TNS. Он был построен на стандартных микросхемах TTL и программируемых логических матрицах, с четырьмя платами на модуль процессора. В нем впервые в Tandem было применено кэш-память. Он обеспечивал более прямую реализацию 32-битной адресации, но данные все равно передавались через 16-битные сумматоры. Увеличенный объем микрокода позволил существенно сократить количество циклов, необходимых для выполнения одной инструкции, что повысило производительность до 2,0 МИПС. Он использовал ту же систему корпусного исполнения, контроллеры, материнскую плату и шины, что и ранее. Шины Dynabus и ввода-вывода были изначально спроектированы с запасом в T/16, чтобы обеспечить их работоспособность на протяжении нескольких поколений обновлений.

ЛОШКА

До 14 систем TXP и NonStop II теперь можно было объединить посредством FOX – отказоустойчивой оптоволоконной шины большой дальности для соединения кластеров TNS в пределах бизнес-кампуса, образуя кластер кластеров с общей вычислительной мощностью 224 процессоров. Это обеспечивало возможность дальнейшего масштабирования для запуска самых крупных приложений, ранее выполнявшихся на мэйнфреймах. Как и модули CPU внутри компьютеров, Guardian могла переключать целые наборы задач на другие машины в сети. По обычным каналам связи на большие расстояния также можно было создавать глобальные кластеры, состоящие из 4000 процессоров.

Не останавливайтесь .

В 1986 году Tandem представил процессор третьего поколения, NonStop VLX. Он имел 32-битные шины данных, расширенный микрокод, тактовую частоту 12 МГц и пиковую производительность в одну инструкцию за микроцикл. Он был создан из трех плат на основе интегральных схем ECL с логическими элементами (с компоновкой выводов TTL). В нем была обновленная шина Dynabus, скорость которой была увеличена до 20 МБ/с на канал, и 40 МБ/с в сумме. Позже FOX II увеличил физический диаметр кластеров TNS до 4 километров. Первоначальная поддержка баз данных в Tandem была реализована только для иерархических, нереляционных баз данных через файловую систему ENSCRIBE. Эта поддержка была расширена до реляционной базы данных под названием ENCOMPASS. В 1986 году Tandem представила первую отказоустойчивую SQL-базу данных, NonStop SQL. Разработанная полностью собственными силами, NonStop SQL включает в себя ряд функций, основанных на Guardian, для обеспечения целостности данных во всех узлах. NonStop SQL известна своим линейным масштабированием производительности с увеличением количества узлов в системе, в то время как производительность большинства баз данных довольно быстро достигала плато, часто уже после двух процессоров. Позднее, в 1989 году, была выпущена версия, добавившая транзакции, которые могли распределяться между узлами, что оставалось уникальной функцией в течение некоторого времени. NonStop SQL продолжала развиваться, сначала как NonStop SQL/MP, а затем как NonStop SQL/MX, переходя от Tandem к Compaq и HP. Код продолжает использоваться как в решениях HP NonStop SQL/MP, NonStop SQL/MX, так и в проекте Apache Trafodion.

Не останавливайтесь CLX

В 1987 году компания Tandem представила NonStop CLX – недорогую, менее масштабируемую мини-компьютерную систему. Она была предназначена для расширения нижнего сегмента рынка отказоустойчивых систем и для развертывания на периферии крупных сетей Tandem. Первоначальная производительность была сопоставима с TXP; в более поздних версиях она снизилась примерно на 20% по сравнению с VLX. Небольшой корпус системы можно было установить в любом офисе, даже в помещении для копировального оборудования. Центральный процессор CLX представлял собой одну плату, содержащую шесть ASIC CMOS чипов, изготовленных по технологии "компилированного кремния". Чип ядра процессора был дублирован и работал в синхронизированном режиме для максимального обнаружения ошибок. Это не повышало отказоустойчивость, но гарантировало целостность данных, поскольку сравнительный чип обеспечивал совпадение результатов, выдаваемых обоими чипами процессора. Отказоустойчивость обеспечивалась другими процессорами. Основным ограничением данной чиповой технологии был вывод выводов (пинаут). Микрокод, кэш и TLB располагались вне ядра процессора и использовали общую шину и один банк памяти SRAM. В результате CLX требовал не менее двух машинных циклов на выполнение одной инструкции.

Непрерывный циклон

В 1989 году компания Tandem представила NonStop Cyclone – быструю, но дорогую систему для рынка мейнфреймов. Каждый самопроверяющийся процессор занимал три платы, полностью заполненные горячими микросхемами ECL с элементами gate array, а также платы памяти. Несмотря на микропрограммное управление, процессор был суперскалярным и часто выполнял две инструкции за такт кэша. Это достигалось за счет наличия отдельной подпрограммы микрокода для каждой распространенной пары инструкций. Такая объединенная пара инструкций стека обычно выполняла тот же объем работы, что и одна инструкция обычного 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-разрядную регистровую машину, которая должна была превзойти VAX от Digital Equipment Corporation. Для надежного программирования основным языком программирования был "TPL" – подмножество языка Ada. В то время возможности компиляции Ada в неоптимизированный код были крайне ограничены. Для существующего системного программного обеспечения NonStop, написанного на TAL, не существовало пути миграции. Операционная система, база данных и компиляторы Cobol были полностью переработаны. Клиенты восприняли бы это как совершенно новую, несвязанную линейку продуктов, требующую от них разработки нового программного обеспечения. Разработка программной части этого амбициозного проекта заняла значительно больше времени, чем планировалось. К моменту завершения разработки программного обеспечения аппаратная часть уже устарела и уступала по производительности TXP, поэтому проект Rainbow был закрыт. Все последующие усилия были направлены на обеспечение обратной совместимости и упрощение путей миграции. Разработка передовой платформы разработки клиент-серверных приложений Rainbow под названием "Crystal" продолжалась еще некоторое время, после чего была выделена в отдельный продукт "Ellipse" компании Cooperative Systems Inc.

Динамитный ПК

В 1985 году компания Tandem предприняла попытку занять часть стремительно растущего рынка персональных компьютеров, представив Dynamite PC/workstation на базе MS DOS. Множественные конструктивные недостатки (включая уникальную аппаратную платформу на базе 8086, несовместимую с расширительными платами того времени и обладающую крайне ограниченной совместимостью с ПК, основанными на IBM) свели к тому, что Dynamite фактически превратился в продвинутый терминал. Он был незаметно и оперативно снят с производства.

Совершенство

Операционная система NonStop, основанная на обмене сообщениями, обладала преимуществами в масштабируемости, экстремальной надежности и эффективном использовании дорогостоящих "резервных" ресурсов. Однако многие потенциальные клиенты хотели лишь достаточной надежности в небольшой системе, используя привычную операционную систему Unix и стандартные отраслевые программы. Различные конкуренты Tandem, устойчивые к сбоям, приняли более простую аппаратную конструкцию, ориентированную на память, где восстановление осуществлялось путем переключения между горячими резервными экземплярами. Наиболее успешным конкурентом была Stratus Technologies, чьи машины перепродавала IBM под названием "IBM System/88". В таких системах резервные процессоры не увеличивают пропускную способность системы между отказами, а лишь избыточно выполняют точно ту же самую последовательность данных, что и активный процессор в тот же момент времени, в режиме "синхронного шага". Сбои обнаруживаются по расхождению выходных данных клонированных процессоров. Для обнаружения отказов система должна иметь два физических процессора на каждый логический, активный процессор. Для реализации автоматического восстановления после отказа системе требуется три или четыре физических процессора на каждый логический процессор. Тройная или четверная стоимость такого резервирования оправдана, когда дублируемые компоненты – это массовые однокристальные микропроцессоры. Продукты Tandem для этого рынка начались с линейки Integrity в 1989 году, использующей процессоры MIPS и вариант Unix под названием "NonStop UX". Разработка велась в Остине, штат Техас. В 1991 году Integrity S2 использовала TMR (Triple Modular Redundancy) – тройное модульное резервирование, когда каждый логический процессор использовал три микропроцессора MIPS R2000 для выполнения одной и той же последовательности данных, с голосованием для выявления и исключения неисправного компонента. Их быстрые тактовые частоты нельзя было синхронизировать, как в строгом синхронном шаге, поэтому голосование происходило при каждом прерывании. Некоторые другие версии Integrity использовали 4-кратное резервирование по схеме "пара и резерв". Пары процессоров работали в синхронном шаге для взаимного контроля. При обнаружении расхождений оба процессора помечались как ненадежные, а их нагрузка переносилась на горячую резервную пару процессоров, состояние которых было актуальным. В 1995 году Integrity S4000 впервые использовала ServerNet (сетевую "шинную" структуру) и перешла к совместному использованию периферийных устройств с линейкой NonStop.

Волчья овчарка

В 1995–1997 годах компания Tandem сотрудничала с Microsoft для реализации функций высокой доступности и расширенных конфигураций SQL в кластерах из стандартных машин Windows NT. Этот проект получил название "Wolfpack" и впервые был представлен как Microsoft Cluster Server в 1997 году. Microsoft извлекла значительную выгоду из этого партнерства, в то время как Tandem – нет.

TNS/R NonStop миграция в MIPS

Когда компания Tandem была основана в 1974 году, каждая компьютерная компания должна была самостоятельно проектировать и изготавливать свои центральные процессоры из элементарных схем, используя собственный набор команд и собственные компиляторы и так далее. С каждым годом развития полупроводниковой технологии, в соответствии с законом Мура, всё больше основных схем процессора помещалось в один чип, что позволяло им работать быстрее и значительно дешевле. Однако проектирование этих передовых специализированных чипов, а также строительство заводов для их производства, становилось для компьютерных компаний всё более затратным. Столкнувшись с вызовами быстро меняющегося рынка и производственной среды, Tandem приняла решение о сотрудничестве с MIPS и перешла на использование их чипсетов R3000 и последующих поколений, а также их продвинутого оптимизирующего компилятора. Последующие серверы NonStop Guardian, построенные на архитектуре MIPS, были известны программистам как машины TNS/R, но продавались под различными маркетинговыми названиями.

Циклон/R

В 1991 году компания Tandem выпустила Cyclone/R, также известный как CLX/R. Это была недорогая система среднего класса, основанная на компонентах CLX, но использующая микропроцессоры R3000 вместо гораздо более медленной стековой машины CLX. Чтобы минимизировать время выхода на рынок, эта машина первоначально поставлялась без какого-либо программного обеспечения, работающего в нативном режиме MIPS. Все, включая операционную систему NonStop Kernel (NSK) (преемник Guardian) и базу данных NonStop SQL, было скомпилировано в машинный код стека TNS. Этот объектный код затем преобразовывался в эквивалентные частично оптимизированные последовательности инструкций MIPS во время установки ядра с помощью инструмента под названием Accelerator. Менее важные программы также могли выполняться напрямую без предварительного преобразования, через интерпретатор кода TNS. Эти методы миграции оказались очень успешными и используются до сих пор. Все существующее программное обеспечение было перенесено без дополнительных усилий, производительность была достаточной для машин среднего класса, а программистам не требовалось учитывать различия в инструкциях, даже при отладке на уровне машинного кода. В последующем выпуске машины Cyclone/R были обновлены более быстрой операционной системой NSK, работающей в нативном режиме. Микропроцессоры R3000 и более поздние модели имели лишь стандартный уровень внутренней проверки ошибок, которого было недостаточно для требований Tandem. Поэтому Cyclone/R использовал пары процессоров R3000, работающие в синхронном режиме (lock step), обрабатывая один и тот же поток данных. Это было сделано для обеспечения целостности данных, а не отказоустойчивости – отказоустойчивость обеспечивалась другими механизмами, которые оставались в силе. Использовалась своеобразная вариация синхронного режима. Процессор-верификатор (checker) отставал от основного процессора на один цикл. Это позволяло им совместно использовать единую копию внешних кэшей кода и данных, не создавая чрезмерной нагрузки на системную шину и не снижая тактовую частоту системы. Для успешной работы микропроцессоров в синхронном режиме, чипы должны быть спроектированы таким образом, чтобы быть полностью детерминированными. Любое скрытое внутреннее состояние должно очищаться механизмом сброса чипа. В противном случае, согласованные чипы иногда могли терять синхронизацию без видимой причины и без каких-либо неисправностей, спустя долгое время после перезапуска. Все разработчики чипов согласны с тем, что это хорошие принципы, поскольку они помогают тестировать чипы в процессе производства. Однако, казалось, что во всех новых микропроцессорных чипах были ошибки в этой области, и потребовались месяцы совместной работы между MIPS (сторонним производителем, используемым Tandem) и Tandem, чтобы устранить или обойти последние, едва заметные ошибки.

Серия NonStop Himalaya K

В 1993 году компания Tandem выпустила серию NonStop Himalaya K, оснащенную более быстрым процессором MIPS R4400, операционной системой NSK, работающей в собственном режиме, и полностью расширяемыми компонентами системы Cyclone. Эти системы по-прежнему использовали Dynabus, Dynabus+ и исходную шину ввода-вывода, которые к тому времени уже достигли предела своих возможностей.

Открытые системные услуги

В 1995 году ядро NonStop было расширено POSIX-совместимой средой, подобной Unix, под названием Open System Services. Оригинальная оболочка Guardian и ABI остались в наличии.

NonStop Himalaya S-серия

В 1997 году компания Tandem представила NonStop Himalaya S Series с новой архитектурой системы верхнего уровня, основанной на соединениях ServerNet. ServerNet пришел на смену устаревшим шинам Dynabus, FOX и I/O. Он был значительно быстрее, более универсален и мог быть расширен за пределы двухсторонней резервности благодаря произвольной структуре соединений типа «точка-точка». Компания Tandem разработала ServerNet для собственных нужд, а затем начала продвигать его использование другими производителями; в итоге ServerNet стал отраслевым стандартом InfiniBand. Все машины серии S использовали процессоры MIPS, включая R4400, R10000, R12000 и R14000. Разработка более поздних и быстрых ядер MIPS финансировалась в основном компанией Silicon Graphics Inc. Однако процессор Pentium Pro от Intel превзошел по производительности RISC-архитектуры, а бизнес SGI в области графики сократился. После R10000 существенные инвестиции в новые серверные ядра MIPS для высокопроизводительных серверов прекратились. Поэтому компании Tandem в конечном итоге пришлось перевести свою линейку продуктов NonStop на другую микропроцессорную архитектуру с использованием конкурентоспособных и быстрых чипов.

Приобретение компанией Compaq, попытка миграции на Alpha

Джимми Трейбиг оставался генеральным директором компании, которую он основал, до экономического спада в 1996 году. Следующим генеральным директором стал Роэль Пайпер, который присоединился к компании в 1996 году в качестве президента и генерального директора. Ребрендинг, направленный на позиционирование компании как полноценной платформы Wintel (Windows/Intel), был выполнен внутренней командой по брендингу и креативу под руководством Рональда Мэя, который впоследствии в 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.

Приобретение Hewlett-Packard, миграция TNS/E в Itanium

В 2001 году Hewlett Packard также приняла решение отказаться от своих успешных линеек продуктов PA RISC в пользу микропроцессоров Intel Itanium, разработке которых HP способствовала. Вскоре после этого Compaq и HP объявили о плане слияния и консолидации схожих линеек продукции. Это неоднозначное слияние официально состоялось в мае 2002 года. Консолидация была болезненной и разрушила инженерно-ориентированные культуры DEC и "HP Way", однако объединенная компания умела продавать сложные системы предприятиям и получать прибыль, что стало улучшением для сохранившегося подразделения NonStop и его клиентов. В некотором смысле, путь Tandem – от стартапа, вдохновленного HP, до конкурента, вдохновленного HP, а затем до подразделения HP – можно было назвать "возвращением Tandem к истокам", но это определенно был уже не тот HP. Перенос линейки продуктов NonStop на базе NSK с процессоров MIPS на процессоры на базе Itanium был наконец завершен, и она получила название "HP Integrity NonStop Servers". (Этот NSK Integrity NonStop не имел отношения к оригинальной серии "Integrity" от Tandem для Unix.) Поскольку запуск чипов Itanium McKinley с синхронизацией на уровне тактов был невозможен, в машинах Integrity NonStop вместо этого использовались сравнения состояний чипов в более широких временных масштабах, в точках прерываний и в различных точках программной синхронизации между прерываниями. Промежуточные точки синхронизации автоматически активировались при каждой n-й выполненной инструкции ветвления, а также явно вставлялись во все тела длинных циклов всеми компиляторами NonStop. Аппаратная конструкция поддерживала как двойную, так и тройную избыточность, с двумя или тремя физическими микропроцессорами на логический процессор Itanium. Тройная версия продавалась клиентам, которым требовалась максимальная надежность. Этот новый подход к проверке получил название NSAA, NonStop Advanced Architecture. Как и при предыдущем переходе со стековых машин на микропроцессоры MIPS, все клиентское программное обеспечение было перенесено без изменений исходного кода. Исходный код "родного режима", компилируемый непосредственно в машинный код MIPS, был просто перекомпилирован для Itanium. Некоторые старые программы "неродного режима" все еще находились в формате стековой машины TNS. Они были автоматически перенесены на Itanium с использованием методов трансляции объектного кода.

Миграция Itanium на Intel X86

Люди, работающие в Tandem/HP, имеют богатый опыт переноса ядра на новое аппаратное обеспечение. Следующим проектом стал переход с Itanium на архитектуру Intel x86. Он был завершен в 2014 году, когда первые системы поступили в коммерческую продажу. Внедрение отказоустойчивых коммутаторов InfiniBand 4X FDR (Fourteen Data Rate) двойной ширины обеспечило более чем 25-кратное увеличение пропускной способности межсоединений системы для удовлетворения растущих потребностей бизнеса.

Перспективы, прочие

NSK Guardian также послужил основой для операционной системы HP Neoview OS, используемой в системах HP Neoview, разработанных для задач бизнес-аналитики (Business Intelligence) и корпоративных хранилищ данных (Enterprise Data Warehouse). NonStop SQL/MX также стал отправной точкой для Neoview SQL, адаптированного для использования в бизнес-аналитике. Код был портирован и на Linux и лег в основу проекта Apache Trafodion.

Корпоративная культура

Бизнес-план Трейбига включал в себя детальные идеи по формированию корпоративной культуры, отражающей его ценности, такие как оплачиваемые шестинедельные саббатикалы каждые четыре года для всех сотрудников, ежегодный подарок в виде 100 акций компании Tandem всем сотрудникам, еженедельные вечеринки для всех сотрудников, известные как Beer Bust Fridays, и ежемесячный общемировой телекаст в закрытой сети ("Первая пятница") для поддержания сотрудников в курсе событий.