Способ, операционная система и вычислительное устройство для выполнения компьютерной программы

Изобретение относится к способу выполнения компьютерной программы в вычислительном устройстве, прежде всего микропроцессоре. Техническим результатом является обеспечение восстановления полной работоспособности и функциональной надежности вычислительной системы за счет конструктивной обработки спорадических ошибок. Способ содержит: генерирование и сохранение заданного состояния программных объектов и использование механизма обнаружения ошибок, работающего параллельно с выполнением программного объекта обоими вычислительными ядрами и проверяющего результаты выполнения вычислительными ядрами каждой машинной команды на идентичность с обеспечением обнаружения ошибок по несовпадению указанных результатов, причем указанный механизм обнаружения ошибок, при обнаружении ошибки, переводит уже поданный на выполнение программный объект в заданное состояние и повторно запускает его из этого состояния, хотя в момент обнаружения ошибки программный объект еще не выполнен полностью, причем для обнаружения ошибок используют дополнительное вычислительное устройство. 2 н. и 15 з.п. ф-лы, 2 ил.

 

Область техники, к которой относится изобретение

Настоящее изобретение относится к способу выполнения компьютерной программы в вычислительном устройстве, прежде всего микропроцессоре. Выполняемая компьютерная программа содержит несколько программных объектов. В соответствии с предлагаемым в изобретении способом во время выполнения в вычислительном устройстве компьютерной программы осуществляется обнаружение ошибок.

Кроме того, настоящее изобретение относится к операционной системе, выполняемой в вычислительном устройстве, прежде всего в микропроцессоре.

Наконец, настоящее изобретение относится к вычислительному устройству для выполнения компьютерной программы, содержащей несколько программных объектов. Предлагаемое в изобретении вычислительное устройство имеет механизм обнаружения ошибок во время выполнения компьютерной программы в вычислительном устройстве.

Уровень техники

В процессе выполнения обработки компьютерной программы в вычислительном устройстве могут возникать так называемые спорадические ошибки или сбои. Поскольку структуры на полупроводниковых компонентах (так называемых чипах) все уменьшаются в размерах, тактовые частоты сигналов все возрастают, а напряжения сигналов все снижаются, частота возникновения спорадических, или перемежающихся, ошибок имеет тенденцию к повышению. В отличие от постоянных ошибок спорадические ошибки возникают лишь на некоторое время и, как правило, затем исчезают сами по себе. Спорадические ошибки обычно связаны со случайным, не вызванным перманентным повреждением вычислительного устройства, искажением отдельных битов. Причины возникновения спорадических ошибок могут быть различными, например, такими как воздействие электромагнитных полей, альфа-частиц или нейтронов.

