Системы Lockstep — это отказоустойчивые компьютерные системы , которые выполняют один и тот же набор операций одновременно и параллельно . [1] Избыточность ( дублирование ) позволяет обнаруживать и исправлять ошибки: выходные данные операций Lockstep можно сравнивать, чтобы определить, произошла ли ошибка, если есть по крайней мере две системы ( двойная модульная избыточность DMR), и ошибка может быть автоматически исправлена, если есть по крайней мере три системы ( тройная модульная избыточность TMR), путем голосования большинства. Термин « lockstep » происходит из армейского использования, где он относится к синхронизированной ходьбе, при которой марширующие идут настолько близко друг к другу, насколько это физически возможно.
Для работы в режиме lockstep каждая система настроена на переход от одного четко определенного состояния к следующему четко определенному состоянию. Когда новый набор входов достигает системы, она обрабатывает их, генерирует новые выходы и обновляет свое состояние. Этот набор изменений (новые входы, новые выходы, новое состояние) считается определяющим этот шаг и должен рассматриваться как атомарная транзакция; другими словами, либо все это происходит, либо ничего из этого не происходит, но не что-то среднее. Иногда между системами устанавливается временной сдвиг (задержка), что увеличивает вероятность обнаружения ошибок, вызванных внешними воздействиями (например, скачками напряжения , ионизирующим излучением или обратным проектированием на месте ).
Некоторые поставщики, включая Intel, используют термин lockstep memory для описания многоканальной компоновки памяти, в которой строки кэша распределены между двумя каналами памяти, поэтому одна половина строки кэша хранится в DIMM на первом канале, а вторая половина идет в DIMM на втором канале. Объединяя возможности исправления одиночных ошибок и обнаружения двойных ошибок (SECDED) двух DIMM с поддержкой ECC в lockstep layout, их природа исправления данных с одним устройством (SDDC) может быть расширена до исправления данных с двумя устройствами (DDDC), обеспечивая защиту от сбоя любой отдельной микросхемы памяти. [2] [3] [4] [5]
Недостатками схемы памяти Lockstep от Intel являются сокращение эффективно используемого объема оперативной памяти (в случае трехканальной схемы памяти максимальный объем памяти уменьшается до одной трети от физически доступного максимума) и снижение производительности подсистемы памяти. [2] [4]
Если вычислительные системы дублируются, но обе активно обрабатывают каждый шаг, между ними трудно проводить арбитраж, если их выходные данные различаются в конце шага. По этой причине общепринятой практикой является запуск систем DMR в конфигурациях «главный/подчиненный» с подчиненным устройством в качестве «горячего резерва» для главного устройства, а не в режиме блокировки. Поскольку нет никаких преимуществ в том, чтобы подчиненное устройство активно обрабатывало каждый шаг, общепринятым методом работы является копирование главным устройством своего состояния в конце обработки каждого шага на подчиненное устройство. Если в какой-то момент главное устройство выйдет из строя, подчиненное устройство готово продолжить с предыдущего известного хорошего шага.
Хотя подход lockstep или DMR (в сочетании с некоторыми средствами обнаружения ошибок в главном устройстве) может обеспечить избыточность от аппаратного сбоя в главном устройстве, они не защищают от программной ошибки. Если главный узел выходит из строя из-за программной ошибки, весьма вероятно, что подчиненный узел — пытаясь повторить выполнение шага, на котором произошел сбой — просто повторит ту же ошибку и выйдет из строя тем же способом, пример отказа общего режима .
Когда вычислительные системы троируются, становится возможным рассматривать их как системы «голосования». Если выход одного блока не совпадает с двумя другими, он определяется как неисправный. Совпадающий выход двух других рассматривается как правильный.