Системы с синхронным шагом: принципы работы и применение.
Lockstep (computing)
Системы с синхронным шагом (lockstep) – отказоустойчивые компьютеры, работающие параллельно. Обеспечивают обнаружение и коррекцию ошибок благодаря резервированию и голосованию большинства.
Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
Локстеп-системы — это отказоустойчивые компьютерные системы, выполняющие один и тот же набор операций одновременно и параллельно. Избыточность (дублирование) обеспечивает обнаружение и исправление ошибок: результаты работы локстеп-систем могут сравниваться для выявления сбоев, если имеется как минимум две системы (двойная модульная избыточность), а ошибка может быть автоматически исправлена, если имеется как минимум три системы (тройная модульная избыточность) посредством голосования большинства. Термин "lockstep" происходит из военной практики, где он обозначает синхронный шаг, при котором марширующие стремятся двигаться максимально согласованно. Для работы в режиме "lockstep" каждая система настроена на последовательный переход из одного чётко определённого состояния в следующее. Когда в систему поступает новый набор входных данных, она обрабатывает их, генерирует новые выходные данные и обновляет своё состояние. Этот набор изменений (новые входные данные, новые выходные данные, новое состояние) определяет один шаг и должен рассматриваться как атомарная транзакция; то есть либо все изменения происходят, либо ни одно из них, но не что-то промежуточное. Иногда между системами вводится временной сдвиг (задержка), что повышает вероятность обнаружения ошибок, вызванных внешними факторами (например, скачками напряжения, ионизирующим излучением или реверс-инжинирингом).
Lockstep systems are fault tolerant computer systems that run the same set of operations at the same time in parallel. The redundancy (duplication) allows error detection and error correction: the output from lockstep operations can be compared to determine if there has been a fault if there are at least two systems (dual modular redundancy), and the error can be automatically corrected if there are at least three systems (triple modular redundancy), via majority vote. The term "lockstep" originates from army usage, where it refers to synchronized walking, in which marchers walk as closely together as physically practical. To run in lockstep, each system is set up to progress from one well defined state to the next well defined state. When a new set of inputs reaches the system, it processes them, generates new outputs and updates its state. This set of changes (new inputs, new outputs, new state) is considered to define that step, and must be treated as an atomic transaction; in other words, either all of it happens, or none of it happens, but not something in between. Sometimes a timeshift (delay) is set between systems, which increases the detection probability of errors induced by external influences (e. g. voltage spikes, ionizing radiation, or in situ reverse engineering).
Память Lockstep
Некоторые производители, включая Intel, используют термин "lockstep memory" для описания многоканальной конфигурации памяти, в которой кэш-линии распределяются между двумя каналами памяти таким образом, что одна половина кэш-линии хранится в DIMM на первом канале, а вторая половина – в DIMM на втором канале. Комбинируя возможности однократной коррекции и двойного обнаружения ошибок (SECDED) двух DIMM с поддержкой ECC в конфигурации lockstep, их способность к коррекции данных одного устройства (SDDC) может быть расширена до коррекции данных двух устройств (DDDC), обеспечивая защиту от отказа любого отдельного чипа памяти. К недостаткам конфигурации lockstep memory от Intel относятся уменьшение фактически доступного объема оперативной памяти (в случае трехканальной конфигурации памяти максимальный объем памяти снижается до одной трети от физически доступного максимума) и снижение производительности подсистемы памяти.
Some vendors, including Intel, use the term lockstep memory to describe a multi channel memory layout in which cache lines are distributed between two memory channels, so one half of the cache line is stored in a DIMM on the first channel, while the second half goes to a DIMM on the second channel. By combining the single error correction and double error detection (SECDED) capabilities of two ECC enabled DIMMs in a lockstep layout, their single device data correction (SDDC) nature can be extended into double device data correction (DDDC), providing protection against the failure of any single memory chip. Downsides of the Intel's lockstep memory layout are the reduction of effectively usable amount of RAM (in case of a triple channel memory layout, maximum amount of memory reduces to one third of the physically available maximum), and reduced performance of the memory subsystem.
Двойная модульная избыточность
Если вычислительные системы дублированы, но обе активно обрабатывают каждый шаг, трудно определить, какая из них верна, если их результаты различаются в конце шага. По этой причине для систем DMR обычно используется конфигурация "главный/ведомый", где ведомый выступает в роли "горячего резервного", а не синхронная работа (lockstep). Поскольку ведомой системе нет смысла активно обрабатывать каждый шаг, распространенным методом является копирование главным устройством своего состояния в ведомый по окончании обработки каждого шага. В случае отказа главного устройства, ведомый готов продолжить работу с предыдущего корректного шага. Хотя подходы lockstep или DMR (в сочетании с какими-либо средствами обнаружения ошибок в главном устройстве) могут обеспечить резервирование от аппаратных сбоев главного устройства, они не защищают от ошибок программного обеспечения. Если главный модуль выходит из строя из-за программной ошибки, весьма вероятно, что ведомый, пытаясь повторить выполнение неудачного шага, просто воспроизведет ту же ошибку и потерпит неудачу тем же образом – это пример общей причины отказа.
Where the computing systems are duplicated, but both actively process each step, it is difficult to arbitrate between them if their outputs differ at the end of a step. For this reason, it is common practice to run DMR systems as "master/slave" configurations with the slave as a "hot standby" to the master, rather than in lockstep. Since there is no advantage in having the slave unit actively process each step, a common method of working is for the master to copy its state at the end of each step's processing to the slave. Should the master fail at some point, the slave is ready to continue from the previous known good step. While either the lockstep or the DMR approach (when combined with some means of detecting errors in the master) can provide redundancy against hardware failure in the master, they do not protect against software error. If the master fails because of a software error, it is highly likely that the slave in attempting to repeat the execution of the step which failed will simply repeat the same error and fail in the same way, an example of a common mode failure.
Трехкратная модульная избыточность
Когда вычислительные системы используются в тройном экземпляре, их можно рассматривать как системы голосования. Если выход одного из блоков не совпадает с выходами двух других, это обнаруживается как отказ. Согласованный выход двух других блоков принимается за верный.
Where the computing systems are triplicated, it becomes possible to treat them as "voting" systems. If one unit's output disagrees with the other two, it is detected as having failed. The matched output from the other two is treated as correct.