- •Введение
- •Разработка общей структуры микро-эвм
- •Функциональный состав
- •Описание взаимодействия всех блоков микро-эвм
- •Разработка основных устройств микро-эвм
- •Запоминающие устройства. Функциональный состав и временные диаграммы.
- •Постоянное запоминающее устройство (пзу)
- •Оперативное запоминающее устройство (озу)
- •Разработка устройства управления
- •Разработка алу
- •Операционная часть
- •Блок роНов
- •Разработка контроллера прямого доступа памяти (кпдп)
- •Реализация кпдп
- •Разработка системы прерываний
- •Разработка принципиальной схемы устройства
- •Описание работы устройства на вентильно-регистровом уровне
- •Описание временной диаграммы работы устройства
- •Оптимизация микро-эвм
- •Заключение
- •Список используемой литературы
Описание временной диаграммы работы устройства
Временная диаграмма работы ОЗУ находится в приложении В.
Если сигнал WE_RAM = 1 , то по синхросигналу производится запись данных в память по указанному адресу. Если сигнал CS_RAM = 1 , то производится чтение данных, находящихся в памяти по указанному адресу.
Рассмотрим работу ОЗУ по тактам:
на вход DATA[9..0] подаются данные, которые будут записаны в ОЗУ;
на вход ADR[9..0] подаётся адрес, по которому будут записаны данные;
на вход WE_RAM подаётся сигнал записи в ОЗУ
на вход CS_RAM подаётся сигнал чтения с ОЗУ.
Оптимизация микро-эвм
Длительность выполнения отдельных команд зависит от их сложности и необходимости изменения отдельных данных для доступа. Важную роль играет необходимое количество тактов задержки. Они необходимы для того, чтобы данные успевали поступать на соответствующие шины.
Для выполнения команд необходимо следующее количество тактов (с учётом такта выборки команды из ПЗУ):
– JMP, MOV, ADC, OR, CLI, STI – 4 такта;
Т.к. элементы реализованы на вентильно-регистровом уровне, для оптимизации микро-ЭВМ необходимо их перестроить. Например, переделав УУ для выполнения команд необходимо следующее количество тактов:
JMP – 2 такта;
MOV – 2 такта;
ADC и OR – 3 такта;
CLI и STI – 1 такт.
Для оптимизации работы микро-ЭВМ можно использовать несколько методов:
Повышение частоты работы основного тактового генератора;
Для оптимизации работы устройства в схеме ищется цепочка, вносящая наибольшую задержку при прохождении сигнала. Частоту тактового генератора можно выбрать немного больше, чем задержка самой медленной цепочки.
Сокращение длительности выполнения фаз отдельных команд;
Сокращение длительности выполнения отдельных фаз команд можно достичь путем увеличения частоты тактового генератора, что приведет к увеличению количества выполняемых команд в единицу времени.
Одновременное выполнение некоторых фаз отдельных команд;
Для поддержания максимальной загрузки устройства управления должен использоваться параллелизм уровня команд, основанный на выявлении последовательностей несвязанных команд, которые могут выполняться в конвейере с совмещением. Чтобы избежать приостановки конвейера зависимая команда должна быть отделена от исходной команды на расстояние в тактах, равное задержке конвейера для этой исходной команды.
Конвейерное выполнение фаз последовательностей команд.
Конвейеризация (или конвейерная обработка) в общем случае основана на разделении подлежащей исполнению функции на более мелкие части, называемые ступенями, и выделении для каждой из них отдельного блока аппаратуры. Так обработку любой машинной команды можно разделить на несколько этапов (несколько ступеней), организовав передачу данных от одного этапа к следующему. При этом конвейерную обработку можно использовать для совмещения этапов выполнения разных команд. Производительность при этом возрастает благодаря тому, что одновременно на различных ступенях конвейера выполняются несколько команд. Конвейерная обработка такого рода широко применяется во всех современных быстродействующих процессорах.
Выполнение типичной команды можно разделить на следующие этапы:
выборка команды (по адресу, заданному счетчиком команд, из памяти извлекается команда);
декодирование команды / выборка операндов из регистров;
выполнение операции / вычисление эффективного адреса памяти;
обращение к памяти;
запоминание результата.
Конвейеризация увеличивает пропускную способность процессора (количество команд, завершающихся в единицу времени), но она не сокращает время выполнения отдельной команды. В действительности, она даже несколько увеличивает время выполнения каждой команды из-за накладных расходов, связанных с управлением регистровыми станциями. Однако увеличение пропускной способности означает, что программа будет выполняться быстрее по сравнению с простой не конвейерной схемой.
Из всех вышеперечисленных методов оптимизации под разработанную микро-ЭВМ подходит конвейеризация и сокращение длительности выполнения фаз отдельных команд. Так как узким местом является память, как ОЗУ, так и ПЗУ, из-за которых нельзя повысить тактовую частоту, и на обращение к которым тратится большее количество тактов команды, то на завершающей стадии выполнения команд можно начинать извлечение следующей команды. Но для этого необходимо повышенное знание языка VHDL, а так же большой опыт разработок в среде автоматизированного проектирования Quartus II. Что касается сокращения длительности выполнения фаз отдельных команд, то можно установить время выполнения например одного такта не 20 н/c, а 14 н/c, что приведёт к выполнения большего числа команд за 1 такт. (p.s. нельзя ставить слишком малое значение т.к. команда может не успеть выполниться за 1 такт).
