- •6. Проектирование микропроцессорных систем
- •6.1. Представление системы как объекта проектирования
- •6.2. Основные этапы проектирования
- •6.3. Разработка архитектуры системы
- •6.4. Проектирование аппаратных средств
- •6.4.1. Схемотехническое проектирование процессора
- •6.4.2. Схемотехническое проектирование памяти
- •Банкирование памяти
- •Организация банков памяти
- •Проектирование запоминающих устройств
- •6.4.3. Схемотехническое проектирование интерфейса
- •Организация ввода/вывода данных
- •6.4.4. Тестирование и настройка аппаратных средств
- •Тестирование статическими сигналами
- •Свободный прогон микропроцессора
- •6.5. Проектирование программных средств
- •6.5.1. Этапы жизненного цикла программы
- •6.5.2. Точная постановка задачи и формулировка требований к программе
- •Постановка задачи ввода данных в озу
- •6.5.3 Проектирование программы
- •Декомпозиция общей задачи
- •Декомпозиция задачи ввода данных в озу
- •Структуры данных
- •Разработка структуры данных программы для ввода данных в озу
- •Алгоритмизация программы
- •Подходы к алгоритмизации
- •Иерархическая организация алгоритма
- •Алгоритмизация программы для ввода данных в озу
- •1. Модуль "Тестовый контроль озу по шд" (dTstContr)
Алгоритмизация программы
Вычислительный процесс, реализуемый программой, представляет собой последовательность дискретных шагов по преобразованию данных. Точное предписание, определяющее процесс преобразования данных во времени, называется алгоритмом этого преобразования. Для успешного решения задачи алгоритм должен иметь три свойства: массовость, определенность и результативность.
Массовость это способность алгоритма выполнять преобразование при изменении входных данных в заданных пределах. Если в данных могут появляться недопустимые значения, то для обеспечения массовости необходимо выявлять их до выполнения преобразования и формировать результат в случае их обнаружения принудительным образом. Например, пусть необходимо выполнить операцию деления на число, вводимое из порта. Если во входных данных невозможно появление нулевого значения, то никаких мер по обеспечению массовости принимать не надо. Однако, если это возможно, то до выполнения операции деления необходимо анализировать введенное число на нуль и при его обнаружении формировать принудительный результат: "Деление невозможно" или "Результат операции равен 1" и т.д. и т.п.,не выполняя операцию деления.
Определенность это точность предписания, не допускающая двусмысленного толкования предписанных действий по преобразованию информации. Если в исходных данных появляются значения, допускающие неоднозначное толкование, то эта неопределенность должна исключаться путем введения дополнительной информации. Например, если при обработке текстовых данных появляется фраза "Это пила Иванова", то для устранения неоднозначности ее толкования необходима дополнительная информация, уточняющая о чем идет речь: о пиле или о питье, об Иванове или об Ивановой.
Результативность это свойство алгоритма, обеспечивающее получение искомого результата за конечное число шагов. Как правило, к нарушению результативности приводят ошибки, вызывающие бесконечное зацикливание.
Для описания алгоритмов могут использоваться различные средства: логические схемы, матричные схемы, графические схемы алгоритмов (ГСА) и т.п. При программировании на ассемблере наибольшее распространение получил язык ГСА, обеспечивающий высокую наглядность.
Любая ГСА может быть изображена с помощью следующих элементов (рис.6.31):
1) оператор начала; 4) оператор безусловного перехода;
2) оператор конца; 5) оператор условного перехода;
3) оператор действия; 6) оператор комментария.
Рис. 6.31. Элементы графических схем алгоритмов:
а) оператор начала; б) оператор конца; в) оператор действия;
г) оператор безусловного перехода; д) оператор условного перехода;
е) оператор комментария
Операторы "Начало" и "Конец" являются неисполняемыми и обозначают лишь начало и конец алгоритма.
Операторы действия "Выполнить" реализуют отдельные функции по преобразованию информации, а операторы переходов устанавливают связь между ними во времени. При этом описание большей части безусловных переходов опускается, так как МП обеспечивает естественный порядок выполнения операторов действия в порядке их записи. Безусловный переход указывается лишь в точках нарушения естественного порядка выполнения операторов программы.
Оператор комментария может присоединяться к любому из операторов ГСА, и в него помещается текст, раскрывающий функции этого оператора.
Таким образом, ГСА отражает логическую структуру алгоритма и устанавливает взаимосвязь между отдельными программными исполнителями во времени.