Указанная система была разработана в Станфордском научно-исследовательском институте. Механизм обеспечения устойчивости к отказам, как и в мультипроцессоре FTMP, основан на тройной мажоритации, однако форма его реализации совершенно иная. Если у мультипроцессора FTMP синхронизация и мажоритация реализуются только техническими средствами, то в системе SIFT, наоборот, — исключительно программными средствами. Процессор и запоминающее устройство образуют один объединенный блок (PMU). В системе предусматривается несколько резервных блоков PMU. Процессор может считывать данные не только в собственном PMU,hoh с запоминающих устройств других PMU через контроллер шин.
Высокая надежность программного обеспечения системы достигается за счет использования комплектов из трех одинаковых PMU. Соответствующий блок PMU считывает результаты, полученные остальными двумя, а результат мажорита-ции является входной информацией для решения очередной задачи. Если при мажоритации выявляется ошибка, то она регистрируется в списке ошибок. После многократного повторения рабочего цикла каждый блок PMU используется при диагностировании отказов.
При решении последней задачи место отказа определяется с помощью списков ошибок не только своего, но и других блоков PMU. При этом используется мажоритация как информации списков, так и результатов диагностирования отказов другими блоками PMU. Затем решается задача реконфигурации программного обеспечения, результатом решения которой является отделение отказавшего блока от системы.
Синхронизация, моментов времени генераторов других блоков PMU, и в качестве нового текущего значения выбирается среднее значение (медиана) текущих моментов времени всех генераторов, в том числе и рассматриваемого. Если комплект включает три блока, то даже при отказе одного из них можно считать, что текущие моменты времени генераторов двух остальных согласованы. Однако подобное согласование не будет удовлетворительным в ситуациях, когда отказавший блок PMU сообщает текущие моменты времени, отличные от переданных остальными двумя (другими словами, возникает «проблема оценки достоверности»). Рассмотрим, например, ситуацию, когда блок PMUa считывает текущие значения блока PMUb. В этом случае осуществляется мажоритация текущих значений ba, be и bd. При этом блок PMUb пересылает текущие значения: Ьа непосредственно, a be и bd через блоки PMUc и PMUd соответственно. Аналогично блок PMUa считывает с блоков PMUc и PMUd их текущие значения и определяет среднее из считанных текущих значений и своего собственного. Кроме того, на практике при определении среднего исключаются те значения, которые отличаются от двух считанных текущих значений больше допустимой величины (50 мкс).
|