Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
to_evs_1.doc
Скачиваний:
6
Добавлен:
15.04.2019
Размер:
409.09 Кб
Скачать

Преобразование.

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

Программные методы контроля:

  1. счет в 2-3 руки — т.е. повторный просчет со сравнением результатов. Основной недостаток — время выполнения значительно возрастает. Программные тестовые методы выполняются с переменными кодами (с изменяющимися) или постоянными кодами. В основе методов — решение контрольной задачи — заранее известные операнды — константы преобразуются на оборудовании и результат сравнивается с третьей константой (правильным результатом). При совпадении, выносится решение об отсутствии ошибок преобразования.

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

Аппаратное обнаружение.

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

Использование двухпроводной логики (например, активный низкий 1). Любое устремление выполнить контроль аппаратно приводит к дополнительному оборудованию, но часто это оправдано. Наиболее ярким примером такого подхода считается резервирование.

Контроль выполнения преобразований.

Контроль выполнения логических операций — сумма по модулю. При формировании управляющего сигнала применяют преобразования с целью сравнения истинного результата и контрольного. Число схем совпадений (сумма по модулю) может быть больше в каждой линии выхода (2 или 3). Часто прямое преобразование требует значительных затрат, тогда променяют обратные преобразования с целью восстановления входного сигнала из выходного. Иногда вместо дублирования схемы прямого преобразования формируется специальная свертка (контрольный разряд). Сравнение результата и выхода с генератора также по комбинационной схеме. Учет особенностей результата — появление 1 или 0 в конкретных разряда. Этот метод искусственный, он не формализуется, поэтому решение о его принятии вносит разработчик. Любые схемы контроля встраиваемые в процессор, увеличивают аппаратную сложность и стоимость, уменьшают надежность работы устройства.

К онтроль арифметических операций проводят по тем же методам, что и логических. При контроле последовательностных схем используют специальные аппаратные средства — сигнатурные анализатора. Сигнатурные анализаторы построены на сравнении результата — комбинации 1 и 0 со сверткой — сигнатурой. В каждом разряде запоминается последовательность 1 и 0 за конкретный интервал времени. Реализация записывается в кольцевой сдвиговый регистр. Циклически сдвигая содержимое регистра объединяют определенные разряды по модулю 2. В результате на выходах схем объединения формируется свертка — сигнатура. Если она совпадает с контрольной, ошибки нет, в противном случае ошибка. Сигнатурные анализаторы встраиваются в рабочие схемы и по результату сравнения: контрольная сигнатура — рабочая, выносится решение об ошибке. Диагностика проводится программно или аппаратно. Аппаратная диагностика — все основные узлы охвачены схемами контроля. И если какая-либо из схем контроля дает ошибку по ее номеру (выходу) выносится решение о неисправности этого узла. Т.е. диагностика это не только обнаружение ошибки, но и определение неисправного узла в блоке. Программные методы диагностики основаны на контроле с помощью отдельных диагностических программ определенных узлов блоков. Любая диагностическая программа выявляет наличие ошибки. Программа отвечает на вопрос: появится ли ошибка при работе этой программы. Если ошибка появилась узел (блок) неисправен. Если ошибка не появилась — программа не выявила ошибки. Среди программных методов диагностики наиболее известным подходом является циклическое выполнение операции (например, записи 1 или 0 в соседние ячейки памяти). При этом полярность сигнала постоянно изменяется. «Шахматный тест» памяти предусматривает «шахматное поле» куда периодически записываются 0 и 1, далее сдвиг информации на одну ячейку и так несколько раз. Любая диагностическая программа прокручивается не один раз в устройстве и решение выносится по результату всех испытаний.

Арифметические и логические операции процессора.

