микрокомпьютер и способ его работы
Классы МПК: | G06F11/30 контроль G06F1/24 средства возврата в исходное положение |
Автор(ы): | ТАЦУНО Исао (JP) |
Патентообладатель(и): | Эл И ТЕК КО., ЛТД. (JP) |
Приоритеты: |
подача заявки:
2010-10-15 публикация патента:
27.06.2014 |
Изобретение относится к способу работы компьютера при автоматическом восстановлении центрального процессора в случае ошибки. Технический результат заключается в том, что в момент фатальной ошибки в CPU микрокомпьютера происходит сброс только CPU без инициализации или сброса всего микрокомпьютера. Раскрыт микрокомпьютер, в котором при возникновении фатальной ошибки, когда программа не может выполняться в CPU микрокомпьютера из-за внешнего шума, нестабильного напряжения источника питания или других причин, возврат в первоначальный этап возможен за исключительно короткое время, избегая инициализации всей системы. Во время выполнения нормальной обработки программного обеспечения в произвольное время выводятся сигнал прерывания и сигнал сброса, и если определяется, что CPU микрокомпьютера переходит в этап ухода, то данные, которые были сохранены в ОЗУ в качестве информации восстановления, считываются, и CPU восстанавливается в этап перед этим уходом. Поскольку такое восстановление от фатальной ошибки происходит за короткое время, программное обеспечение, которое выполняется, может продолжить свою обработку, как будто фатальная ошибка не возникла. 2 н. и 5 з.п. ф-лы, 9 ил.
Формула изобретения
1. Микрокомпьютер, содержащий:
центральный процессор (CPU);
ОЗУ, подключенное к CPU через процессорную шину;
схему счетчика таймера, подсчитывающую синхросигнал, причем, когда подсчитанное значение достигает значения подсчета верхнего предела, схема счетчика таймера сбрасывает подсчитанное значение для возобновления подсчета,
средство вывода сигнала запроса прерывания, функционирующее с возможностью вывода к CPU сигнала запроса прерывания для запроса запуска выполнения обработки прерывания, когда подсчитанное значение совпадает с заранее определенным значением; и
средство вывода сигнала сброса CPU, функционирующее с возможностью вывода к CPU сигнала сброса CPU для запроса запуска обработки сброса CPU, когда подсчитанное значение достигает значения подсчета верхнего предела, при этом значение подсчета верхнего предела является большим, чем упомянутое заранее определенное значение;
причем CPU функционирует с возможностью, после приема сигнала запроса прерывания, сохранять в ОЗУ информацию из CPU регистра в CPU, в качестве информации восстановления, и останавливать обработку прикладной программы, выполняемой на CPU, и затем, после приема сигнала сброса CPU, подвергать сбросу и копировать информацию восстановления, сохраненную в ОЗУ, в упомянутый CPU регистр.
2. Микрокомпьютер по п.1, в котором схема счетчика таймера циклически генерирует упомянутый сигнал сброса CPU и упомянутый сигнал запроса прерывания.
3. Микрокомпьютер по п.2, в котором схема счетчика таймера содержит дополнительный таймер, и CPU функционирует с возможностью определять то, является ли информация из CPU регистра нормальной, и в котором дополнительный таймер выполнен таким образом, что, только когда определено, что информация из CPU регистра является нормальной, он активируется для препятствования выполнению обработки сброса CPU, во время периода времени, в котором сигнал сброса CPU подается к CPU.
4. Микрокомпьютер по любому из пп.1-3, который дополнительно содержит источник сигнала сброса системы для сброса всего микрокомпьютера и логическую схему ИЛИ, причем средство вывода сигнала сброса CPU и источник сигнала сброса системы подключены ко входу логической схемы ИЛИ, и CPU подключен к выходу логической схемы ИЛИ.
5. Способ работы микрокомпьютера, содержащий этапы, на которых:
вынуждают схему счетчика таймера подсчитывать синхросигнал и сбрасывать подсчитанное значение для возобновления подсчета, когда подсчитанное значение достигает значения подсчета верхнего предела;
выводят из упомянутой схемы счетчика таймера к CPU сигнал запроса прерывания для запроса запуска выполнения обработки прерывания, когда подсчитанное значение совпадает с заранее определенным значением;
заставляют CPU остановить обработку прикладной программы, выполняемой на CPU, после приема сигнала запроса прерывания;
заставляют CPU сохранять в ОЗУ информацию из CPU регистра в CPU, в качестве информации восстановления;
выводят из схемы счетчика таймера к CPU сигнал сброса CPU для запроса запуска обработки сброса CPU, когда подсчитанное значение достигает значения подсчета верхнего предела, при этом значение подсчета верхнего предела является большим, чем упомянутое заранее определенное значение;
заставляют CPU пройти процедуру сброса, после приема сигнала сброса CPU; и
заставляют CPU копировать информацию восстановления, сохраненную в ОЗУ, в CPU регистр.
6. Способ по п.5, в котором упомянутый сигнал сброса CPU и упомянутый сигнал запроса прерывания циклически генерируются схемой счетчика таймера.
7. Способ по п.6, который дополнительно содержит этап, на котором заставляют CPU определять, является ли информация из CPU регистра нормальной, и только когда определено, что информация из CPU регистра является нормальной, препятствуют выполнению этапа, на котором заставляют CPU пройти процедуру сброса, во время периода времени, в котором сигнала сброса CPU подается к CPU.
Описание изобретения к патенту
ОБЛАСТЬ ТЕХНИКИ
Данное изобретение относится к способу работы микрокомпьютера. Более конкретно, данное изобретение относится к схеме для автоматического восстановления центрального процессора (CPU) в случае ошибки, такой как так называемый «уход», в этом CPU и к использованию этой схемы.
УРОВЕНЬ ТЕХНИКИ
Из-за внешнего электрического шума, статического электричества, нестабильности напряжения источника питания и других факторов, в CPU микрокомпьютера возможно возникновение фатальной ошибки. Это может препятствовать CPU выполнять программы. Например, такое состояние фатальной ошибки включает в себя так называемый «уход CPU». Одной стандартной контрмерой для фатальной ошибки в CPU микрокомпьютера является способ, известный как «сторож». В этом способе, обеспечен таймер, имеющий время цикла (повтора), достаточно большее, чем время цикла обработки, основанной на программном обеспечении, и он выполнен с возможностью сброса в интервалы цикла обработки, основанной на программном обеспечении. В случае фатальной ошибки в CPU, обработка, основанная на программном обеспечении, не работает нормально, так что этот таймер истечет, не будучи сброшенным, и истечение таймера служит в качестве триггера для обеспечения сброса всего микрокомпьютера. С другой стороны, когда CPU работает нормально (когда не возникает фатальной ошибки), микрокомпьютер не сбрасывается, так как таймер сбрасывается перед истечением.
Однако в этом способе состояние фатальной ошибки CPU может продолжаться для большой части периода времени от старта до истечения таймера. Таким образом, в среде, где время задержки между возникновением фатальной ошибки в CPU и истечением таймера имеет отрицательные последствия для использования микрокомпьютера, или где ложная работа микрокомпьютера во время времени задержки выдвигает риск для пользователя, сторож (схема обеспечения безопасности) не обязательно является эффективным. Однако он применяется, так как нет других средств.
Кроме того, в основанной на стороже контрмере для фатальной ошибки в CPU сложно, после того как случилась фатальная ошибка в CPU, возвратить CPU на этап как раз перед возникновением этой ошибки. Это происходит потому, что требуется длительное время, прежде чем фатальная ошибка в CPU детектируется, так что этап информации в CPU регистре и т.п. при определении времени детектирования фатальной ошибки в CPU становится отличным от состояния как раз перед возникновением фатальной ошибки.
До сих пор микрокомпьютер конфигурировался так, что в ответ на детектирование фатальной ошибки в CPU он полностью инициализировался, при этом отбрасывая информацию в CPU регистре и т.п. в момент времени детектирования фатальной ошибки в CPU. Таким образом, для восстановления CPU из фатальной ошибки, обычно необходимо некоторое время для инициализации всего микрокомпьютера, в дополнение ко времени для детектирования фатальной ошибки в CPU. Затем, для возврата микрокомпьютера на этап как раз перед возникновением фатальной ошибки в CPU, необходимо дать возможность обработке (обработке согласно некоторой прикладной программе), которая выполнялась ранее как раз перед возникновением этой ошибки, быть восстановленной после сброса или инициализации CPU. Восстановить ранее выполнявшуюся обработку нелегко. Кроме того, необходимо время обработки для выполнения этого восстановления. Следовательно, в зависимости от среды использования микрокомпьютера, вышеупомянутый способ восстановления микрокомпьютера от фатальной ошибки CPU может вызвать большую проблему. Например, машина может быть переведена в неостанавливаемое состояние на период после фатальной ошибки в CPU до инициализации, что приведет к возникновению аварии, и может возникнуть серьезная ситуация, такая как сбой в счете денег.
Обычно только один сигнал для инициализации используется для микрокомпьютера с одной микросхемой с использованием микрокомпьютера. Это означает, что инициализация выполняется на всем микрокомпьютере. Таким образом, микрокомпьютер проектируется в предположении, что инициализация микрокомпьютера выполняется в случае ошибки, имеющей серьезность, оправдывающую инициализацию всего микрокомпьютера. Следовательно, обычно полагают, что неизбежно понадобится длительное время для восстановления CPU от фатальной ошибки в нем, или будет потеряна информация и т.п. перед возникновением фатальной ошибки.
Также известен способ периодического или циклического обеспечения сброса только CPU, вместо циклического прерывания, описанного в указанном ниже патентном документе 1. В случае использования этого способа необходимо, чтобы период времени от начала до конца выполнения прикладной программы, подлежащей выполнению на CPU, попадал в пределы времени цикла сброса. Потому что, если CPU сбрасывается во время выполнения прикладной программы, информация в CPU регистре, таком как программный счетчик или стек, также сбрасывается, так что адреса для команд в прикладной программе стираются. Таким образом, в случае циклического сброса только CPU, необходимо, чтобы прикладная программа имела очень малый размер, достаточный для того, чтобы дать возможность периоду времени от начала до конца ее обработки попасть в пределы некоторого интервала цикла сброса CPU. По этой причине, требуемый размер прикладной программы становится меньшим, чем требуемый размер стандартной программы. Это приводит к огромному увеличению числа прикладных программ. Другой проблемой является то, что программист должен создать прикладную программу, учитывая не только содержание обработки, основанной на прикладной программе, но также цикл сброса.
СПИСОК ДОКУМЕНТОВ ПРЕДШЕСТВУЮЩЕГО УРОВНЯ ТЕХНИКИ
ПАТЕНТНЫЕ ДОКУМЕНТЫ
Патентный документ 1: JP 06-071024 A
Патентный документ 2: JP 09-319602 A
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
ПРОБЛЕМА РЕШАЕМАЯ ИЗОБРЕТЕНИЕМ
Данное изобретение предназначено для сброса только CPU без инициализации или сброса всего микрокомпьютера, в случае фатальной ошибки в CPU микрокомпьютера, чтобы дать возможность CPU микрокомпьютера восстановиться из состояния фатальной ошибки в пределах очень короткого периода времени. Данное изобретение дополнительно предназначено для сброса CPU без проявления отрицательного воздействия на прикладную программу, выполняемую на микрокомпьютере.
СРЕДСТВО ДЛЯ РЕШЕНИЯ ПРОБЛЕМЫ
Данное изобретение обеспечивает микрокомпьютер, который содержит CPU; ОЗУ, подключенное к центральному процессору через процессорную шину; схему вывода сигнала запроса прерывания, функционирующую с возможностью вывода в CPU сигнала запроса прерывания для запроса запуска выполнения обработки прерывания, и схему вывода сигнала сброса CPU, функционирующую с возможностью вывода в CPU сигнала сброса CPU для запроса запуска обработки сброса CPU, после того как схема вывода сигнала запроса прерывания выводит сигнал запроса прерывания, причем CPU функционирует с возможностью, после приема сигнала запроса прерывания, останавливать обработку прикладной программы, выполняемой на CPU, и сохранять в ОЗУ информацию из регистра CPU у CPU, в качестве информации восстановления, и затем после приема сигнала сброса CPU, подвергать сбросу и копировать информацию восстановления, сохраненную в ОЗУ, в CPU регистр.
Предпочтительно, микрокомпьютер данного изобретения дополнительно содержит схему счетчика таймера для циклической генерации сигнала сброса CPU и сигнала запроса прерывания.
Более предпочтительно, в вышеупомянутом микрокомпьютере, схема счетчика таймера содержит дополнительный таймер, и CPU функционирует с возможностью определения, является ли информация из CPU регистра нормальной, где дополнительный таймер выполнен таким образом, что, только когда определено, что информация из CPU регистра является нормальной, он активируется для препятствования выполнению обработки сброса CPU, во время периода времени, в который сигнал сброса CPU подается в CPU.
Предпочтительно, микрокомпьютер данного изобретения дополнительно содержит источник сигнала сброса системы для сброса всего микрокомпьютера и логическую схему ИЛИ, где схема вывода сигнала сброса CPU и источник сигнала сброса системы подключены ко входу логической схемы ИЛИ, и CPU подключен к выходу логической схемы ИЛИ.
Данное изобретение дополнительно обеспечивает способ работы микрокомпьютера. Этот способ содержит этапы, на которых выводят, из схемы счетчика таймера в CPU, сигнал запроса прерывания для запроса запуска выполнения обработки прерывания; заставляют CPU останавливать обработку прикладной программы, выполняемой на CPU, после приема сигнала запроса прерывания; заставляют CPU сохранять в ОЗУ информацию из CPU регистра CPU в качестве информации восстановления; после вывода сигнала запроса прерывания выводят, из схемы счетчика таймера в CPU, сигнал сброса CPU для запроса запуска обработки сброса CPU; заставляют CPU пройти процедуру сброса, после приема сигнала сброса CPU; и заставляют CPU копировать информацию восстановления, сохраненную в ОЗУ, в CPU регистр.
Предпочтительно, в способе данного изобретения, сигнал сброса CPU и сигнал запроса прерывания циклически генерируются схемой счетчика таймера.
Более предпочтительно, вышеупомянутый способ дополнительно содержит этап, на котором заставляют CPU определять, является ли информация из CPU регистра нормальной, и, только когда определено, что информация из CPU регистра является нормальной, препятствуют выполнению этапа, на котором заставляют CPU пройти процедуру сброса, во время периода времени, в который сигнал сброса CPU подается в CPU.
ЭФФЕКТ ИЗОБРЕТЕНИЯ
Данное изобретение делает возможным раннее детектирование того, что фатальная ошибка возникла в CPU микрокомпьютера, и выполнение восстановления от фатальной ошибки, что позволяет устройству с применением микрокомпьютера значительно уменьшить анормальную работу или неисправность, которая порой приводит к опасной ситуации.
В частности, в устройстве управления механической системой для использования в области автомобилей, самолетов, кораблей, промышленных роботов и т.д., неисправность такого устройства может привести к большой аварии (например, управление тормозом или рулевое управление для автомобиля). Время, требуемое для восстановления от фатальной ошибки CPU микрокомпьютера согласно данному изобретению, является значительно меньшим, чем время, требуемое для детектирования неисправности устройства управления механической системой и восстановления от этой неисправности. Таким образом, важным является то, что обработка для детектирования неисправности устройства из-за фатальной ошибки CPU микрокомпьютера и восстановления от этой неисправности выполняется с фокусом на микрокомпьютере, вместо всего устройства.
Кроме того, в вышеупомянутых областях, такой фактор, вызывающий фатальную ошибку, как электрический шум, встречается более часто, чем в других областях. Таким образом, данное изобретение, применяемое в устройстве управления механической системой, делает возможным значительно ослабить стандартные контрмеры, различным образом необходимые для электрического шума и других факторов, с принятием более сильной контрмеры, чем когда-либо прежде, так что становится возможным достичь как снижения стоимости, так и улучшения надежности. В ситуации, когда фатальная ошибка непрерывно возникает в CPU микрокомпьютера, можно детектировать непрерывную фатальную ошибку в CPU и, на основе результата этого детектирования, обеспечить информацию для подачи сигнала о неисправности устройства, через интерфейс ввода/вывода.
В данном изобретении, в случае фатальной ошибки в CPU микрокомпьютера, сбрасывается только CPU, вместо сброса всего микрокомпьютера. Это делает возможным выполнение восстановления от фатальной ошибки, за очень короткий период времени. Данное изобретение также делает возможным сброс CPU после остановки прикладной программы, выполняемой на CPU, когда фатальная ошибка возникает в CPU, и затем возобновление выполнения прикладной программы от состояния во время как раз перед возникновением фатальной ошибки.
Далее следует пример из области, где предполагается использовать данное изобретение. Даже в ситуации, когда, во время работы лифта или элеватора, фатальная ошибка возникает в CPU микрокомпьютера для управления этим элеватором, из-за молнии или шума источника питания или шума, вызванного дефектом конструкции, и неисправностей элеватора из-за этого CPU, микрокомпьютер согласно данному изобретению может использоваться как микрокомпьютер для элеватора для осуществления возможности регенерации элеватора в стабильное рабочее состояние за короткий период времени.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг.1 является структурной схемой, иллюстрирующей полную конфигурацию микрокомпьютера согласно одному варианту осуществления данного изобретения.
Фиг.2 является структурной схемой, более конкретно иллюстрирующей схему генерации синхроимпульсов, схему счетчика таймера и CPU на фиг.1.
Фиг.3 является блок-схемой, иллюстрирующей работу микрокомпьютера согласно первому варианту осуществления данного изобретения.
Фиг.4 является блок-схемой, иллюстрирующей работу микрокомпьютера согласно второму варианту осуществления данного изобретения.
Фиг.5 является блок-схемой, иллюстрирующей работу обработки прерывания.
Фиг.6 является блок-схемой, иллюстрирующей работу обработки сброса CPU.
Фиг.7 является временной диаграммой, касающейся первого варианта осуществления в ситуации, когда CPU работает нормально.
Фиг.8 является временной диаграммой, касающейся первого варианта осуществления в ситуации, когда в CPU возникает фатальная ошибка.
Фиг.9 является временной диаграммой, касающейся второго варианта осуществления в ситуации, когда в CPU возникает фатальная ошибка.
ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ
Фиг.1 является блок-схемой, иллюстрирующей полную конфигурацию микрокомпьютера согласно одному варианту осуществления данного изобретения. В этом варианте осуществления, микрокомпьютер 100 содержит центральный процессор (CPU) 101, основной блок памяти (ОЗУ) 105, ПЗУ 110, схему 115 связи, универсальный счетчик-таймер 120, порт 125 ввода/вывода, логическую схему 130 ИЛИ, источник 135 сигнала сброса системы, схему 140 генерации синхроимпульсов, схему 145 счетчика таймера, дополнительный таймер 150, сторожевую схему 155, схему детектирования незаконной команды и схему детектирования неправильного внешнего доступа 160, шину 165 сброса системы и процессорную шину 170.
Источник 135 сигнала сброса системы функционирует с возможностью, в качестве реакции на событие включения питания и т.п., генерировать сигнал сброса системы и посылать этот сигнал сброса системы через шину 165 сброса системы. Сигнал сброса системы является сигналом для сброса всего микрокомпьютера. Сигнал сброса системы используется для сброса не только CPU 101, но также и других компонентов, таких как порт 125 ввода/вывода, схема 115 связи и универсальный счетчик-таймер 120.
Каждая из сторожевой схемы 155 и схемы детектирования незаконной команды и схемы детектирования неправильного внешнего доступа 160 функционирует с возможностью определять, работает ли CPU 101 нормально. Затем, когда определено, что CPU 101 не работает нормально, сторожевая схема 155 или схема детектирования незаконной команды и схема детектирования неправильного внешнего доступа 160 функционирует с возможностью посылать сигнал сброса системы к центральному процессору 101, схеме 115 связи и другие через шину 165 сброса системы для сброса всего микрокомпьютера 100.
Схема 140 генерации синхроимпульсов является схемой для генерации синхросигнала системы. Схема 145 счетчика таймера является схемой для генерации первого сигнала обработки (сигнала запроса прерывания) и второго сигнала обработки (сигнала сброса CPU). Логическая схема 130 ИЛИ является схемой для препятствования посылке сигнала сброса CPU от схемы 145 счетчика таймера к шине 165 сброса системы таким образом, чтобы дать возможность сигналу сброса CPU быть поданным только к CPU 101. Логическая схема ИЛИ выполнена с возможностью подачи на нее сигнала сброса CPU и сигнала сброса системы в качестве входного сигнала. Таким образом, сигнал сброса CPU не подается к любым компонентам, отличным от CPU 101, таким как схема 115 связи и универсальный счетчик-таймер 120. CPU 101 является схемой для осуществления управлений и операций для микрокомпьютера 100.
Фиг.2 является блок-схемой, более конкретно иллюстрирующей схему 140 генерации синхроимпульсов, схему 145 счетчика таймера и CPU 101 на фиг.1. CPU 101 содержит CPU регистр 235. Схема 140 генерации синхроимпульсов содержит генератор 210 синхроимпульсов и делитель 215 частоты. Схема 145 счетчика таймера содержит счетчик 220, дополнительный таймер 225, компаратор 230, регистр 255, триггерную схему 240 сигнала сброса CPU, триггерную схему 245 сигнала запроса прерывания и триггерную схему 250 сброса системы.
CPU 101 подключен к каждому из регистра 255 и триггерной схемы 250 сброса системы через процессорную шину 170. Генератор 210 синхроимпульсов является схемой для генерации синхросигнала системы.
Синхросигнал, генерируемый генератором 210 синхроимпульсов, т.е. первый синхросигнал, подается к центральному процессору 101 и делителю 215 частоты. Делитель 215 частоты функционирует с возможностью преобразовывать первый синхросигнал во второй синхросигнал, имеющий соответствующую частоту. Затем делитель 215 частоты функционирует с возможностью подавать второй синхросигнал к счетчику 220.
Счетчик 220 функционирует с возможностью подсчета второго синхросигнала. Второй синхросигнал подсчитывается, пока значение подсчета второго синхросигнала не достигнет значения подсчета верхнего предела. Как используется здесь, термин «значение подсчета второго синхросигнала» означает значение, полученное посредством подвергания второго синхросигнала подсчету счетчиком 220. Счетчик 220 функционирует с возможностью, когда значение подсчета второго синхросигнала достигает значения подсчета верхнего предела, генерировать сигнал сброса CPU с настройкой триггерной схемы 240 сигнала сброса CPU, и, после нескольких синхросигналов, достаточных для сброса CPU, сбрасывать триггерную схему 240 сигнала сброса CPU. Счетчик 220 функционирует с возможностью, после того, как значение подсчета второго синхросигнала достигает значения подсчета верхнего предела, для сброса значения подсчета второго синхросигнала и возобновления подсчета. В другом варианте осуществления, микрокомпьютер может быть выполнен таким образом, что CPU 101 устанавливает значение подсчета верхнего предела во время обработки инициализации и т.д. Даже в ситуации, когда значение подсчета второго синхросигнала изменяется из-за влияния электрического шума и т.п., счетчик 220, который является автономным счетчиком, никогда не останавливает подсчет второго синхросигнала.
В другом варианте осуществления, генератор 210 синхроимпульсов может быть выполнен с возможностью подачи первого синхросигнала к счетчику 220 без использования делителя 215 частоты. В этом случае, в качестве синхросигнала, счетчик 220 использует первый синхросигнал вместо второго синхросигнала.
Триггерная схема 240 сигнала сброса CPU функционирует с возможностью формировать форму сигнала сброса CPU, принятого от счетчика 220, в импульсный сигнал, имеющий короткую ширину импульса, и подачи этого импульсного сигнала к центральному процессору 101. В другом варианте осуществления, в случае, когда счетчик 220 способен сгенерировать сигнал сброса CPU в форме импульсного сигнала, имеющего короткую ширину импульса, микропроцессор может быть выполнен таким образом, что счетчик 220 подает сигнал сброса CPU непосредственно к центральному процессору 101 без прохождения через триггерную схему 240 сигнала сброса CPU.
После включения питания и т.п. сигнал сброса системы подается к центральному процессору 101 через шину 165 сброса системы. CPU 101 функционирует с возможностью, в качестве реакции на прием сигнала сброса системы, сбрасывать триггерную схему 250 сброса системы. В другом варианте осуществления, микрокомпьютер может быть выполнен таким образом, что, после включения питания и т.п., источник 135 сигнала сброса системы сбрасывает триггерную схему 250 сброса системы через шину сброса системы. В другом варианте осуществления, CPU 101 может быть выполнен с возможностью подачи сигнала сброса системы к схеме 145 счетчика таймера для сброса всех или части компонентов схемы 145 счетчика таймера.
Впоследствии, во время обработки инициализации, CPU 101 функционирует с возможностью установки триггерной схемы 250 сброса системы. Счетчик 220 выполнен с возможностью предотвращения подсчета второго синхросигнала, когда триггерная схема 250 сброса системы находится в режиме сброса. Счетчик 220 выполнен с возможностью запуска подсчета второго синхросигнала, когда триггерная схема 250 сброса системы установлена через обработку инициализации.
Во время обработки инициализации, CPU 101 функционирует с возможностью подачи некоторого сравнительного значения, которое является заданным числовым значением, в регистр 255 через процессорную шину 170. Регистр 255 функционирует с возможностью сохранения в нем этого сравнительного значения.
Компаратор 230 функционирует с возможностью сравнения значения подсчета второго синхросигнала со сравнительным значением, хранимым в регистре 255. Компаратор 230 функционирует с возможностью, когда значение подсчета второго синхросигнала совпадает со сравнительным значением, для генерации сигнала запроса прерывания и подачи этого сигнала запроса прерывания к триггерной схеме 245 сигнала запроса прерывания.
Триггерная схема 245 сигнала запроса прерывания функционирует с возможностью настройки сигнала запроса прерывания, принятого от компаратора 230, в импульсный сигнал, имеющий короткую ширину импульса, и подачи этого импульсного сигнала к центральному процессору 101. В другом варианте осуществления, в случае, когда компаратор 230 способен генерировать сигнал запроса прерывания в форме импульсного сигнала, имеющего короткую ширину импульса, микрокомпьютер может быть выполнен таким образом, что компаратор 230 подает сигнал запроса прерывания непосредственно к CPU 101 без прохождения через триггерную схему 245 сигнала запроса прерывания.
В другом варианте осуществления, счетчик 220 может содержать дополнительный таймер 225. Дополнительный таймер 225 имеет функцию таймера, подлежащую помещению в активное состояние только на заданное время. Когда функция таймера находится в активном состоянии, дополнительный таймер 225 функционирует с возможностью управления счетчиком 220 для препятствования подаче счетчиком 220 сигнала сброса CPU к триггерной схеме 240 сигнала сброса CPU. В другом варианте осуществления, дополнительный счетчик 225 может быть выполнен, когда функция таймера находится в активном состоянии, с возможностью сброса триггерной схемы 240 сигнала сброса CPU для препятствования подаче триггерной схемой 240 сигнала сброса CPU к CPU 101.
ПЕРВЫЙ ВАРИАНТ ОСУЩЕСТВЛЕНИЯ
Работа схемы на фиг.2 будет описана ниже.
Сначала, после события включения питания, источник 135 сигнала сброса системы сбрасывает счетчик 220 и все триггерные схемы 240, 245 и 250 в схеме 145 счетчика таймера. В другом варианте осуществления, микрокомпьютер может быть выполнен таким образом, что триггерная схема 250 сброса системы сбрасывается посредством CPU 101. После события включения питания, CPU 101 выполняет обработку инициализации. Во время обработки инициализации, CPU 101 сначала устанавливает соответствующее сравнительное значение в регистр 255.
Сравнительным значением является значение, подлежащее использованию, когда компаратор 230 генерирует сигнал запроса прерывания. Компаратор 230 сравнивает значение подсчета второго синхросигнала со сравнительным значением и, когда они совпадают друг с другом, генерирует сигнал запроса прерывания. Затем CPU 101 принимает сигнал запроса прерывания и выполняет обработку прерывания. Таким образом, обработка прерывания выполняется во время истечения периода времени (времени сравнения) после начала подсчета второго синхросигнала до тех пор пока значение подсчета второго синхросигнала не достигнет сравнительного значения. Это означает, что сигнал прерывания генерируется в заданные временные интервалы. Затем CPU 101 принимает сигнал прерывания в заданные временные интервалы и выполняет обработку прерывания. Временем сравнения является время, требуемое для подсчета второго синхросигнала, пока значение подсчета второго синхросигнала не достигнет сравнительного значения, и получается посредством следующей формулы: (время цикла второго синхросигнала)×(сравнительное значение).
Как используется здесь, термин «обработка прерывания» является обработкой, имеющей более высокий приоритет обработки, чем приоритет обработки прикладной программы. Затем, когда обработка прерывания запускается, CPU 101 прерывает прикладную программу и начинает обработку прерывания.
Триггерная схема 250 сброса системы сбрасывается посредством CPU 101 или источника 135 сигнала сброса системы, только когда сигнал сброса системы генерируется во время включения питания микрокомпьютера 100 и т.п. Впоследствии, во время обработки инициализации, CPU 101 настраивает триггерную схему 250 сброса системы. Как раз после того, как триггерная схема 250 сброса системы настроена, счетчик 220 начинает подсчет второго синхросигнала. Причина, по которой не обеспечивается средство сброса, основанное на программном обеспечении, заключается в необходимости предотвращения сброса триггерной схемы 250 сброса системы в случае фатальной ошибки в CPU. В случае, когда гарантируется, что триггерная схема 250 сброса системы работает без сброса в случае фатальной ошибки в CPU, может быть обеспечено основанное на программном обеспечении средство для сброса триггерной схемы 250 сброса системы.
Компаратор 230 сравнивает значение подсчета второго синхросигнала со сравнительным значением, хранимым в регистре 255. Другими словами, компаратор 230 выясняет, истекло ли время сравнения после начала или возобновления подсчета второго синхросигнала. Когда значение подсчета второго синхросигнала и сравнительное значение совпадают друг с другом, компаратор 230 генерирует сигнал прерывания с настройкой триггерной схемы 245 сигнала запроса прерывания и, после нескольких тактовых импульсов, сбрасывает триггерную схему 245 сигнала запроса прерывания. Триггерная схема 245 сигнала запроса прерывания формирует форму сигнала запроса прерывания в импульсный сигнал, имеющий короткую ширину импульса. Сигнал запроса прерывания, сформированный в импульсный сигнал, подается к CPU 101.
В другом варианте осуществления, в случае, когда компаратор 230 способен генерировать сигнал запроса прерывания в форме импульсного сигнала, имеющего короткую ширину импульса, микрокомпьютер может быть выполнен таким образом, что компаратор 230 подает сигнал запроса прерывания непосредственно в CPU 101 без прохождения через триггерную схему 245 сигнала запроса прерывания. В качестве реакции на прием сигнала запроса прерывания, CPU 101 выполняет обработку прерывания.
Счетчик 220 выясняет, достигло ли значение подсчета второго синхросигнала значения подсчета. Другими словами, счетчик 220 выясняет, истекло ли время счетчика верхнего предела после начала или возобновления подсчета второго синхросигнала. Временем счетчика верхнего предела является время, необходимое для подсчета второго синхросигнала, пока значение подсчета второго синхросигнала не достигнет значения подсчета верхнего предела, и получается посредством следующей формулы: (время цикла второго синхросигнала)×(значение подсчета верхнего предела).
Когда выяснено, что значение подсчета второго синхросигнала достигло значения подсчета верхнего предела, счетчик 220 генерирует сигнал сброса CPU с настройкой триггерной схемы 240 сигнала сброса CPU. Триггерная схема 240 сигнала сброса CPU формирует форму сигнала сброса CPU в импульсный сигнал, имеющий короткую ширину импульса. Сигнал сброса CPU, сформированный в импульсный сигнал, подается к CPU 101.
В другом варианте осуществления, в случае, когда счетчик 220 способен генерировать сигнал сброса CPU в форме импульсного сигнала, имеющего короткую ширину импульса, микропроцессор может быть выполнен таким образом, что счетчик 220 подает сигнал сброса CPU в CPU 101 без прохождения через триггерную схему 240 сигнала сброса CPU.
В качестве реакции на прием сигнала сброса CPU, CPU 101 выполняет обработку сброса CPU. Триггерная схема 240 сигнала сброса CPU сбрасывается, например, посредством счетчика 220, через короткое время после настройки.
Следующее описание будет сделано о периоде времени от начала до конца выполнения обработки прерывания, подлежащей выполнению в качестве реакции на прием сигнала запроса прерывания (времени выполнения обработки прерывания). В этом варианте осуществления, время сравнения является меньшим, чем время счетчика верхнего предела. Далее, обработка прерывания выполняется, когда время, истекшее от времени начала или возобновления подсчета второго синхросигнала счетчиком 220, достигает времени сравнения. Обработка сброса CPU выполняется, когда время, истекшее от начала или возобновления подсчета, достигает времени счетчика верхнего предела. Обработка прерывания должна быть завершена перед выполнением обработки сброса CPU. Причина будет описана позже. Следовательно, время, полученное посредством вычитания времени сравнения из времени счетчика верхнего предела, должно быть больше, чем время выполнения обработки прерывания. Более конкретно, в предположении, что время, требуемое для обработки прерывания, составляет 50 микросекунд, время, полученное посредством (время счетчика верхнего предела)-(время сравнения), должно быть большим, чем 50 микросекунд. Таким образом, в предположении, что время счетчика верхнего предела составляет 5 миллисекунд, время сравнения должно быть меньшим, чем 4950 микросекунд. Предпочтительно, время выполнения обработки прерывания установлено на значение, которое находится в диапазоне около 2-5% времени верхнего предела счетчика 220.
ВТОРОЙ ВАРИАНТ ОСУЩЕСТВЛЕНИЯ
Схема 145 счетчика таймера может дополнительно содержать дополнительный таймер 225. Во время обработки прерывания, дополнительный таймер 225 запускается, например, посредством CPU 101. Когда сигнал сброса CPU генерируется (время, истекшее от начала или возобновления подсчета, достигает времени счетчика верхнего предела), дополнительный таймер 225 функционирует с возможностью препятствования генерации или выводу сигнала сброса CPU. Конкретно, дополнительный таймер 225 функционирует с возможностью подачи, к триггерной схеме 240 сигнала сброса CPU, сигнала препятствования сброса CPU, который является сигналом для препятствования настройке триггерной схемы 240. В другом варианте осуществления, дополнительный таймер 225 может быть выполнен с возможностью управления счетчиком 220 для препятствования генерации счетчиком 220 сигнала сброса CPU. Микрокомпьютер 100 согласно второму варианту осуществления выполнен таким образом, что обработка сброса CPU выполняется нерегулярно, так что становится возможным уменьшить нагрузку на CPU 101 и другие, по сравнению с микрокомпьютером 100 согласно первому варианту осуществления.
Фиг.3 является блок-схемой, иллюстрирующей работу микрокомпьютера 100 согласно первому варианту осуществления. Сначала микрокомпьютер 100 включается (этап S305). Затем микрокомпьютер 100 инициализируется во время обработки инициализации (этап S310). После завершения инициализации счетчик 220 подсчитывает синхросигнал, подаваемый в него (этап S315).
Компаратор 230 определяет, достигло ли значение подсчета синхросигнала сравнительного значения (этап S320). Это значение подсчета синхросигнала является значением, полученным посредством подвергания синхросигнала подсчету счетчиком 220. Когда значение подсчета синхросигнала не достигло сравнительного значения, компаратор 230 удерживается в состоянии резервирования, пока значение подсчета синхросигнала не станет равным сравнительному значению. Когда значение подсчета синхросигнала достигает сравнительного значения, компаратор 230 генерирует сигнал запроса прерывания и подает сигнал запроса прерывания в CPU 101 (этап S325).
В качестве реакции на прием сигнала запроса прерывания, CPU 101 останавливает прикладную программу, которая выполняется, и выполняет обработку прерывания (этап S330). Эта обработка прерывания будет подробно описана позже.
После завершения обработки прерывания, счетчик 220 удерживается в состоянии резервирования, пока значение подсчета синхросигнала не достигнет значения подсчета верхнего предела (этап S335). Когда значение подсчета синхросигнала достигает значения подсчета верхнего предела, счетчик 220 генерирует сигнал сброса CPU и подает сигнал сброса CPU в CPU 101 (этап S340). Далее, счетчик 220 сбрасывает значение подсчета синхросигнала и возобновляет подсчет синхросигнала.
В качестве реакции на прием сигнала сброса CPU, CPU 101 выполняет обработку сброса CPU (этап S345). Обработка сброса CPU будет подробно описана позже.
Фиг.4 является блок-схемой, иллюстрирующей работу микрокомпьютера 100 согласно второму варианту осуществления. Блок-схема на фиг.4 частично идентична блок-схеме на фиг.3. Конкретно, этапы S405, S410, S415, S420, S425, S430, S450, S455 и S460 на фиг.4 соответствуют соответствующим этапам S305, S310, S315, S320, S325, S330, S335, S340 и S345 на фиг.3.
Другими словами, блок-схема на фиг.4 эквивалентна блок-схеме, образованной путем добавления этапов S445, S450 и S455 к блок-схеме на фиг.3. Следовательно, различие между фиг.3 и 4 будет прежде всего описано ниже. CPU 101 приобретает информацию от CPU регистра 235 (этап S435). CPU 101 определяет, является ли или нет приобретенная информация нормальной (этап S440). То, является ли или нет информация из CPU регистра 235 нормальной, может быть определено на основе того, попадает ли значение в CPU регистре в пределы нормального диапазона, или является ли она адекватной.
Когда определено, что приобретенная информация не является нормальной, будут выполняться этапы S450, S455 и S460, соответствующие соответствующим этапам S335, S340 и S345 в блок-схеме фиг.3. Когда определено, что приобретенная информация является нормальной, дополнительный таймер 225 препятствует выводу сигнала сброса CPU (этап S445). Альтернативно, CPU 101 может быть выполнен с возможностью активации дополнительного таймера 225. В этом случае, в случае фатальной ошибки в CPU 101, дополнительный таймер 225 не активируется, так что дополнительный таймер 225 становится не способным препятствовать выводу сигнала сброса CPU. Таким образом, сигнал сброса CPU подается в CPU, и выполняется обработка сброса CPU. В качестве примера случая, когда дополнительный таймер 225 не активируется, может быть допущена ситуация, в которой, из-за возникновения фатальной ошибки в CPU 101, CPU 101 терпит неудачу в принятии обработки прерывания для активации дополнительного таймера 225.
Фиг.5 является блок-схемой, иллюстрирующей работу обработки прерывания. Выполнение обработки прерывания запускается, когда CPU 101 принимает сигнал запроса прерывания (см. этапы S325 и S330 на фиг.3 или этапы S425 и S430 на фиг.4). Сначала CPU 101 сохраняет в ОЗУ 105 информацию, приобретенную из CPU регистра 235 во время запуска обработки прерывания (во время остановки прикладной программы) (этап S505). Затем CPU 101 определяет, является ли или нет работа обработки прерывания нормальной (этап S510).
То, является ли или нет работа нормальной, определяется путем принуждения CPU 101 выяснять, что специфическая информация, хранимая в ОЗУ 105, является корректной. Например, CPU 101 может функционировать с возможностью, во время обработки инициализации, предварительно сохранять по меньшей мере одно заданное значение в ОЗУ 105, и затем во время обработки прерывания выяснять, что это значение не изменено. В этом случае, до тех пор пока CPU 101 работает нормально, заданное значение не изменяется, за исключением изменения через обработку инициализации. С другой стороны, в случае фатальной ошибки в CPU 101, например, из-за работы CPU 101 с ошибкой, заданное значение может быть изменено. Таким образом, изменение в заданном значении означает возникновение фатальной ошибки.
Более конкретно, CPU 101 может функционировать с возможностью, во время предыдущей обработки прерывания, приобретать информацию из CPU регистра 235 во время запуска предыдущей обработки прерывания и сохранять информацию, приобретенную из ОЗУ 105, в качестве информации восстановления, и, затем во время текущей обработки прерывания, сравнивать информацию, приобретенную из CPU регистра 235 во время запуска текущей обработки прерывания и сохраненную в ОЗУ 105, с информацией восстановления, приобретенной во время запуска предыдущей обработки прерывания и сохраненной в ОЗУ 105, определять, являются ли или нет заданные данные нормальными.
CPU 101 может функционировать с возможностью выяснять, находится ли или нет заданный флаг в состоянии «включено», для определения того, являются ли или нет заданные данные нормальными. В качестве примера заданного флага, в ОЗУ 105 может быть обеспечен флаг конца обработки прерывания. CPU 101 функционирует с возможностью, когда флаг конца обработки прерывания находится в состоянии «включено», определять, что информация, хранимая в ОЗУ 105, является корректной. В случае использования флага конца обработки прерывания, CPU 101 функционирует с возможностью, как раз после этапа S510, устанавливать флаг конца обработки прерывания в этап «выключено», и, в конце обработки прерывания, возвращать флаг конца обработки прерывания в этап «включено». Таким образом, в ситуации, когда фатальная ошибка возникает во время выполнения предыдущей обработки прерывания, CPU 101 функционирует с возможностью определения того, что специфическая информация, хранимая в ОЗУ 105, не является корректной, так как флаг конца обработки прерывания находится в состоянии «выключено», на этапе S510 во время текущей обработки прерывания.
CPU 101 может функционировать с возможностью, во время предыдущей обработки прерывания, сохранять информацию, приобретенную из CPU регистра 235, и/или заданного флага, в двух или нескольких областях ОЗУ 105, вместо одной области ОЗУ 105, и, затем во время текущей обработки прерывания, для выяснения того, не изменились ли две или несколько информаций и/или два или несколько заданных флагов, сохраненных в ОЗУ 105 во время предыдущей обработки прерывания. CPU 101 функционирует с возможностью, когда две или несколько информаций и/или два или несколько заданных флагов не изменяются, определять, что заданные данные являются нормальными. Это делает возможным более точно определить, являются или нет заданные данные нормальными. В качестве примера, элемент информации или флаги, подлежащие сохранению, могут быть установлены на три. В этом случае, даже если одна из трех информаций или флагов изменяется иначе, CPU 101 может использовать оставшиеся две информации или флаги как корректные. Таким образом, даже в ситуации, когда данные в ОЗУ 105 частично разрушены, CPU 101 может определить, являются ли или нет заданные данные нормальными. Вышеприведенные примеры этого определения предложены в качестве иллюстрации, и любые другие подходящие способы могут также использоваться для осуществления этого определения.
Когда работа обработки прерывания является нормальной, CPU 101 определяет, является ли или нет информация, приобретенная из CPU регистра 235 во время начала обработки прерывания и сохраненная в ОЗУ 105, нормальной (этап S515). То, является ли или нет информация, приобретенная из CPU регистра 235 во время начала обработки прерывания, нормальной, может быть определено, например, на основе того, попадает ли некоторое значение этой информации из CPU регистра 235 в пределы нормального диапазона или является адекватным.
Когда определено, что информация, приобретенная из CPU регистра 235 во время начала обработки прерывания, является нормальной, CPU 101 сохраняет эту информацию из CPU регистра 235 в другой области ОЗУ 105 в качестве информации восстановления (этап S520). В другом варианте осуществления, CPU 101 может функционировать с возможностью копирования информации восстановления, уже сохраненной в ОЗУ 105 во время предыдущей обработки прерывания, в другую ячейку ОЗУ 105 таким образом, чтобы управлять записью предыстории информации восстановления. В еще одном варианте осуществления, в случае использования флага конца обработки прерывания, CPU 101 может функционировать с возможностью устанавливать флаг конца обработки прерывания в этап «включено».
На этапе S510, когда определено, что работа обработки прерывания не является нормальной, CPU 101 определяет, является ли или нет информация, сохраненная в ОЗУ 105, нормальной (этап S525). Это определение на этапе S525 осуществляется с использованием вышеупомянутой специфической информации, сохраненной в ОЗУ 105, и т.д.
На этапе S525, когда определено, что информация, сохраненная в ОЗУ 105, не является нормальной, выполняется сброс системы для сброса всего микрокомпьютера 100 (этап S530). После завершения сброса системы любая обработка после этапа S530 отменяется, и микрокомпьютер 100 инициализируется. В еще одном варианте осуществления, этап S530 может быть выполнен с возможностью позволять, чтобы любой компонент, невосприимчивый к фатальной ошибке в CPU, такой как порт 125 ввода/вывода, не сбрасывался.
На этапе S515, когда определено, что информация, сохраненная в ОЗУ 105 и регистре 235, не является нормальной, или, на этапе S525, когда определено, что информация, приобретенная из CPU регистра 235 во время начала обработки прерывания, является нормальной, CPU 101 выполняет обработку для регенерации информации в CPU регистре 235, с использованием информации восстановления, сохраненной в ОЗУ 105 в форме записи предыстории и т.д. (этап S535). В другом варианте осуществления, обработка прерывания может быть выполнена таким образом, что за этапом S535 следует этап S510. В качестве примера обработки регенерации, CPU 101 может функционировать с возможностью восстановления CPU регистра 235, с использованием информации восстановления, сохраненной в ОЗУ 105 в форме записи предыстории.
В другом варианте осуществления, обработка прерывания может состоять только из этапов S505 и S520.
Фиг.6 является блок-схемой, иллюстрирующей работу обработки сброса CPU. Выполнение обработки сброса CPU запускается, когда CPU 101 принимает сигнал сброса CPU (см. этапы S340 и S345 на фиг.3 или этапы S455 и S460 на фиг.4).
Сначала выполняется сброс CPU 101 (этап S610). Через этот сброс, информация в CPU регистре 235 очищается. Сигнал сброса CPU, служащий в качестве триггера для выполнения обработки сброса CPU (этап S345 и этап S460), конечно, обеспечивается от схемы счетчика таймера циклическим образом. Таким образом, обработка сброса CPU (этап S345 или S460) выполняется, даже если обработка прерывания (этап S330 или S430) не выполняется непосредственно перед ней. Другими словами, даже в ситуации, когда обработка прерывания не выполняется из-за возникновения фатальной ошибки в CPU 101, обработка сброса CPU выполняется, не полагаясь на обработку прерывания.
CPU 101 копирует информацию восстановления, хранимую в ОЗУ 105, в CPU регистр 235 (этап S615). Информация, скопированная в CPU регистр 235, соответствует информации, сохраненной через обработку прерывания (этап S520 на фиг.5). Таким образом, прикладная программа, которая выполнялась как раз перед выполнением обработки прерывания, может быть возобновлена без отрицательного воздействия сброса CPU 101.
В другом варианте осуществления, CPU 101 может быть выполнен с возможностью, перед копированием информации восстановления в CPU регистр 235, проверять, является ли некоторое значение информации восстановления нормальным или адекватным. В этом случае, если это значение информации восстановления не является нормальным или адекватным, может быть выполнен сброс системы.
Когда CPU 101 сбрасывается после возникновения фатальной ошибки в CPU 101, информация в CPU регистре 235 перезаписывается информацией восстановления, сохраненной в ОЗУ 105 через обработку на этапе S615. Таким образом, до тех пор пока на информацию восстановления не влияет фатальная ошибка в CPU 101, данное изобретение делает возможным, даже если фатальная ошибка возникает в CPU 101, восстановить CPU 101 от фатальной ошибки.
В этой связи, обработка прерывания должна быть завершена перед выполнением обработки сброса CPU, как отмечалось выше, так как когда в CPU 101 не возникает фатальной ошибки, необходимо, чтобы информация восстановления была предварительно сохранена в ОЗУ 105 (см. этап S520 на фиг.5) для осуществления возможности копирования информации восстановления из ОЗУ 105 в CPU регистр 235 на этапе S615 обработки сброса CPU, и необходимо, чтобы обработка прерывания завершилась для осуществления возможности резервирования CPU 101 для выполнения обработки сброса CPU.
В другом варианте осуществления, флаг включения выполнения обработки сброса CPU может быть сохранен в CPU регистре 235 и ОЗУ 105. В этом случае, например, когда информация восстановления сохраняется в ОЗУ 105 во время обработки прерывания, CPU 101 функционирует с возможностью установки флага включения выполнения обработки сброса CPU в состояние «включено». Затем, только когда флаг включения выполнения обработки сброса CPU находится в состоянии «включено», выполняется обработка сброса CPU. После завершения обработки сброса CPU, CPU 101 функционирует с возможностью установки флага включения выполнения обработки сброса CPU в состояние «выключено». Таким образом, в ситуации, когда, из-за возникновения фатальной ошибки в CPU, информация восстановления не обновляется в ОЗУ 105 во время обработки прерывания, становится возможным препятствовать непрерывному использованию информации восстановления, сохраненной перед фатальной ошибкой. В ситуации, когда информация восстановления не обновляется в ОЗУ 105 во время обработки прерывания, фатальной ошибки в CPU 101 можно избежать другими средствами, например посредством сброса всего микрокомпьютера 100.
В другом варианте осуществления, после сброса CPU (после этапа S610), обработка сброса CPU может дополнительно включать в себя этап регенерации этой информации восстановления, если информация восстановления, сохраненная в ОЗУ 105, не является нормальной. В этом случае, CPU 101 может определить, является ли или нет информация восстановления нормальной, например, на основе того, попадает ли некоторое значение информации восстановления в пределы нормального диапазона или является ли адекватной. В качестве примера обработки для регенерации информации восстановления, CPU 101 может функционировать с возможностью выбора нормальной информации восстановления из записи предыстории информации восстановления, сохраненной в ОЗУ 105, и копирования выбранной информации восстановления в CPU регистр 235.
В еще одном варианте осуществления, после сброса CPU (после этапа S610), обработка прерывания может дополнительно включать в себя этап выполнения сброса системы, если микрокомпьютер не работает нормально. В этом случае, то, может ли или нет микрокомпьютер работать нормально, может быть определено путем вынуждения CPU 101 выяснять, что специфическая информация, сохраненная в ОЗУ 105, является корректной. Далее, то, является ли или нет специфическая информация корректной, может быть выяснено посредством определения того, изменена ли или нет специфическая информация, подлежащая изменению только посредством обработки инициализации, посредством обработки, отличной от обработки инициализации, из-за возникновения фатальной ошибки. Альтернативно, то, может ли микрокомпьютер работать нормально или нет, может быть определено путем вынуждения CPU 101 выяснять, имеется ли или нет информация восстановления, имеющая некоторое значение, попадающее в пределы нормального диапазона, или некоторое адекватное значение, в ряде информации восстановления, сохраненной в ОЗУ 105 в качестве записи предыстории. Когда не имеется какой-либо информации восстановления, имеющей некоторое значение, попадающее в пределы нормального диапазона, или некоторое адекватное значение, определяется, что микрокомпьютер не может работать нормально.
Фиг.7 является временной диаграммой, касающейся первого варианта осуществления (см. фиг.3) в ситуации, когда CPU 101 работает нормально. В этой временной диаграмме время продвигается в порядке Т1, Т2, , Т5 и Т6. Каждое из состояний 701, 715, 730 указывает, что выполняется обработка прикладной программы. Каждое из состояний 505, 720 указывает, что выполняется обработка прерывания. Каждое из состояний 710, 725 указывает, что выполняется обработка сброса CPU.
Перед временем Т1 выполняется обработка прикладной программы (этап 701). Во время Т1 CPU 101 принимает сигнал запроса прерывания. В качестве реакции на прием сигнала запроса прерывания в качестве триггера CPU 101 останавливает обработку прикладной программы и начинает обработку прерывания (этап 705). Во время обработки прерывания CPU 101 сохраняет в ОЗУ 105 информацию, приобретенную из CPU регистра 235 во время начала обработки прерывания, в качестве информации восстановления.
Во время Т2 обработка прерывания завершается, и CPU 101 принимает сигнал сброса CPU. В качестве реакции на прием сигнала сброса CPU в качестве триггера, CPU 101 начинает обработку сброса CPU (этап 710). Во время обработки сброса CPU, CPU 101 сбрасывается. Затем CPU 101 копирует информацию восстановления, сохраненную в ОЗУ 105, в CPU регистр 235. Затем, во время Т3, CPU 101 возобновляет остановленную прикладную программу от состояния обработки во время Т1. Как и с состояниями во времена Т1, Т2, Т 3, остановка прикладной программы, обработка прерывания и обработка сброса CPU выполняются с временами Т4, Т5, Т6.
Фиг.8 является временной диаграммой, касающейся первого варианта осуществления (см. фиг.3) в ситуации, когда фатальная ошибка возникает в CPU 101. Вместе с временами Т1, Т2, Т3 выполняются обработка прикладной программы, обработка прерывания и обработка сброса CPU (состояния 801, 805, 810). Во время обработки прерывания в состоянии 805 CPU 101 сохраняет в ОЗУ 105 информацию восстановления, которая является информацией, приобретенной из CPU регистра 235 во время Т1.
Предположим, что фатальная ошибка возникает в CPU 101 во время Т4 во время выполнения обработки прикладной программы (этап 815). Из-за фатальной ошибки CPU 101 не может выполнять эту обработку нормально. Этап 820 указывает, что обработка прикладной программы не выполняется. Этап 825 указывает, что обработка прерывания не выполняется.
Во время Т6 CPU 101 принимает сигнал сброса CPU. В качестве реакции на прием сигнала сброса CPU в качестве триггера, CPU 101 начинает обработку сброса CPU (этап 830). Во время обработки сброса CPU, CPU 101 сбрасывается. Затем CPU 101 копирует информацию восстановления, сохраненную в ОЗУ 105, в CPU регистр 235. Затем, во время Т7, CPU 101 возобновляет остановленную прикладную программу от состояния обработки во время Т1 (этап 835).
Фиг.9 является временной диаграммой, касающейся второго варианта осуществления (см. фиг.4) в ситуации, когда фатальная ошибка возникает в CPU 101. Вместе с временами Т1, Т 2, выполняются обработка прикладной программы и обработка прерывания (состояния 901, 905). Во время обработки прерывания в состоянии 905, CPU 101 сохраняет в ОЗУ 105 информацию восстановления, которая является информацией, приобретенной из CPU регистра 235 во время Т1.
Во время Т2 выполняется обработка для препятствования выводу сигнала сброса CPU (этап 910). Таким образом, обработка сброса CPU не выполняется. После завершения обработки прерывания обработка прикладной программы возобновляется во время Т2 (этап 915), из-за невыполнения обработки сброса CPU.
Предположим, что фатальная ошибка возникает в CPU 101 во время Т4 во время выполнения обработки прикладной программы (этап 915). Из-за фатальной ошибки CPU 101 не может выполнять эту обработку нормально, так что обработка прикладной программы в состоянии 920 и обработка прерывания в состоянии 925 не будут выполняться, и обработка для препятствования выводу сигнала сброса CPU, которая была исполняема во время Т 2, не будет выполняться.
Во время Т 6 обработка для препятствования выводу сигнала сброса CPU не выполняется. Таким образом, CPU 101 принимает сигнал сброса CPU. В качестве реакции на прием сигнала сброса CPU в качестве триггера, CPU 101 начинает обработку сброса CPU (этап 930). Во время обработки сброса CPU, CPU 101 сбрасывается. Затем CPU 101 копирует информацию восстановления, сохраненную в ОЗУ 105, в CPU регистр 235. Затем, во время Т7, CPU 101 возобновляет остановленную прикладную программу от состояния обработки во время Т1 (этап 940).
Данное изобретение способно, в случае некоторой ошибки, такой как так называемый «уход», в CPU, восстановить CPU от фатальной ошибки путем сброса только CPU, вместо сброса всего микрокомпьютера. Это позволяет справиться с фатальной ошибкой, возникающей в CPU микрокомпьютера встроенного типа, широко используемого в промышленности, с высокими скоростями и более простым образом. В областях механотроники, роботов, игровых устройств, включающих в себя денежный игровой автомат с вертикальным пинболом и игорный автомат, управление автомобильным двигателем, управление тормозами, управление элеватором или лифтом и т.д., фатальная ошибка в CPU микрокомпьютера может вызвать аварию, опасность или денежную потерю. Таким образом, в таких областях, микрокомпьютер данного изобретения может использоваться для значительного снижения риска аварии или потери.
ОБЪЯСНЕНИЕ КОДОВ
100: микрокомпьютер
101: центральный процессор (CPU)
105: основной блок памяти (ОЗУ)
110: ПЗУ
115: схема связи
120: универсальный счетчик-таймер
125: порт ввода/вывода
130: логическая схема ИЛИ
135: источник сигнала сброса системы
140: схема генерации синхроимпульсов
145: схема счетчика таймера
150: дополнительный таймер
155: сторожевая схема
160: схема детектирования незаконной команды и схема детектирования неправильного внешнего доступа
165: шина сброса системы
170: процессорная шина
210: генератор синхроимпульсов
215: делитель частоты
220: счетчик
225: дополнительный таймер
230: компаратор
235: CPU регистр
240: триггерная схема сигнала сброса CPU
245: триггерная схема сигнала запроса прерывания
250: триггерная схема сброса системы
255: регистр
Класс G06F1/24 средства возврата в исходное положение
микроэвм - патент 2129300 (20.04.1999) | |
компьютерная система - патент 2020572 (30.09.1994) |