Функциональный контроль процессоров в системах на кристалле



Стаття | Article    

Download

Предложен метод обеспечения функционального контроля процессоров на программно-аппаратном уровне за счет проверки правильности прохождения участков программы. Метод обеспечивает малую задержку реализации вычислительных процессов и может быть использован для контроля хода произвольных программ.

Ключевые слова: система на кристалле, контроль хода программы, контроль процессора.

Processor functional control in systems on chip

Method of processor functional control maintenance on software and hardware level by means of program region flow correctness checkis proposed. The method permits small delays during computing process realization and can be used for control of any program flow.

Key words: system on chip, program flow control, processor control.

Zhabin V.I., Doс. of Sc., Prof.

Dept. of Computer Engineering

NTUU “Igor Sikorsky Kyiv Polytechnic Institute”

Kyiv, Ukraine

Важным требованием к вычислительным системам, работающим в контуре управления процессами в реальном времени, является высокая надежность и быстродействие. В ряде случаев для обеспечения требуемого времени обработки информации, которое обусловлено внешними факторами, необходимо использовать мультипроцессорные системы. Достижения в области интегральной технологии позволяют создавать параллельные системы CSoС (Configurable System on Chip – конфигурируемая система на кристалле), которые реализуются на ПЛИС с использованием интерактивных средств разработки. В общем случае микросхемы содержат вычислительные ядра, память и программируемую логику,что дает потенциальную возможность оптимально адаптировать аппаратные средства к конкретному применению.

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

Методы контроля разделяют на программные, аппаратные и комбинированные [2]. Среди различных методов необходимо выделить такие, которые не могут применяться в качестве функциональных методов, поскольку они связаны с разрушением информации или частичным демонтажем системы. К таким методам можно отнести методы эмуляции, некоторые методы сигнатурного анализа и программного тестирования, приводящего к потере информации в системе [2, 3]. Конечно,процессор может выполнять в цикле управления тестовую программу, если на это имеется оперативный запас времени. Однако выполнение тестовых программ может привести к превышению допустимой длительности цикла управления.

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

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

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

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

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

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

Рис. 1. Структура процессорного модуля

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

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

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

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

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

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

Эффективность средств встроенного функционального контроля определяется несколькими факторами:

$-$ степенью достоверности контроля функционирования процессора;

$-$ затратами времени и ресурсов вычислительной системы на проведение функционального контроля.

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

Если удается сформировать достаточно длинный линейный участок, то доля специально включенных для обеспечения контроля команд относительно невелика. Действительно, при формировании квазилинейного участка при каждом ветвлении добавляется одна команда для коррекции контрольного слова.Если считать, что каждая альтернативная ветвь равновероятна, то число добавочных команд будет равно $γ/2$, где $γ$ – частота команд ветвления в программах. Например, при $γ$ = 0,1-0,2 число добавочных команд будет составлять 5-10%.

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

Перечень ссылок

$1.$ Додонов А.Г. Введение в теорию живучести и вычислительных систем / А.Г. Додонов, Н.Г. Кузнецова, Е.С. Горбачик. – Киев: Наук.думка, 1990. – 184 с.

$2.$ Каган Б.Н. Мкртумян И.Б. Основы эксплуатации ЭВМ/ Б.Н. Каган, И.Б. Мкртумян. – М.: Энергоатомиздат, 1988. – 492 с.

$3.$ Гуляев В.А. Организация систем диагностирования вычислительных машин / В.А. Гуляев. – Киев: Наук. думка, 1979. – 116 с.

$4.$ Ушаков Г.Н. Аппаратный контроль и надежность спецЭВМ / Г.Н.Ушаков. – М.: Сов. радио, 1988. – 253 с.

$5.$ Фараджев В.А. Комплекс аппаратных средств для отладки программ реального времени / В.А. Фараджев // УсиМ. – 1980. – №1. – С. 49-51.

May 20, 2017