Реализация вычислений в режиме непрерывной готовности затрагивает практически все аспекты разработки системы - в ней не должно быть ни одного функционального узла, отказ которого может вывести из строя систему в целом. В основу серии Continuum положены следующие известные принципы построения отказоустойчивых систем:
Модульность. Каждый модуль системы является единицей обслуживания, ограничения распространения неисправности и ремонта. В случае отказа модуля он заменяется на другой.
Быстрое проявление неисправности. Каждый модуль должен либо работать правильно, либо немедленно останавливаться.
Независимость отказов. Модули и связи между ними должны быть разработаны так, что отказ одного из модулей никак не влият на работу остальных.
Избыточность и ремонт. В систему должны быть заранее установлены или сконфигурированы запасные модули, так что при отказе одного из модулей, запасной модуль может заменить его практически немедленно. Отказавший модуль может ремонтироваться автономно, в то время как система продолжает работать.
Принцип быстрого проявления неисправности обычно реализуется с помощью двух методов: самоконтроля и сравнения. Средства самоконтроля предполагают, что при выполнении некоторой операции модуль делает и некоторую дополнительную работу, позволяющую подтвердить правильность полученного состояния. Примерами этого метода являются коды обнаружения неисправности при хранении данных и передаче сообщений. Метод сравнения основывается на выполнении одной и той же операции двумя или большим числом модулей и сопоставлении результатов компаратором. В случае обнаружения несовпадения результатов работа приостанавливается.
Методы самоконтроля были основой построения отказоустойчивых систем в течение многих лет. Они требуют реализации дополнительных схем и времени разработки и вероятно будут доминировать в устройствах памяти и устройствах связи благодаря простоте и ясности логики. Однако для сложных устройств обработки данных экономические соображения, связанные с применением стандартных массовых компонентов, навязывают использование методов сравнения. Поскольку компараторы сравнительно просты, то их применение дает некоторое увеличение логических схем при существенном сокращении времени разработки. Следует отметить, что в более ранних отказоустойчивых конструкциях 30% логических схем процессоров и 30% времени разработки уходило на реализацию средств самоконтроля. С этой точки зрения схемы сравнения добавляют лишь универсальные схемы с простой логикой. В результате сокращаются общие расходы на разработку и логику.
Еще одним средством построения отказоустойчивой архитектуры, применяемым в системах Continuum, является принцип дублирования дуплексных модулей ("pair-and-spare" или "dual-dual"), который предполагает создание некоторого "супермодуля" - комбинации двух модулей, построенных на принципах быстрого проявления неисправности. Такой "супермодуль" продолжает работать даже когда отказывает один из субмодулей.
Дублирование дуплексных модулей требует большего объема оборудования, например, по сравнению со схемой троирования с мажоритарной логикой, но позволяет делать выбор одного из режимов работы: организацию либо двух независимых вычислений на принципах быстрого проявления неисправности, выполняющихся на двух парах модулей, либо одного высоконадежного вычисления, выполняющегося на всех четырех модулях.
Необходимо помнить, что сама по себе избыточность только снижает надежность в случае дублирования и троирования. Для существенного увеличения уровня готовности избыточная конструкция должна обеспечивать возможность ремонта и замены отказавших модулей. Таким образом, в основе систем непрерывной готовности компании Stratus лежит аппаратная отказоустойчивая архитектура, состоящая из дублированных функциональных узлов, причем большинство этих узлов работает в режиме пошаговой блокировки.