способ синхронизации микрокомпьютеров, например бортовых компьютеров, параллельно работающих в сети
Классы МПК: | H04L12/40 сети коммуникаций H04L7/02 регулирование скорости и(или) фазы с помощью принятых кодовых сигналов, которые не содержат особой синхронизирующей информации |
Автор(ы): | Косткин Михаил Дмитриевич (RU), Попович Александр Максимилианович (RU) |
Патентообладатель(и): | Косткин Михаил Дмитриевич (RU), Попович Александр Максимилианович (RU) |
Приоритеты: |
подача заявки:
2008-11-14 публикация патента:
27.05.2010 |
Изобретение относится к системе связи и предназначено для синхронизации параллельно работающих в сети микрокомпьютеров, например бортовых микрокомпьютеров, которые используются для резервирования. Технический результат - повышение надежности бортовой аппаратуры и быстродействия системы. Периодически каждый из параллельно работающих микрокомпьютеров прерывает работу и направляет в сеть широковещательный пакет. Маршрутизатор по приему первого из отправленных с разных микрокомпьютеров, широковещательного пакета, через время задержки с момента прерывания микрокомпьютера, отправившего первый широковещательный пакет, направляет сигнал синхронизации в каждый микрокомпьютер. По приходу сигнала синхронизации каждый микрокомпьютер запускается и продолжает работу программы. 8 з.п. ф-лы, 4 ил.
Формула изобретения
1. Способ синхронизации, по меньшей мере, двух микрокомпьютеров, например бортовых компьютеров, параллельно работающих в сети, при этом сеть содержит, по меньшей мере, один маршрутизатор, заключающийся в том, что периодически каждый из параллельно работающих микрокомпьютеров прерывает работу и направляет в сеть широковещательный пакет, маршрутизатор по приему первого из отправленных с разных микрокомпьютеров широковещательного пакета через время задержки с момента прерывания микрокомпьютера, отправившего первый широковещательный пакет, направляет сигнал синхронизации в каждый микрокомпьютер, по приходу сигнала синхронизации каждый микрокомпьютер запускается и продолжает работу программы.
2. Способ по п.1, отличающийся тем, что каждый из параллельно работающих микрокомпьютеров направляет в сеть широковещательный пакет через время задержки после прерывания работы.
3. Способ по п.2, отличающийся тем, что упомянутое время задержки определяет таймер, дополнительно введенный в каждый микрокомпьютер.
4. Способ по п.3, отличающийся тем, что упомянутый таймер каждого микрокомпьютера обнуляется по приходу упомянутого сигнала синхронизации.
5. Способ по п.1, отличающийся тем, что маршрутизатор через время задержки после приема упомянутого первого широковещательного пакета направляет упомянутый сигнал синхронизации.
6. Способ по п.5, отличающийся тем, что упомянутое время задержки определяет таймер, дополнительно введенный в маршрутизатор.
7. Способ по п.1, отличающийся тем, что упомянутое время задержки больше, чем возможное время рассогласования параллельно работающих упомянутых микрокомпьютеров за упомянутый период времени между прерываниями их работы.
8. Способ по п.1, отличающийся тем, что упомянутое прерывание работы микрокомпьютера и упомянутый запуск работы микрокомпьютера осуществляют посредством остановки и запуска программного счетчика.
9. Способ по п.1, отличающийся тем, что упомянутый маршрутизатор принимает широковещательные пакеты микрокомпьютеров в течение временного окна Т.
Описание изобретения к патенту
Изобретение решает задачу синхронизации параллельно работающих в сети микрокомпьютеров, например бортовых микрокомпьютеров. Параллельно работающие микрокомпьютеры применяются в том случае, если, например, необходимо повысить надежность работы всей системы резервируемой бортовой аппаратуры.
Чаще всего синхронизация параллельно работающих процессоров достигается тем, что они работают от одного генератора (см., например, патент RU 219914). Надежность системы повышается, так как в случае отказа одного процессора работа остальных позволяет выполнять задачу системы. При этом надежность системы в целом недостаточна, так как в случае отказа генератора, задающего работу процессоров, вся система перестает работать.
Известны также способы синхронизации работы процессоров путем обмена пакетами в сети и синхронизации процессоров путем сравнения пакетов.
Известен способ и устройство синхронизации по патенту JP 2270010, основанный на синхронизации двух параллельно работающих компьютеров, выполняющих одну и ту же программу, которые управляют множеством других компьютеров. Если обнаруживается расхождение в синхронизации, оба компьютера устанавливают таймеры в одинаковое положение. При этом один из компьютеров является главным, а остальные устанавливают свои таймеры по времени главного компьютера.
Известен способ и устройство синхронизации процессоров по заявке US 20060168465. В данной системе имеется быстрый процессор и более медленные процессоры. В предопределенное время все «медленные» процессоры получают сигнал от «быстрого» процессора и синхронизируются по времени сигнала, поступившего от «быстрого» процессора.
Наиболее близким является способ и устройство для синхронизации работы нескольких пользователей в сети по патенту US 7200766. Способ заключается в том, что каждый из пользователей направляет сообщение, которое принимается другим пользователем. Путем сравнения времен принятия сообщений определяется глобальное время, которое устанавливается каждым пользователем. Определение глобального времени может осуществляться, например, вычислением среднего времени. Система синхронизации предусматривает наличие у каждого пользователя таймера, в котором устанавливается глобальное время.
Все описанные способы и устройства не обеспечивают резервирование бортовой аппаратуры при выходе любого из ее элементов.
Заявляемое изобретение позволяет повысить надежность бортовой аппаратуры, не усложняя ее конструкцию. При этом обеспечивается универсальность синхронизации в резервируемых сетях путем использования широковещательных пакетов и простых способов обработки. При осуществлении способа достигается высокое быстродействие системы.
Способ синхронизации, по меньшей мере, двух микрокомпьютеров, например бортовых компьютеров, параллельно работающих в сети, при этом сеть содержит, по меньшей мере, один маршрутизатор, заключающийся в следующем.
Периодически каждый из параллельно работающих микрокомпьютеров прерывает работу и направляет в сеть широковещательный пакет. Маршрутизатор по приему первого из отправленных с разных микрокомпьютеров широковещательного пакета через время задержки с момента прерывания микрокомпьютера, отправившего первый широковещательный пакет, направляет сигнал синхронизации в каждый микрокомпьютер. По приходу сигнала синхронизации каждый микрокомпьютер запускается и продолжает работу программы.
Основная проблема параллельно работающих микрокомпьютеров с точки зрения исполняемых на них программ состоит в том, что они должны исполнять и выдавать в сеть одну и ту же программу (пакет). Принцип синхронизации заключается в использовании сетевых широковещательных пакетов, принцип использования которых заключается в том, что широковещательный пакет передается во все микрокомпьютеры сети. Микрокомпьютеры в сети работают через маршрутизаторы (роутеры), назначение которых в принятии решений о пересылке пакетов сетевого уровня между различными сегментами сети.
Каждый из параллельно работающих микрокомпьютеров периодически осуществляет прерывание своей работы, например останавливая свой программный счетчик, и направляет в сеть широковещательный пакет. После прихода в маршрутизатор первого широковещательного пакета, то есть пакета, который отправил первый, самый быстрый в данном цикле работы микрокомпьютер, маршрутизатор осуществляет отправку в каждый компьютер синхросигнала, по которому каждый микрокомпьютер запускается и продолжает работу программы. Однако этот синхросигнал направляется в каждый микрокомпьютер через время задержки с момента прерывания микрокомпьютера, отправившего первый широковещательный пакет. Таким образом, отправка синхросигнала осуществляется через время, которое позволяет даже самому медленному компьютеру «догнать» самый быстрый микрокомпьютер. То есть исполнить тот кусок программы, который более медленный микрокомпьютер не исполнил в момент прерывания работы более «быстрого» в данном цикле выполнения программы микрокомпьютера.
Способ может быть выполнен двумя путями.
В первом случае каждый из параллельно работающих микрокомпьютеров направляет в сеть широковещательный пакет через время задержки после прерывания работы. Время задержки может определять таймер, дополнительно введенный в каждый микрокомпьютер. В этом случае важно, чтобы таймер каждого микрокомпьютера обнулялся по приходу сигнала синхронизации.
Во втором случае маршрутизатор через время задержки , после приема упомянутого первого широковещательного пакета, направляет упомянутый сигнал синхронизации. То есть время задержки будет определять таймер, дополнительно введенный уже в маршрутизатор.
Время задержки должно быть больше, чем возможное время рассогласования параллельно работающих микрокомпьютеров за период времени между прерываниями их работы.
Прерывание работы микрокомпьютера и запуск работы микрокомпьютера могут быть осуществлены посредством остановки и запуска программного счетчика.
Маршрутизатор может принимать широковещательные пакеты микрокомпьютеров в течение временного окна Т. Это необходимо для того, чтобы маршрутизатор не ждал бесконечно широковещательный пакет от микрокомпьютера, например, вышедшего из строя.
Изобретение поясняется чертежами.
На Фиг.1 приведена обобщенная схема параллельно работающих в сети микрокомпьютеров.
На Фиг.2 приведена структурная схема микрокомпьютера, работающего в сети по первому варианту способа.
На Фиг.3 приведена временная схема работы микрокомпьютеров при реализации способа синхронизации.
На Фиг.4 приведена структурная схема микрокомпьютера, работающего в сети по второму варианту способа.
Способ реализуется следующим образом.
Микрокомпьютеры МК-1, МК-2 и МК-3, обозначенные на Фиг.1: 10-1, 10-2 и 10-3 работают в сети параллельно с целью резервирования и соединены с другими устройствами сети, например, бортовой сети через маршрутизатор МР-1 (11-1) или через несколько маршрутизаторов. Микрокомпьютеры 10-1, 10-2 и 10-3 выполняют одну и ту же программу и должны периодически синхронизироваться.
Пример выполнения одного из параллельно работающих микрокомпьютеров, реализующих способ по первому варианту реализации, приведен на Фиг.2. Микрокомпьютер 10, как и другие параллельно работающие микрокомпьютеры (см. Фиг.1), соединен через интерфейс сети с маршрутизатором 11. Каждый микрокомпьютер 10 содержит процессор 12, тактовый генератор 13, таймер 14, программный счетчик 15, ключ 16, установленный между тактовым генератором и программным счетчиком. Таймер 14 также соединен с тактовым генератором 13 и имеет вход для его обнуления. Процессорная шина 19 соединяет элементы микрокомпьютера. Контроллер сети 17 микрокомпьютера содержит, в частности, дешифратор широкополосных пакетов 18 и связан с маршрутизатором 11.
Микрокомпьютеры 10-1, 10-2 и 10-3 работают в сети параллельно, транслируя через маршрутизаторы МР-1, МР-2 пакеты команд на исполнительные устройства. Такая схема работы позволяет повысить надежность бортовых устройств за счет резервирования работы как задающих команды микрокомпьютеров, так и построением всей рабочей сети путем резервирования самой сети, в частности маршрутизаторов (роутеров) МР-1, МР-2, так и исполнительных устройств, которые на фигурах не показаны.
Каждый из микрокомпьютеров 10-1, 10-2 и 10-3 работает от своего кварцевого генератора. Несмотря на стабильность этих устройств, через некоторое время незначительные изменения частоты их работы приведут к рассогласованию программных счетчиков 15 микрокомпьютеров и сетевое устройство перестанет работать из-за рассогласования программ, поступающих в маршрутизаторы и далее в бортовые устройства.
Синхронизация микрокомпьютеров 10, параллельно работающих в сети, происходит с помощью периодического прерывания работы программных счетчиков 15 микрокомпьютера (Фиг.3), например, с помощью ключа 16 и направления в сеть широковещательных пакетов (или, как вариант, - пакетов времени). Периодическое прерывание работы программных счетчиков 15 происходит в каждом микрокомпьютере независимо, после выполнения определенного числа циклов. Это число циклов определяется допустимым временным расхождением в работе программ каждого из параллельно работающих микрокомпьютеров. При прерывании работы программного счетчика 15 запускается таймер 14.
На Фиг.2 этот процесс представлен в виде временной диаграммы. Микрокомпьютеры МК-1 (10-1), МК-2 (10-2), МК-3 (10-3) в разное время 1, так как они работают от своих независимых генераторов, запускают таймеры 14 (которые могут быть выполнены в виде счетчиков) на время задержки , которое больше, чем возможное время рассогласования параллельно работающих микрокомпьютеров за период времени между прерываниями их работы. По окончанию работы таймера 14 на диаграмме точка 2, дешифратор 18 широкополосных пакетов каждого микрокомпьютера 10 формирует и через контроллер 17 сети направляет в сеть широковещательный пакет. Эти широковещательные пакеты показаны на линии ШП как пакеты от МК-1, МК-2, МК-3. Первый из пакетов, по времени, в момент 2 направлен самым «быстрым» микрокопьютером МК-3.
Этот широковещательный пакет получает маршрутизатор 11 (или маршрутизаторы) и формирует синхросигнал 3, направляя его в каждый микрокомпьютер 10. Данный синхросигнал может быть сформирован, например, в виде широковещательного пакета. По данному синхросигналу программные счетчики 15 каждого микрокомпьютера МК-1, МК-2, МК-3 запускаются и компьютеры начинают работать синхронно потому, что за время задержки все остальные микрокомпьютеры МК-1, МК-2 успевают доработать оставшуюся часть программы и остановится, тем самым, как это видно из диаграммы на фиг.2, «догоняют» «быстрый» микрокомпьютер МК-3. По синхросигналу 3 от маршрутизатора таймеры 14 задержки МК-1, МК-2 обнуляются и они не успевают сформировать и доработать до точки 2 и дать команду на формирование широковещательного пакета.
Для того чтобы не ждать сильно «отставший» микрокомпьютер, маршрутизатор принимает широковещательные пакеты во временном окне Т.
По второму частному варианту способ выполняется следующим образом (Фиг.4).
Таймер 14 является элементом маршрутизатора, а не микрокомпьютера. Как и в первом варианте, синхронизация микрокомпьютеров 10, параллельно работающих в сети, происходит с помощью периодического прерывания работы программных счетчиков 15 микрокомпьютера (Фиг.3), например, с помощью ключа 16 и направления в сеть широковещательных пакетов (или, как вариант, - пакетов времени). Периодическое прерывание работы программных счетчиков 15 происходит в каждом микрокомпьютере независимо, после выполнения определенного числа циклов. Это число циклов определяется допустимым временным расхождением в работе программ каждого из параллельно работающих микрокомпьютеров. После прерывания программного счетчика первого, самого «быстрого» микрокомпьютера, он запускает в сеть широковещательный пакет.
По получении, в течение временного окна Т, первого широковещательного пакета в маршрутизаторе запускается таймер 14. Через время задержки , после приема упомянутого первого широковещательного пакета, он направляет сигнал синхронизации во все микрокомпьютеры, которые к этому времени догнали самый «быстрый» и остановились. По данному сигналу синхронизации, который, как и в первом случае, может быть широковещательным пакетом, все микрокопьютеры запускают программные счетчики и начинают синхронно работать.
Данный способ в любом варианте может быть реализован и другими аппаратными средствами, кроме описанных.
Класс H04L12/40 сети коммуникаций
Класс H04L7/02 регулирование скорости и(или) фазы с помощью принятых кодовых сигналов, которые не содержат особой синхронизирующей информации