В соответствии с уровнем техники при обработке ошибок, возникающих в современных системах связи, основное внимание уделяется обработке именно спорадических ошибок. Известно, что в системах связи (например, в локальных сетях контроллеров, или CAN-системах (от англ. "Controller Area Network") при обнаружении ошибки может осуществляться повторная передача неправильно переданных данных. Известно также, что в системах связи может использоваться счетчик ошибок, значение которого увеличивается при обнаружении каждой ошибки и уменьшается при каждой успешной передаче данных, причем при превышении этим значением определенного значения передача данных прекращается.

В вычислительных же устройствах, предназначенных для выполнения компьютерных программ, основное внимание уделяется обработке постоянных ошибок. Учет спорадических ошибок ограничивается увеличением и, при необходимости, уменьшением значения счетчика ошибок. Это значение сохраняется в памяти и может считываться оттуда в офлайновом (автономном) режиме, т.е., например, когда речь идет о блоке управления транспортным средством, при нахождении этого транспортного средства на станции обслуживания, в качестве диагностической информации и информации о сбоях и неисправностях. И только после этого возможно принятие адекватных ошибке ответных мер.

Таким образом, обработка ошибок с помощью счетчика ошибок не позволяет обрабатывать ошибки в течение малого времени нечувствительности к ошибкам, соблюдение которого особенно важно для систем обеспечения безопасности, а также восстанавливать за это короткое время надлежащее функционирование компьютерной программы. Вместо этого в соответствии с уровнем техники при превышении значением счетчика ошибок заданного предельного значения компьютерная программа переключается в аварийный режим работы. В этом режиме вместо той части программы, работоспособность которой была нарушена вследствие возникновения обнаруженной ошибки, начинает выполняться другая часть этой программы, и для дальнейших вычислений используются полученные в результате ее выполнения эквивалентные значения. Эквивалентные значения могут моделироваться, например, на основе иных величин. В другом варианте результаты, полученные при выполнении той части программы, работоспособность которой была нарушена вследствие возникновения ошибки, отбрасываются как некорректные, и для последующих вычислений используются значения по умолчанию, предназначенные для их использования в аварийном режиме работы. В соответствии с этим известные способы обработки спорадических ошибок, возникающих в выполняемой в вычислительном устройстве компьютерной программе, не позволяют систематично и конструктивно справляться со спорадическим характером большинства ошибок.

Известным способом устранения возникших в выполняемой в вычислительном устройстве программе спорадических ошибок является полный перезапуск этого устройства. Однако и это решение не может быть признано удовлетворительным, поскольку оно связано с потерей значений, полученных в результате предшествующего выполнения соответствующей программы, а также с невозможностью выполнения в вычислительном устройстве его функций до завершения процедуры перезапуска. Такое решение является неприемлемым, прежде всего применительно к важным с точки зрения безопасности системам.

Известен и другой способ обработки спорадических ошибок выполняемой в вычислительном устройстве компьютерной программы, предусматривающий возврат программы на несколько тактов назад и повторную отработку отдельных относящихся к компьютерной программе машинных команд. Этот способ называют также "микрооткатом" (Micro Roll-Back). В соответствии с этим известным способом возврат может осуществляться только на целые объекты машинного уровня (такты, машинные команды). Такой возврат невозможен без его соответствующей аппаратной поддержки на машинном уровне, которая существенно удорожает вычислительное устройство. Осуществление такого известного способа только программными средствами невозможно.

Соответствующие уровню техники механизмы обработки ошибок не способны надлежащим образом реагировать на спорадические ошибки, возникающие при выполнении компьютерной программы в вычислительном устройстве.

В основу настоящего изобретения была положена задача обеспечения, при возникновении спорадических ошибок при выполнении в вычислительной системе компьютерной программы, конструктивной обработки таких ошибок таким образом, чтобы в как можно более короткое время восстановить полную работоспособность и функциональную надежность вычислительной системы.

Для решения указанной задачи, исходя из способа указанного в начале описания типа, в изобретении предлагается при обнаружении ошибки переводить по меньшей мере один уже поданный на выполнение программный объект в заданное состояние и повторно запускать его из этого состояния.

Преимущества изобретения

Повторно запускаемый программный объект при обнаружении ошибки должен быть выполнен не полностью. По смыслу изобретения повторно запускаться могут и такие программные объекты, обработка которых была начата до обнаружения ошибки и на момент такого обнаружения не была полностью завершена. Таким образом, в изобретении предлагается в случае возникновения спорадической или постоянной ошибки осуществлять повторное выполнение по меньшей мере одного объекта операционной системы. Преимущества этого решения по сравнению с микровозвратом заключаются, в частности, в том, что для осуществления предусмотренного изобретением повторного выполнения программного объекта требуется минимальная аппаратная поддержка. Такая аппаратная поддержка ограничивается дополнительной емкостью памяти для сохранения данных (например, входных величин или исходных значений программного объекта), необходимых для повторного выполнения программного объекта. Сам предлагаемый в изобретении способ может осуществляться под управлением операционной системы вычислительного устройства. Иными словами, предлагаемый в изобретении способ может осуществляться с использованием обычных, имеющихся в продаже процессоров, и не требует использования дополнительного (специального) аппаратного обеспечения. Очевидно, что предлагаемый в изобретении способ может осуществляться и с использованием специальных аппаратных средств.

В соответствии с изобретением обнаружение ошибок может осуществляться любым методом. Так, например, для обнаружения ошибок, возникающих в процессе выполнения компьютерной программы, может использоваться любой механизм обнаружения ошибок, основанный на сравнении результатов параллельно осуществляемых операций. Так, например, при использовании процессора с двухъядерной архитектурой процессор выполнен имеющим два вычислительных ядра. При эксплуатации вычислительных ядер в режиме с синхронизацией от одних системных часов для каждой машинной команды может быть предусмотрена проверка идентичности результатов ее выполнения обоими вычислительными ядрами. Различие таких результатов является основанием для уверенного обнаружения ошибки. Описанный механизм обнаружения ошибок позволяет обнаруживать ошибки, возникающие в процессе выполнения программных объектов, в реальном масштабе времени. То же самое относится и к кодам с обнаружением ошибок, широко используемым в архитектуре процессора, а также к отдельным продублированным компонентам вычислительного устройства. Общей особенностью всех вышеуказанных механизмов обнаружения ошибок является то, что они позволяют оперативно обнаруживать спорадические ошибки и при таком обнаружении выдают соответствующий сигнал.

По такому сигналу может запускаться механизм обработки ошибок, предусматривающий повторное выполнение программного объекта. При возникновении в процессе такого повторного выполнения той же самой ошибки может быть сделан вывод о наличии постоянной ошибки, либо увеличивают значение счетчика ошибок, причем при использовании счетчика ошибок ошибка признается постоянной лишь после превышения значением этого счетчика определенного значения. В случае, когда в процессе повторного выполнения программного объекта ошибка повторно не возникает, такая ошибка признается спорадической. Уже во время безошибочного повторного выполнения программного объекта компьютерная программа снова является работоспособной. Таким образом, изобретение позволяет восстанавливать работоспособность программы в кратчайшие сроки. Таким образом, повторение, или повторное выполнение, по меньшей мере одного программного объекта является эффективным средством борьбы со спорадическими ошибками.

В соответствии с предпочтительным вариантом осуществления изобретения программные объекты выполнены в виде динамических объектов компьютерной программы (далее по тексту называемых задачами), причем при обнаружении ошибки повторно выполняют по меньшей мере одну задачу. Задача представляет собой типичный объект уровня операционной системы. Повторное выполнение задачи может быть реализовано с минимальными затратами, при необходимости только программными средствами.

В предпочтительном варианте осуществления изобретения повторно запускают программный объект, который выполнялся в момент обнаружения ошибки. Однако взамен этого решения или в дополнение к нему запускаться или повторно выполняться могут также программные объекты, выполнение, или обработка, которых на момент обнаружения ошибки уже было полностью завершено.

Предлагается также во время выполнения программных объектов, прежде всего к моменту начала их выполнения, генерировать и сохранять для программных объектов по меньшей мере одно заданное состояние. Это может, например, осуществляться путем сохранения значений всех величин или параметров, определяющих состояние программного объекта.

Кроме того, в соответствии с изобретением для обнаружения ошибок может использоваться дополнительное вычислительное устройство, являющееся дублирующим (резервным или избыточным) по отношению к вычислительному устройству, в котором выполняется компьютерная программа с несколькими программными объектами. Разумеется, что для обнаружения ошибок можно использовать и несколько дублирующих вычислительных устройств вместо одного.

Предлагаемый в изобретении способ предпочтительно применяется в транспортном средстве, прежде всего в блоке управления этим транспортным средством, в целях обеспечения надежной и безопасной работы компьютерной программы этого блока несмотря на неизбежное возникновение в процессе ее выполнения спорадических ошибок. Такая возможность существенна прежде всего для программ контроля и управления, ответственных за работу важных с точки зрения безопасности систем транспортного средства.

В соответствии с изобретением, если при повторном выполнении по меньшей мере одного программного объекта снова возникает та же ошибка, то делают вывод о наличии постоянной ошибки. В другом варианте осуществления предлагаемого в изобретении способа ошибка признается постоянной лишь после ее многократного повторения в ходе нескольких повторов выполнения программного объекта, причем число необходимых для такого признания повторных возникновений ошибки может варьироваться. В этом случае ошибка все еще считается спорадической, например при ее исчезновении после третьей или еще более поздней попытки повторного выполнения программного объекта. В этом предпочтительном варианте осуществления изобретения для важных программных объектов могут быть предусмотрены, например, три попытки повторного выполнения программного объекта вместо двух.

В другом предпочтительном варианте осуществления изобретения количество повторов выполнения указанного по меньшей мере одного программного объекта может ограничиваться заданным значением. Такой подход позволяет предотвратить опасность т.н. "зацикливания" в случае возникновения постоянной ошибки, то есть попыток повтора выполнения программного объекта неограниченное число раз. Ограничение количества повторов выполнения по меньшей мере одного программного объекта может быть реализовано, например, посредством счетчика или посредством установки временных ограничений. Задание зависящего от конкретной задачи числа повторов выполнения позволяет повторно выполнять более важные задачи большее количество раз, чем менее важные, соответственно позволяет более часто или в течение большего времени предоставлять важным задачам возможность безошибочного продолжения работы, в то время как у менее важных задач возникающие ошибки могут признаваться постоянными сравнительно скоро, с принятием системой соответствующих ответных мер.

В другом предпочтительном варианте осуществления изобретения количество повторов выполнения указанного по меньшей мере одного программного объекта может ограничиваться заданным значением динамически. Такое динамическое ограничение заданным значением предпочтительно осуществлять в зависимости от оставшегося для выполнения планирования. Такой подход позволяет, например, продолжать нормальное выполнение первой и второй задач и одновременно с этим осуществлять повторное выполнение третьей задачи.

Для осуществления предлагаемого в изобретении способа предлагается во время выполнения компьютерной программы перед выполнением программного объекта сохранять значения величин или параметров, необходимых для выполнения этого программного объекта или определяющих его состояние. Соответствующим вариантом осуществления изобретения предусматривается сохранение величин, относящихся ко всем программным объектам.

В другом варианте осуществления изобретения в случае периодически выполняемой компьютерной программы при обнаружении ошибки возвращаются к определенному программному объекту, находящемуся в задаваемой точке возврата в пределах периода компьютерной программы. В соответствии с этим вариантом осуществления изобретения в случае обнаружения ошибки осуществляется возврат все время в одно и то же место в пределах периода программы. Тогда во время выполнения компьютерной программы предпочтительно сохранять значения всех величин, характеризующих состояние программного объекта, только перед выполнением программного объекта, находящегося в точке возврата. Иными словами, в этом варианте сохранение значений существенных величин программного объекта осуществляется лишь единожды за цикл, а именно в точке возврата. Это позволяет экономить время, необходимое для запоминания данных, и объем памяти.

При следующем за обнаружением ошибки повторном выполнении программного объекта сохраненные входные величины вызываются и предоставляются в распоряжение повторно выполняемому программному объекту.

В следующем варианте осуществления изобретения для одного программного объекта предусматривается несколько точек возврата. В соответствии с этим вариантом при возникновении ошибки повторному выполнению подлежит не весь программный объект, а лишь его часть. При возникновении ошибки просто осуществляется переход к той из предшествующих точек возврата, до которой программный объект выполнялся корректно. Так, например, в случае корректного выполнения программного объекта до n-ной точки возврата, соответственно в случае возникновения ошибки в промежутке между этой и (n+1)-ой точками, возврат осуществляется в n-ную точку. Тогда повторное выполнение программного объекта осуществляется, начиная с этой n-ной точки возврата. Такой подход позволяет экономить время. Предпочтительно, чтобы во время выполнения программного объекта при прохождении каждой точки возврата генерировалось (формировалось) и сохранялось по меньшей мере одно соответствующее определенное состояние этого объекта.

Особое значение имеет реализация предлагаемого в изобретении способа в форме операционной системы. Такая операционная система может выполняться в вычислительном устройстве, прежде всего в микропроцессоре, и может быть запрограммирована для осуществления предлагаемого в изобретении способа при ее выполнении в вычислительном устройстве. В данном случае изобретение осуществляется операционной системой, вследствие чего в качестве объектов изобретения в равной мере можно рассматривать как эту операционную систему, так и способ, для осуществления которого она предназначена. Операционная система предпочтительно хранится в запоминающем элементе и для ее выполнения передается в вычислительное устройство. В качестве запоминающего элемента может использоваться, в частности, любой носитель данных, или электрическая запоминающая среда, например запоминающее устройство с произвольной выборкой, постоянное запоминающее устройство, или флэш-память.

Положенная в основу настоящего изобретения задача также решается, исходя из вычислительного устройства названного в начале описания типа, за счет того, что такое вычислительное устройство имеет механизм обработки ошибок, который при обнаружении ошибки механизмом обнаружения ошибок инициирует повторное выполнение по меньшей мере одного программного объекта.

В предпочтительном варианте осуществления изобретения механизм обработки ошибок имеет триггерную логическую схему (логику), которая при обнаружении ошибки перезапускает по меньшей мере один программный объект.

В предпочтительном варианте вычислительного устройства в нем выполняется операционная система реального времени, например система "OSEK time". В другом предпочтительном варианте осуществления изобретения вычислительное устройство имеет микропроцессор.

Чертежи

Другие отличительные особенности, возможности применения и преимущества изобретения рассмотрены ниже на примере вариантов его осуществления со ссылкой на соответствующие чертежи. При этом объектом изобретения являются все описанные или представленные отличительные признаки, как сами по себе, так и в любом их сочетании, независимо от их объединения в пунктах формулы изобретения или ссылки на них, а также независимо от их формулировки, соответственно представления в описании, соответственно на чертежах, на которых показано:

на фиг.1 - блок-схема одного из предпочтительных вариантов осуществления предлагаемого в изобретении способа; и

на фиг.2 - схематичное изображение предпочтительного варианта выполнения предлагаемого в изобретении вычислительного устройства.

Описание вариантов осуществления изобретения

Настоящее изобретение относится к способу выполнения компьютерной программы в вычислительном устройстве, прежде всего в микропроцессоре. При этом компьютерная программа содержит несколько программных объектов, предпочтительно выполненных в виде задач. В соответствии с предлагаемым способом в процессе выполнения в вычислительном устройстве компьютерной программы осуществляется обнаружение ошибок или сбоев. Обнаруженные ошибки могут быть спорадического, т.е. временного, либо постоянного характера.

Спорадические ошибки могут возникать в процессе выполнения компьютерной программы в вычислительном устройстве. Поскольку структуры на полупроводниковых компонентах (так называемых чипах) все уменьшаются в размерах, тактовые частоты сигналов все возрастают, а напряжения сигналов все снижаются, частота возникновения спорадических ошибок имеет тенденцию к повышению. В отличие от постоянных ошибок спорадические ошибки возникают лишь на некоторое время и, как правило, затем исчезают сами по себе. Спорадические ошибки обычно связаны со случайным, не вызванным перманентным повреждением вычислительного устройства, искажением отдельных битов. Причины возникновения спорадических ошибок могут быть различными, например, такими как воздействие электромагнитных полей, альфа-частиц или нейтронов.

В связи с тем, что спорадические ошибки практически всегда возникают неожиданно и соответственно являются невоспроизводимыми, в известных вычислительных устройствах обработка ошибок выполняется в основном в отношении постоянных ошибок. Учет спорадических ошибок ограничивается увеличением и, при необходимости, уменьшением значения счетчика ошибок. Это значение сохраняется в памяти и может считываться оттуда в офлайновом (автономном) режиме, т.е., например, когда речь идет о блоке управления транспортным средством, при нахождении этого транспортного средства на станции обслуживания, в качестве диагностической информации и информации о сбоях и неисправностях. И только после этого возможно принятие адекватных ошибке ответных мер. Таким образом, известные методы обработки ошибок не позволяют обрабатывать ошибки в течение малого времени нечувствительности к ошибкам, соблюдение которого особенно важно для систем обеспечения безопасности, а также восстанавливать за это короткое время надлежащее функционирование компьютерной программы и выполнение вычислительным устройством задач согласно его назначению.

В противоположность уровню техники предлагаемый в изобретении способ позволяет обрабатывать спорадические ошибки, возникающие при выполнении в вычислительном устройстве компьютерной программы, систематично и конструктивно справляясь со спорадическим характером большинства ошибок или сбоев. На фиг.1 представлена функциональная схема предлагаемого в изобретении способа на примере исполняемого программного объекта, также называемого задачей. Поскольку количество задач для изобретения несущественно, изобретение пояснено ниже на примере лишь одной задачи. Очевидно, однако, что таких задач, обрабатываемых поясненным со ссылкой на фиг.1 способом, в соответствии с изобретением может быть и несколько. В наиболее предпочтительном варианте осуществления изобретения для обнаружения ошибок применяется параллельный механизм проверки, иными словами механизм, основанный на сравнении результатов параллельно осуществляемых операций. Этот механизм изображен на фиг.1 лишь обобщенно, в виде одного блока блок-схемы, соответственно одного шага предлагаемого в изобретении способа.

Осуществление предлагаемого в изобретении способа начинают с шага 1. На этом шаге 1 начинают выполнение задачи в вычислительном устройстве, т.е. осуществляют вызов этой задачи. На шаге 2 создают точку возврата. Для этого в запоминающем элементе вычислительного устройства сохраняют достоверные и существенные входные величины этой задачи, достаточные для приведения этой задачи в определенное состояние, пригодное для начала повторного выполнения этой задачи. В предпочтительном варианте сохранению подлежат все относящиеся к задаче входные величины. На шаге 3 выполнение задачи продолжают. Это выполнение может продолжаться до достижения следующей точки возврата или до завершения задачи. После такого достижения задействуют механизм обнаружения ошибок. При этом обнаружение ошибок может осуществляться любым пригодным для этого способом. Обнаружение ошибок осуществляют непосредственно в процессе выполнения компьютерной программы (с использованием механизма обнаружения ошибок, основанного на сравнении результатов параллельно выполняемых операций - concurrent checking). Для этого может использоваться, например, процессор с двухъядерной архитектурой, иными словами процессор, имеющий два вычислительных ядра. При работе вычислительных ядер в режиме жесткой пошаговой синхронизации для каждой машинной команды может быть предусмотрена проверка идентичности результатов ее выполнения обоими вычислительными ядрами. Несовпадение результатов является основанием для уверенного обнаружения ошибки. Описанный механизм обнаружения ошибок позволяет обнаруживать ошибки, возникающие в процессе выполнения задачи, в реальном масштабе времени. То же самое относится и к кодам с обнаружением ошибок, широко используемым в архитектуре процессора, а также к отдельным продублированным компонентам вычислительного устройства. Предпочтительно применяют механизмы обнаружения ошибок, позволяющие оперативно обнаруживать спорадические ошибки и при таком обнаружении выдающие соответствующий сигнал.

На шаге 4 проверяют наличие обнаруженной ошибки, т.е. спорадической или постоянной ошибки. В случае обнаружения ошибки переходят к шагу 7, на котором осуществляют опрос счетчика ошибок. В случае, когда значение счетчика еще не уменьшилось ниже заданного нижнего предела (в случае декрементного счетчика ошибок) или не превысило заданный верхний предел (в случае инкрементного счетчика), задача или определенное количество задач, которая(-ые) выполнялась(-лись) перед появлением ошибки, может(-гут) быть выполнены повторно. В случае, когда начало повторного выполнения задачи является возможным, переходят к шагу 8, на котором с учетом возникновения еще одной ошибки изменяют (увеличивают или уменьшают на единицу) значение счетчика ошибок. Затем переходят к шагу 5, на котором загружают сохраненные на шаге 2 величины и для формирования нового состояния задачу подают на начало ее выполнения или обработки. Затем на шаге 3 начинают частичное, т.е. начинающееся, например в предшествующей точке возврата, или полное, т.е. начинающееся с начальной точки задачи, повторное выполнение этой задачи.

В случае, когда на шаге 4 регистрируют отсутствие возникновения ошибок в процессе выполнения задачи, т.е. на шаге 3, переходят к шагу 9, на котором значение счетчика ошибок изменяют с учетом отсутствия обнаруженных ошибок. На последующем шаге 11 осуществляют опрос с целью определения того, выполнена ли компьютерная программа до конца. В случае, когда программа выполнена до конца, переходят к последнему шагу 6, обозначающему завершение компьютерной программы. В противном случае переходят к шагу 12, на котором с учетом текущего состояния задачи создают еще одну точку возврата, для чего определяют и сохраняют достоверные и существенные входные величины этой задачи, достаточные для того, чтобы запустить эту задачу еще раз. Затем снова переходят к шагу 3, на котором начинают и осуществляют попытку полного или частичного повторного выполнения этой задачи.

В случае, когда на шаге 7 опроса устанавливают, что с учетом текущего значения счетчика ошибок еще одна попытка повторного выполнения задачи невозможна, переходят к шагу 10. На шаге 7 опроса текущее значение соотнесенного с соответствующей задачей счетчика ошибок сравнивают с соответствующим предельным значением количества попыток повторного выполнения задачи. Это предельное значение может либо быть одинаковым для различных задач, либо заданным для каждой задачи индивидуально. Такой подход позволяет, например, повторять наиболее существенные задачи большее число раз до признания соответствующей ошибки постоянной. В случае, когда указанное предельное значение задано равным единице, ошибку признают постоянной после однократной попытки повторного выполнения задачи. В случае, когда это значение задано равным 2 или 3, ошибку признают постоянной после второй, соответственно третьей попытки повторного выполнения задачи. В этом случае путем увеличения времени выполнения задачи, соответственно путем увеличения количества попыток ее выполнения, увеличивают вероятность исчезновения спорадической ошибки. На шаге 10 делают вывод о наличии постоянной ошибки и принимают соответствующие ответные меры. Эти меры могут заключаться, например, в переключении компьютерной программы в аварийный режим работы или просто в досрочном прекращении процесса выполнения компьютерной программы.

Предлагаемый в изобретении способ не обязательно имеет все поясненные выше со ссылкой на фиг.1 шаги или стадии. Так, например, этим способом могут не предусматриваться шаги с седьмого по девятый, отвечающие за работу счетчика ошибок. В этом случае при обнаружении ошибки попытки повторного выполнения соответствующих задач продолжаются до исчезновения ошибки. Поскольку таким вариантом осуществления предлагаемого в изобретении способа не предусматривается обнаружение постоянных ошибок, шаг 10 также может быть исключен. В другом варианте число попыток повторного выполнения задачи может быть равно единице, что позволяет отказаться от шагов 8 и 9, отвечающих за актуализацию счетчика ошибок. В еще одном варианте, предусматривающем выполнение лишь одной задачи с одной точкой возврата, могут не предусматриваться шаги 11 и 12.

На фиг.2 показан предпочтительный вариант выполнения предлагаемого в изобретении вычислительного устройства для выполнения компьютерной программы. Вычислительное устройство обозначено в целом позицией 20. Вычислительное устройство содержит запоминающий элемент 21, выполненный, например, в виде электронной памяти, прежде всего в виде флэш-памяти. Кроме того, вычислительное устройство 20 содержит микропроцессор 22, которым может выполняться компьютерная программа. Компьютерная программа 23 хранится в электронной памяти 21. Для выполнения компьютерной программы микропроцессором 22 последняя передается в него по каналу 24 передачи данных либо целиком, либо по частям, предпочтительно в виде последовательности отдельных команд. Канал 24 передачи данных может быть выполнен в виде одной или нескольких линий передачи данных, или же в виде шины передачи данных. Кроме того, в памяти 21 хранится операционная система, которая в процессе запуска вычислительного устройства 20 по меньшей мере частично передается из памяти 21 в микропроцессор 22, в котором она выполняется. Эта операционная система обозначена позицией 25. Операционная система управляет осуществляемым микропроцессором 22 выполнением компьютерной программы 23, а также работой подключенных к вычислительному устройству 20 периферийных устройств. В соответствии с изобретением операционная система 25 выполнена особым образом, а именно запрограммирована для осуществления ею предлагаемого в изобретении способа, и в процессе ее выполнения в микропроцессоре 22 осуществляет этот способ. Операционная система 25 имеет, прежде всего, средства доступа к механизму обнаружения ошибок, возникающих при выполнении компьютерной программы 23 в микропроцессоре 22. Кроме того, операционная система 25 имеет механизм обработки ошибок, которым при обнаружении ошибки инициируется процесс повторного выполнения по меньшей мере одного программного объекта (задачи) компьютерной программы 23.

1. Способ выполнения в вычислительном устройстве (20) с двумя вычислительными ядрами, прежде всего в микропроцессоре (22), компьютерной программы (23), содержащей несколько программных объектов, включающий обнаружение ошибок во время выполнения компьютерной программы (23) в вычислительном устройстве (20), отличающийся тем, что в момент начала выполнения программных объектов генерируют и сохраняют по меньшей мере одно заданное состояние программных объектов, и используют механизм обнаружения ошибок, работающий параллельно с выполнением программного объекта обоими вычислительными ядрами и проверяющий результаты выполнения вычислительными ядрами каждой машинной команды на идентичность с обеспечением обнаружения ошибок по несовпадению указанных результатов, причем указанный механизм обнаружения ошибок при обнаружении ошибки переводит по меньшей мере один уже поданный на выполнение программный объект в заданное состояние и повторно запускает его из этого состояния, хотя в момент обнаружения ошибки программный объект еще не выполнен полностью, причем для обнаружения ошибок используют дополнительное вычислительное устройство, которое дублирует вычислительное устройство (20), выполняющее компьютерную программу (23).

2. Способ по п.1, отличающийся тем, что программные объекты выполнены в виде задач компьютерной программы (23), а при обнаружении ошибки повторно выполняют по меньшей мере одну задачу.

3. Способ по п.1 или 2, отличающийся тем, что повторно выполняют программный объект, который выполнялся в момент обнаружения ошибки.

4. Способ по п.1 или 2, отличающийся тем, что его применяют в транспортном средстве, прежде всего в блоке управления транспортным средством.

5. Способ по п.1 или 2, отличающийся тем, что если при повторном выполнении указанного по меньшей мере одного программного объекта снова возникает та же ошибка, делают вывод (шаг 12) о наличии постоянной ошибки.

6. Способ по п.5, отличающийся тем, что количество повторов выполнения указанного по меньшей мере одного программного объекта ограничивают задаваемым значением.

7. Способ по п.6, отличающийся тем, что количество повторов выполнения указанного по меньшей мере одного программного объекта динамически ограничивают задаваемым значением.

8. Способ по п.7, отличающийся тем, что количество повторов выполнения указанного по меньшей мере одного программного объекта динамически ограничивают задаваемым значением в зависимости от времени, оставшегося для выполнения планирования.

9. Способ по п.1 или 2, отличающийся тем, что во время выполнения компьютерной программы (23) перед выполнением программного объекта сохраняют (шаг 3) значения величин, необходимых для выполнения этого программного объекта.

10. Способ по п.1 или 2, отличающийся тем, что в случае периодически выполняемой компьютерной программы (23) при обнаружении ошибки возвращаются к определенному программному объекту, находящемуся в задаваемой точке возврата в пределах периода компьютерной программы (23).

11. Способ по п.10, отличающийся тем, что во время выполнения компьютерной программы (23) сохранение всех относящихся к программному объекту входных величин выполняют только перед выполнением программного объекта, находящегося в точке возврата.

12. Способ по п.9, отличающийся тем, что во время повторного выполнения программного объекта после обнаружения ошибки этот программный объект выполняют с использованием сохраненных для него входных величин.

13. Способ по п.11, отличающийся тем, что во время повторного выполнения программного объекта после обнаружения ошибки этот программный объект выполняют с использованием сохраненных для него входных величин.

14. Вычислительное устройство (20) с двумя вычислительными ядрами для выполнения компьютерной программы (23), содержащей несколько программных объектов, имеющее механизм обнаружения ошибок во время выполнения компьютерной программы (23) в вычислительном устройстве (20), отличающееся тем, что предусмотрены средства, которые в момент начала выполнения программных объектов генерируют и сохраняют по меньшей мере одно заданное состояние программных объектов, и применен механизм обнаружения ошибок, выполняемый на дополнительном вычислительном устройстве параллельно с выполнением программного объекта обоими вычислительными ядрами и проверяющий результаты выполнения вычислительными ядрами каждой машинной команды на идентичность с обеспечением обнаружения ошибок по несовпадению указанных результатов, причем механизм обнаружения ошибок при обнаружении им ошибки инициирует перевод по меньшей мере одного уже поданного на выполнение программного объекта в заданное состояние и повторный запуск этого программного объекта из этого состояния, хотя в момент обнаружения ошибки программный объект еще не выполнен полностью.

15. Вычислительное устройство (20) по п.14, отличающееся тем, что механизм обработки ошибок имеет триггерную логическую схему, которая при обнаружении ошибки перезапускает по меньшей мере один программный объект.

16. Вычислительное устройство (20) по п.14 или 15, отличающееся тем, что в нем выполняется операционная система (25) реального времени.

17. Вычислительное устройство (20) по п.14 или 15, отличающееся тем, что оно содержит микропроцессор (22).



 

Похожие патенты:

Изобретение относится к области телемеханики, автоматики и вычислительной техники, а именно к устройствам хранения и передачи информации повышенной достоверности функционирования.

Изобретение относится к области телемеханики, автоматики и вычислительной техники. .

Изобретение относится к кольцевой памяти. .

Изобретение относится к средству памяти, содержащему по меньшей мере один набор данных в области памяти. .

Изобретение относится к области техники связи и может быть использовано в системах передачи данных, системах телеизмерения и телеуправления. .

Изобретение относится к области автоматики и вычислительной техники. .

Изобретение относится к вычислительной технике и может быть использовано для построения высокопроизводительных вычислительных систем для реализации алгоритмов, допускающих распараллеливание на уровне команд.

Изобретение относится к способу работы компьютерной системы и к дублирующей системе. .

Изобретение относится к вычислительной технике и может быть использовано для повышения надежности комбинационных дискретных устройств. .

Изобретение относится к области телемеханики, автоматики и вычислительной техники и предназначено для повышения достоверности функционирования запоминающих устройств

Изобретение относится к вычислительной технике

Изобретение относится к области телемеханики, автоматики и вычислительной техники и предназначено для обработки данных и исправления одиночных сбоев в регистровых файлах микропроцессоров

Изобретение относится к вычислительной технике

Изобретение относится к вычислительной технике. Технический результат заключается в сокращении сбоев резервного копирования данных. Устройство обработки данных, выполненное с возможностью резервного копирования данных во внешний модуль памяти, содержащее: модуль управления доступом, выполненный с возможностью установки доступного состояния внешнего модуля памяти; модуль установки, выполненный с возможностью установки внешнего модуля памяти в качестве места назначения для резервного копирования; и модуль резервного копирования, выполненный с возможностью резервного копирования данных во внешний модуль памяти, установленный в доступное состояние и в качестве места назначения для резервного копирования, при этом модуль управления доступом выполнен с возможностью не отменять доступное состояние внешнего модуля памяти, установленного в качестве места назначения для резервного копирования, даже когда данные не сохраняются во внешний модуль памяти. 4 н. и 13 з.п. ф-лы, 18 ил.

Изобретение относится к вычислительной технике. Технический результат заключается в повышении эффективности обработки данных. Устройство для определения сигнатур данных в сети динамически распределенных устройств, содержащее процессор, сконфигурированный для приема первого запроса; генерации локального частичного замыкания данных, идентифицированных первым запросом; синтеза сигнатуры данных локального частичного замыкания, причем сигнатура данных представляет собой неприводимое полиномиальное выражение и ортогональна удаленным сигнатурам данных, генерированным на основе удаленных частичных замыканий; и сохранения сигнатуры данных в банке информации в пределах сети динамически распределенных устройств. 4 н. и 16 з.п. ф-лы, 3 ил.

Изобретение относится к области систем передачи данных. Техническим результатом является повышение достоверности принимаемой двоичной информации. Устройство для приема двоичной информации по двум параллельным каналам связи содержит входной элемент И 1 и входной элемент ИЛИ 2, выходы которых соединены соответственно с входами первого и второго блоков защиты от ошибок 3, 4, при этом информационные входы входных элементов И 1 и ИЛИ 2 соединены с первой и второй шиной параллельных каналов связи 5, 6. Устройство также содержит третий и четвертый блоки защиты от ошибок 7, 8, четыре элемента НЕ 9, 10, 11, 12, четыре элемента И 13, 14, 15, 16, четыре ключа 17, 18, 19, 20 и второй элемент ИЛИ 21, информационный выход устройства 22 и выход сигнала переспроса 23. 1 ил.

Изобретение относится к вычислительной технике. Технический результат заключается в повышении скорости устранения конфликтов доступа. Способ устранения конфликта доступа к устройству, обеспечивающему бесконфликтный обмен сообщениями (УБОС), в котором используют УБОС и нумерованные объекты, посылающие УБОС и получающие от него оптические сигналы по отдельному для каждого объекта беспроводному каналу на трех возможных частотах, причем сигнал первой частоты импульсный, используемый объектами для определения времени распространения сигнала от объекта до УБОС, сигнал второй частоты импульсный одной из четырех длительностей ν, ρ, σ, τ, связанных соотношением 3ν<σ<ρ<τ, посылаемый одновременно только одним из объектов, сигнал третьей частоты постоянный, посылаемый УБОС объектами и возвращаемый им УБОС с прерыванием на время получения УБОС сигнала второй частоты от объекта, при этом УБОС проводит отсчет времени, прерываемый и начинающийся заново при приходе сигнала второй частоты, или при достижении заранее заданного значения отсчета времени. 2 н. и 7 з.п. ф-лы, 3 ил.

Изобретение относится к вычислительной технике а, именно к способу восстановления данных в системе управления базами данных - СУБД. Техническим результатом является повышение точности восстановления данных в базах данных (БД) СУБД до последнего по времени согласованного состояния БД, не требуя при восстановлении дополнительного объема оперативной и внешней памяти под журнализацию. Заявлен способ восстановления данных в системе управления базами данных - СУБД. БД сформированы в виде реляционных таблиц, каждая из которых описывается метаданными и содержит данные, сформированные в строки одинаковой структуры, где каждая строка идентифицирована уникальным номером и представлена набором полей с заданными типами данных. Способ включает в себя этап, на котором формируют единый журнал, состоящий из определяемого пользователем числа файлов заданного размера, среди которых формируют в том числе записи, каждая из которых описывает redo-обновление только на одной странице одной из таблиц БД и предназначена для доката обновления в БД, которое не было записано во внешнюю память. Далее, согласно способу, выполняют откаты всех незавершенных транзакций на логическом уровне. Рестарт выполняют в три прохода: аналитический, redo-проход, undo-проход. 3 з.п. ф-лы, 6 ил.
Наверх