Обычно перечень арифметических и логических операций у процессора не велик. В их основе операции сложения, быстрого сложения на матрицах сумматоров, умножение и деление. Из логических операций — конъюнкция, дизъюнкция, сумма по модулю 2, инверсия. Арифметические операции предназначены для преобразования одного или пары операндов. Результат — третий операнд. Обычно операнды имеют разрядность n (2, 4, 8, 16, 32, 64), но любой вычислитель позволяет последовательно обрабатывать операнды с разрядностью кратной n. Время операции возрастает, но вычислитель тот же самый. Поскольку двоичные числа могут быть представлены в различном формате (целые коды, со знаком, без знака, фиксированная или плавающая запятая), то вычислитель не изменяется, изменяются правила учета разрядов результата. По результату любой арифметической операции формируются признаки: признак выходного переноса С, признак нулевого результата Z, признак старшего разряда S, признак переполнения OVR. Арифметическая операция это операция над всем n разрядным кодом, всеми его разрядами от нулевого до старшего. При выполнении операций над числами с кратной разрядностью следует учитывать формат представления операндов и соответственно каждый признак рассматривать с учетом значения операнда. Например, при двойной длине младшая часть может дать признаки нуля и переноса. В старшей части возможен анализ всех четырех признаков, но если формат без знака анализировать S и OVR нет смысла. Связь результата и признаков операции всегда по здравой логике. Логические операции выполняются поразрядно, т.е. каждый разряд одного операнда комбинирует с соответствующим разрядом второго операнда согласно выбранной функции. Эти операции позволяют установить нулевые уровни в конкретных разрядах, выделить, определить значения того или иного разряда при приеме параллельного кода, т.е. логические операции применяют для формирования управляющих сигналов. Признаки, формируемые при логических операциях, также следует рассматривать применительно к задачам. Операнды двойной длины при логических операциях не имеют смысла.

Программирование микропроцессорных систем. Языки программирования. Последовательность написания программ.

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

  1. машинные коды. Использование машинных кодов требует от разработчика знания не только команд, форматов команд, но и всех ресурсов вычислителя: основных регистров, их взаимосвязи, условных, безусловных переходов, обращений к подпрограммам и т.д.. Работая в машинных кодах необходимо мысленно представлять источники\номера регистров, их разрядность, приемник — регистр, имя и набор возможных операций над операндами. Разработчик мысленно перемещает содержимое регистров источников в приемник, при этом анализируя признаки результата операции. Программирование в кодах требует знания форматов команд и способов адресации. Отсюда желательно иметь справочный материал с форматами команд, их обозначением и возможностью переходов. Основной недостаток этого подхода — трудоемкость. Поэтому объем таких программ небольшой, порядка 0.5-1К. Помимо трудоемкого написания программ в кодах требует работы с физическими адресами: все переходы определятся реальными цифрами. Любое включение дополнительной команды приводит к изменению адресов и требует переписывать последующие команды по новым адресам. Поэтому при написании программ рекомендуют оставлять незаполненными периодически часть ячеек памяти. Такая поблочная технология сокращает трудозатраты при исправлениях. В конце, когда программа отлажена, оставшиеся пустые ячейки можно исключить, переписав по новым адреса программу. Программы в кодах обладают лучшими динамическими параметрами. Время выполнения минимально. Дискретизация времени также наилучшая.

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

  3. Языки высокого уровня составляют основной инструмент при разработке больших программ. Пишутся процедуры преобразования данных на высоком языке. После проверки работы программы написанный файл транслируется в объектные коды. Трансляция производится под управлением соответствующей программы. Эти программы имеют различные возможности по поиску ошибок, логических и синтаксических, неверных ссылок и т.д. При написании управляющих программ, в которых имеются процедуры формирования сигналов управления в заданные моменты времени возникает «неопределенность» во времени. Временные интервалы как бы расплываются, нечеткие по отношению к началу программы. Поэтому такие процедуры рекомендуют вставлять в текст программы и писать их на ассемблере (в кодах). Оттранслированная программа заметно превышает по объему ассемблерный файл. Причина — все обслуживающие программы: прерывания, регенерация, контроль транслируются объектную программу. Поэтому такой способ всегда приводит к получению неоптимальной по объему объектной программы, но трудозатраты минимальны. Для отладки и написания программы применяют дополнительное оборудование, средства отладки. В качестве них могут быть использованы одноплатные простые вычислители, универсальные ЭВМ с той же системой команд или быстродействующие ЭВМ, позволяющие транслировать различные программные модули.

Основные рекомендации по программированию:

  1. Любая разрабатываемая программа должна быть оформлена как набор программных модулей. Каждый модуль отлаживается отдельно, затем стыкуется.

  2. При написании программ формирующих временное окно (управляющий сигнал) стремятся использовать машинный код.

  3. Следует максимально заимствовать программные модули (свои, известные и т.д.).

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

  5. При работе на низком уровне необходимо иметь справочный материал.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]