Проектирование процесса для заданной системы команд

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    1,07 Мб
  • Опубликовано:
    2013-05-27
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Проектирование процесса для заданной системы команд

Введение

Микропроцессор - процессор (устройство, отвечающее за выполнение арифметических, логических операций и операций управления, записанных в машинном коде), реализованный в виде одной микросхемы или комплекта из нескольких специализированных микросхем (в отличие от реализации процессора в виде электрической схемы на элементной базе общего назначения или в виде программной модели). Первые микропроцессоры появились в 1970-х годах и применялись в электронных калькуляторах, в них использовалась двоично-десятичная арифметика 4-битных слов. Вскоре их стали встраивать и в другие устройства, например терминалы, принтеры и различную автоматику. Доступные 8-битные микропроцессоры с 16-битной адресацией позволили в середине 1970-х годов создать первые бытовые микрокомпьютеры.

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

В данном курсовом проекте необходимо разработать микропроцессор, способный выполнять заданные команды (IMUL r16, r/m16 (MOD = 00); FDIV ST(i), ST; JNA rel8) из базовой системы команд микропроцессора Intel 486. Так же для реализации данного проекта выданы необходимые данные для расчета оперативной памяти (V = 4ГБ; ширина выборки 16 бит), для разработки устройства управления (автомат Мура, RS-триггер), микропрограммного устройства управления (вертикальный метод организации операционной части, естественная адресация).

1. Исследовательская часть

.1 Микропроцессор i486

(также известный как i486, Intel 80486 или просто 486-ой) - 32-битный скалярный x86-совместимый микропроцессор четвёртого поколения, построенный на гибридном CISC-RISC-ядре и выпущенный фирмой Intel 10 апреля 1989 года. Этот микропроцессор является усовершенствованной версией микропроцессора 80386. Впервые он был продемонстрирован на выставке Comdex Fall, осенью 1989 года. Это был первый микропроцессор со встроенным математическим сопроцессором (FPU). Применялся преимущественно в настольных ПК, в высокопроизводительных рабочих станциях, в серверах и портативных ПК (ноутбуки и лаптопы).

Микропроцессор Intel 486 представляет собой высокопроизводительное устройство, имеющее полную 32-разрядную архитектуру, включая 32-разрядные регистры и шины. Наиболее часто команды выполняются этим микропроцессором за один цикл, что обеспечивает быстродействие, сравнимое с процессорами архитектуры RISC. Микропроцессор i486 использует один источник питания с напряжением 5 В. Типовые значения потребляемой мощности составляют 3…4 Вт в зависимости от тактовой частоты (25…50 МГц).

Микропроцессор i486 содержит на одном кристалле, кроме собственно центрального процессора, также блок обработки данных с плавающей запятой (FPU - Floating Point Unit), устройство управления, диспетчер памяти (MMU - Memory Manager Unit), блок предварительной выборки команд и данных, интерфейс магистрали, кэш-память.

Центральный процессор, в свою очередь, включает в себя арифметико-логическое устройство (АЛУ, или ALU - Arithmetical-Logical Unit), восемь 32-разрядных регистров общего назначения (РОН), многоразрядный сдвигатель (Shifter), используемый не только при отработке команд сдвига, но и при выполнении операций умножения и деления. Блок FPU имеет собственные регистры данных и управления; он работает параллельно с центральным процессором.

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

Диспетчер памяти, состоящий из блока сегментации и блока страничной адресации, осуществляет формирование физического адреса ячейки памяти. Диспетчер обеспечивает два режима работы микропроцессора: режим реальных адресов (реальный режим) и режим защищенных виртуальных адресов (виртуальный режим). В реальном режиме i486 работает как очень быстрый процессор 8086. При этом реализуется расширенный набор команд и допускается увеличение разрядности операндов и адресов до 32. В защищенном режиме могут одновременно выполняться несколько задач (программ). Задачи при этом изолированы и защищены одна от другой.

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

1.2 Внутренняя архитектура микропроцессора Intel 486

В состав процессора i486 входят девять внутренних функциональных устройств, которые работают параллельно. Подробная внутренняя архитектура процессора приведена на Рис. 1. Сравнительно автономными внутренними устройствами процессора i486 являются:

устройство шинного интерфейса или просто шинный интерфейс;

внутренняя кэш-память;

устройство опережающей выборки (предвыборки) команд;

двухступенчатый дешифратор команд;

устройство управления;

целочисленное устройство;

устройство с плавающей точкой;

устройство сегментации;

устройство страничного преобразования адреса.

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

Рис. 1 - Внутренняя архитектура i486

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

Формирование адреса производят устройства сегментации страничного преобразования. Логические адреса преобразуются устройством сегментации в линейные адреса, которые передаются в устройство страничного преобразования и кэш-память по 32-битной шине линейного адреса. Устройство страничного преобразования превращает линейные адреса в физические, которые направляются в кэш-память по 20-битной шине.

1.3 Формат данных

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

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

Рис. 2 - Форматы данных

Целые числа могут занимать байт, слово или двойное слово. Они могут быть знаковыми и беззнаковыми. В знаковых целых самый старший бит байта, слова или двойного слова, занимаемого числом, отводится для индикации знака числа. Таким образом, возможный диапазон представляемых значений для знаковых целых составляет: от -128 до +127 для байтовых величин, от -231 до 231-1 для двойных слов. Беззнаковые целые могут принимать значения: от 0 до 255 для байтовых величин, от 0 до 232-1 для двойных слов.

В FPU вещественные числа двойной точности кодируются с помощью трех полей: знак, порядок и мантисса.

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

Для поля порядка не предусмотрено отдельного бита знака, здесь применяется т.н. смещение порядка, оно заключается в прибавлении к реальному значению порядка некоторой константы и последующему кодированию уже этой суммы. Таким образом, все кодируемые значения положительны. С учетом применяемых в различных форматах констант (1023 для длинных вещественных) в поле порядка могут кодироваться следующие значения для порядка: от -1022 до 1023 для длинных вещественных.

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

1.4 Формат команд

При разработке системы команд процессоров 80386 и i486 пришлось решить следующие основные вопросы:

обеспечить совместимость по объектному коду с предшествующими процессорами, но вместе с этим ввести в команды 32-битные операнды и адреса;

расширить диапазон использования регистров общего назначения в адресных вычислениях, в частности, привлечь для этого регистры ЕАХ, ЕСХ и EDX, 16-битные аналоги которых АХ, СХ к DХ для адресации не применялись;

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

бщий формат команды процессора i486 приведен на Рис. 3. Команды состоят из необязательных префиксов, одного или двух байт главного кода операции, спецификатора адреса, представленного байтами mod r/m и sib, смещения в команде (displacement) и непосредственных данных. Английские аббревиатуры означают следующее: Base - база, MODe - режим, Register/Memory - регистр/память, Scale - масштаб, Index - индекс. Из всех полей команды обязательными являются только один или два байта кода операции.

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

Рис. 3 - Общий формат команд

Во многих командах процессора байты ModR/M и SIB следуют за байтом (байтами) кода операции. Эти байты содержат следующую информацию:

.тип индексации или номер регистра, используемого в команде;

.используемый регистр или дополнительную информацию о коде операции;

.информацию о базе, индексе и масштабе.

Байт ModR/M состоит из трех информационных полей:

.поле mod содержит два наиболее значимых бита (7 и 6 биты) и в комбинации с полем r/m определяет 32 возможных типа адресации (8 регистровых и 24 индексных);

.поле reg содержит следующие за полем mod три бита (5, 4 и 3 биты) и определяет либо номер регистра, либо три дополнительных бита кода операции;

.поле r/m содержит три последних значащих бита байта ModR/M (2, 1 и 0 биты) и может определять номер регистра, в котором находится операнд, или представлять совместно с полем mod 32 возможных типа адресации.

-битные базовые и масштабируемые индексные формы адресации требуют наличия SIB байта. Определенная кодировка ModR/M байта сигнализирует о присутствии SIB байта. Байт SIB состоит из следующих полей:

.поле ss, занимающее два наиболее значимых бита (7 и 6 биты), определяет масштабный множитель;

.поле index, занимающее следующие три бита за полем ss (5, 4, и 3 биты), определяет номер индексного регистра;

.поле base, занимающее оставшиеся три бита (2, 1 и 0 биты), определяет номер базового регистра.

На рис. 4 показаны форматы ModR/M и SIB байтов.

Рис. 4 - Формат байтов ModR/M и SIB

Устройство FPU имеет пять форматов команд, представленных на Рис. 5. Во всех форматах минимальная длина команды составляет два.

Команды с форматами, показанными на Рис. 5 (а,б), выполняют обращение к памяти, поэтому поля mod (режим) и r/m (регистр/память) во втором байте, а также байт sib (масштаб, индекс, база) имеют тот же смысл, что и в командах целочисленного устройства. Эти поля определяют, как формируется эффективный адрес ЕА памяти.

Команды с форматом, показанном на Рис. 5 (б), выполняют арифметические операции и операции сравнения. Поле формата памяти MF определяет тип операнда, находящегося в памяти. Оно имеет следующее кодирование:

- вещественное число одинарной точности (32 бита),

- короткое целое двоичное число (32 бита),

- вещественное число двойной точности (64 бита), И - целое слово (16 бит) или упакованное десятичное число (80 бит).

Во всех остальных форматах поле mod содержит комбинацию 11В. В командах целочисленного устройства эта комбинация задает режим регистровой адресации, который не относится к устройству FPU. Именно такие команды целочисленное устройство «пропускает», не производя никаких действий.

Рис. 5 - Формат команды для блока FPU

1.5 Регистры общего назначения (РОНы)

Основные функциональные регистры приведены на следующем рисунке:

Рис. 6 - РОНы

Регистры общего назначения (РОН) EAX, EBX, ECX, EDX 32-разрядные, причем каждый из них может использоваться либо как единое целое, либо только своей младшей 16-разрядной частью (AX, BX, CX, DX). В свою очередь, эти 16-разрядные части допускают независимое использование своих младших (LOW) и старших (HIGH) половин, то есть фактически 8-разрядных регистров (AH и AL, BH и BL и т.д.).

.6 Программная модель устройства FPU

Основу программной модели устройства FPU, показанной на Рис. 9, образует регистровый стек из восьми 80-битных регистров данных R0 - R7, называемых также численными или арифме¬тическими регистрами. В этих регистрах хранятся числа, представленные в форме с плавающей точкой в расширенном вещественном формате (ранее этот формат назывался временным вещественным форма¬том). Такой формат является единственным внутренним форматом чисел в устройстве FPU. В любой момент времени трехбитное поле TOP в слове состояния SW определяет регистр, явля¬ющийся текущей вершиной стека и обозначаемый ST(0) или просто ST. Все команды устройства FPU рассчитаны на такую относительную адресацию и даже на языке ассемблера нельзя работать с физическими регистрами R0 - R7.

Рис. 7 - Программная модель устройства FPU

Операция загрузки или включения в стек (PUSH) осуществляет декремент поля ТОР и загружает адресуемые данные в новую вершину стека, что приводит к автоматической перенумерации регистров. В операции сохранения и извлечения из стека (POP) в получатель, например в память, передается содержимое текущей вершины стека, а затем производится инкремент поля ТОР. Таким образом, в стандартных стековых операциях поле ТОР выполняет функции традиционного указателя стека SP (Stack Pointer).

С каждым регистром стека ассоциируется двухбитный тэг (признак), совокупность которых образует слово тэгов TW (Tag Word). Тэг регистра R0 находится в младших битах этого слова, а тэг регистра R7 в старших битах. Тэг в общем виде показывает, что содержится в соответствующем регистре и помогает устройству FPU в выполнении команд.

1.7 Регистр флагов FPU

микропроцессор архитектура команда регистр

16-битное слово состояния отражает общее состояние устройства FPU (Рис. 7). В слове состояния SW младшие 6 бит отведены для регистрации особых случаев. Флажки особых случаев обозначаются так:

РЕ (Precision Error) - ошибка точности,(Underflow Error) - ошибка антипереполнения,

ОЕ (Overflow Error) - ошибка переполнения,Е (divide-by-Zero Error) - ошибка деления на нуль(Denormalized operand Error) - ошибка ненормализованного операнда,(Invalide operation Error) - ошибка недействительной операции.

Рис. 8 - Слово состояния сопроцессора (регистр флагов FPU)

При обнаружении любого из незамаскированных особых случаев устройство FPU устанавливает в состояние 1 соответствующий флажок и формирует активный выходной сигнал, сообщая об особом случае (прерывание 16). Процедура обработки особого случая считывает слово состояния для определения конкретной причины особого случая.

Бит нарушения стека SF предназначен для того, чтобы фиксировать ошибки в работе регистрового стека. Устройство FPU устанавливает его в состояние 1, если команда вызывает переполнение стека (включение в уже заполненный стек) или антипереполнение стека (извлечение из пустого стека).

Бит 8 суммарной ошибки ES (Error Summary) устанавливается в состояние 1 при возникновении любого особого случая и участвует в формировании выходного сигнала FERR#.

Биты кода условия СЗ - СО фиксируют особенности результатов команд сравнения, проверки и анализа. Биты СЗ - СО, в основном, применяются для условных переходов.

2. Разработка структуры и микропрограммы микропроцессора

.1 Выборка и дешифрация команд

В соответствии с вариантом задания, требуется произвести выборку следующих команд:

IMUL r16, r/m16 (mod = 00)

FDIV ST(i), ST

JNA rel8

. IMUL r16, r/m16

Команда IMUL производит знаковое умножение. В некоторых формах команды применяются неявные регистровые операнды. В данном случае первый операнд располагается в РОН, а второй операнд - в ячейке памяти, адрес которой хранится в РОН. Команда IMUL сбрасывает флажки OF и CF в 0 при форме r16, r/m16 тогда, когда результат точно помещается в r16. Если не перемещается, то старшая часть произведения перемещается в DX, OF и CF устанавливаются в 1. Флажки SF, ZF, AF и PF не определены. Код операции AF. Структура команды представлена на рисунке 9.

КОП

MOD R/M


D

W

MOD

REG/OPCODE

R/M

101011

1

1

00

3 бита

3 бита

Рис. 9 - Структура команды IMUL r16, r/m16

Старшие 6 бит инициализируют код команды, бит D определяет направление передачи данных (D = 1 - из регистра/памяти в регистр). Бит W определяет размер операнда (W = 1 - полный размер).

Поле MOD в комбинации с полем r/m определяет 32 возможных типа адресации (8 регистровых и 24 индексных). При MOD = 00 (по условию) вычисляется адрес вида DS:[r/m]. Поле r/m описывает используемый регистр. Поле REG содержит адрес регистра-операнда из РОН.

. FDIV ST(i), ST

Команда деления производит деление вершины стека ST на другой операнд и возвращают частное в получатель. Флажки C0, C2, C3 не определены, C1 = 1 показывает, что произошло округление вверх или если IE и SF = 1, то C1 различает переполнение (C1=1) и антипереполнение (C1 = 0). Численные особые случаи P, U, Z, D, I, IS. Код операции DC F8+i (i - номер регистра в регистровом стеке FPU). Структура команды представлена на рисунке 10.

FPU

R

P

КОП


КОП

ST(i)

10101

1

1

0

11

111

3 бита

Рис. 10 - Структура команды FDIV ST(i), ST

Старшие 5 бит инициализируют устройство FPU. Бит R указывает на направление операции. Если R = 1, то это значит, что результат возвращается в другой (не в вершину) регистр стека. Бит P = 1 указывает на то, что данные извлекаются из стека. КОП (3,4,5,8 биты) инициализируют команду FDIV. ST(i) указывает на элемент стека, в котором содержится операнд.

Стоит отметить, что элемент стека отсчитывается от TOP.

. JNA rel8

Условный переход JNA проверяет флажки CF и ZF на равенство 1. Флажки устанавливает предыдущая команда.

Если проверяемое условие истинно, то производится переход к ячейке, задаваемой операндом. Кодирование наиболее эффективно, когда назначение перехода находится в текущем сегменте кода и в пределах от -128 до +127 байт от первого байта следующей команды.

КОП

Относительный адрес перехода

01110110

8 бит

Рис. 11 - Структура команды JNA rel8

КОП содержит код команды, а поле с относительным адресом перехода содержит число (rel8), которое будет прибавляться (вычитаться) к счетчику команд.

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

2.2 Разработка структурной схемы

На основе анализа форматов заданных команд и данных была разработана структурная схема микропроцессора, которая включает в себя следующие элементы:

. Оперативная память объемом 4ГБ. Регистр адреса ОП имеет разрядность 31 бит, а регистр информации ОП - 16 бит. Ширина выборки - 16 бит. Разрядность общей шины - 32 бита.

. Регистры общего назначения с организацией 8×16. Разрядность регистра адреса РОН - 3 бита, а регистра информации - 16 бит.

. Стековая память в FPU с организацией 8×80. Разрядность регистра адреса стековой памяти 3 бита, а регистра информации - 80 бит.

. Регистр флагов сопроцессора (РгSW) - отображает состояния флагов при выполнении команд в формате с плавающей точкой. Разрядность регистра - 16 бит.

. Счетчик команд (СчК) - хранит адрес следующей команды. Разрядность равна 31 биту.

. Регистр команд (РгК) - хранит текущую команду. Разрядность равна 16 битам.

Блок АЛУ для операций команды IMUL (блоки 26-72) содержит следующие элементы:

. Рг1_У и Рг2_У - 16 разрядные выходные регистры АЛУ, хранят множимое и множитель соответственно.

. Рг2’_У - временный шестнадцатиразрядный регистр, используется для хранения сдвинутого значения множителя в процессе умножения.

. РгА_У, РгБ_У - входные 16-разрядные регистры сумматора СМ_У.

. СМ_У - 16-разрядный сумматор, используется для сложения суммы частичных произведений с очередным отрицательным или положительным множимым в ходе алгоритма умножения.

. РгСМ_У - регистр сумматора СМ_У.

. СчТ_У - 16-разрядный счетчик итераций умножения.

. ТЗн - триггер, сохраняющий знак множителя. Введен для того, чтобы произвести нужный тип коррекции произведения после умножения (знак в Рг2_У будет утерян).

Блок АЛУ для операций команды FDIV (блоки 74-161):

. Рг1, Рг2 - восьмидесяти разрядные входные регистры АЛУ, получают делимое и делитель из стека FPU.

. РгА_АСт, РгБ_АСт, СМ_АСт, РгСМ_АСт - трехразрядный сумматор с входными регистрами и выходным регистром для вычисления смещения вершины относительно TOP (ST(i)).

. Рг1_П, Рг2_П - 15 разрядные регистры для хранения порядков операндов.

. РгА_П, РгБ_П, СМ_П, РгСМ_П - 15 разрядный сумматор для сложения (вычитания) порядков операндов.

. Сч_П - 15 разрядный счетчик, хранит вычисленное значение порядков, служит для возможного инкремента порядка при денормализации.

. М2 - комбинационная схема вычисления знака ответа. При том, что знак при делении восстанавливается, этот элемент введен для простановки знака при «критических» случаях деления, например, 0/0 или ∞/∞.

. Рг2_М, Рг1_М - 65 разрядные регистры для хранения мантисс операндов. В старший бит записывается знак операнда.

. ТЗн_М - триггер, который хранит знак делимого, полученного из Рг1_М. Сохраняет знак для выполнения коррекции после деления, так как знаковый разряд Рг1_М сдвинется в процессе деления.

. Рг1’_М - 65 разрядный регистр, «удлиняющий» делимое. До начала деления равен 0. В процессе деления в нем получается частное.

. Рг3_М - 65 разрядный регистр, хранящий сдвинутое значение Рг1’_М.

. РгА_М, РгБ_М, СМ_М, РгСМ_М - 65 разрядный сумматор с входными и выходным регистрами. На нем осуществляется сложение/вычитание в процессе деления.

. РгРез_ПЗ - 80 разрядный сдвиговый регистр, содержащий подсчитанное частное. Служит для возможной денормализации мантиссы.

. СчТ_М - 65 разрядный счетчик итераций при делении.

Блок АЛУ для выполнения команды JNA (блоки 14-17):

. РгА_СчК, РгБ_СчК, СМ_СчК, РгСМ_СчК - 31 разрядный сумматор с входными и выходным регистрами для вычисления нового адреса команды. РгА_СчК принимает значение текущей команды из СчК, РгБ_СчК - смещение, указанное в команде.

. КСХ - комбинационная схема для анализа флагов.

Расчет организации ОП:

Ширина выборки = 16 бит - разрядность РгИОП

= 31 - разрядность РгАОП.

Структурная схема микропроцессора представлена в Приложении 1.

2.3 Разработка микропрограммы

Программа в ЭВМ реализуется по средствам последовательного выполнения команд. Она состоит из следующих основных этапов:

выборка и дешифрация команд;

выборка операндов;

выполнение операции;

запись результата;

формирование адреса следующей команды.

. Блоки 1-8: выборка команды.

. Блоки 9-12, 18-25: дешифрация команды.

. Блоки 12-16: реализация команды JNA.

. Блоки 26-72: реализация команды IMUL:

Блоки 26-31: выбор первого операнда.

Блоки 33-40: выборка второго операнда из ОП.

Блок 41: подготовка перед умножением.

Блоки 42-51: выполнение алгоритма умножения в дополнительном коде.

Блоки 52-57: коррекция произведения.

Блоки 58-65: внализ произведения и вывод старшей части ответа в регистр DX.

Блоки 66-72: вывод младшей (всей) части произведения.

. Блок 73: инкремент счетчика команд.

. Блоки 74 - 161: выполнение команды FDIV:

Блоки 74-76: вычисление операнда ST(i).

Блоки 77-82: выборка первого операнда.

Блоки 83-91: выборка второго операнда.

Блок 92: загрузка операндов в регистры АЛУ.

Блоки 93-108: анализ особых случаев при делении.

Блоки 109-115: проверка условия ДМ<ДТ и коррекция в противном случае.

Блоки 116-119, 150: вычитание порядков и проверка переполнения.

Блоки 120-122: подготовка АЛУ для деления.

Блоки 123-135: выполнение алгоритма деления в дополнительном коде.

Блоки 136-145: коррекция частного.

Блоки 146-148: денормализация мантиссы.

Блоки 149-153: запись в регистр результата особого ответа в случае возникновения.

Блоки 154-161: вывод ответа в регистровый стек.

. Блок 162: конец алгоритма.

В таблице 1 приведен список микроопераций.

Таблица 1

y1

СчК:=НА

y60

Рг2[64-79]:=М

y2

М:=СчК

y61

Рг1_П[0-14]:=Рг1[63-78]

y3

РгАОП:=М

y62

Рг2_П[0-14]:=Рг1[63-78]

y4

РгИОП:=Чт[РгАОП]

y63

Рг1_М[64]:=Рг1[79]

y5

М:=РгИОП

y64

Рг2_М[64]:=Рг1[79]

y6

РгК:=М

y65

Рг1_М[0-63]:=Рг1[0-63]

y7

РгА_СчК:=СчК

y66

Рг2_М[0-63]:=Рг2[0-63]

y8

РгБ_СчК:=РгК[0-7]

y67

РгSW[ZE]:=1

y9

СМ_СчК:=РгА_СчК+РгБ_СчК

y68

РгSW[ZE]:=0

y10

РгСМ_СчК:=СМ_СчК

y69

РгА_М:=Рг2_М

y11

СчК:=РгСМ_СчК

y70

РгБ_М:=Рг1_М

y12

РгК[MOD]:=00

y71

РгА_П:=0

y13

М:=РгК[3-5]

y72

РгБ_П:=Рг2_П

y14

РгАРОН:=М

y73

СМ_М:=РгА_М+РгБ_М+1

y15

РгИРОН:=Чт[РгАРОН]

y74

ТЗн_М:=Рг1_М[64]

y16

М:=РгИРОН

y75

СМ_П:=РгА_П+РгБ_П+1

y17

Рг1_У:=М

y76

РгСМ_М:=Л(1)СМ_М

y18

М:=РгК[MOD,R/M]

y77

РгСМ_П:=СМ_П

y19

РгБ_У:=0

y78

Рг1_М:=РгСМ_М

y20

ТЗн:=Рг2_У[15]

y79

Рг2_П:=РгСМ_П

y21

РгА:=Рг1_У

y80

Рг1_М[64]:=ТЗн_М

y22

РгА_У:=0

y81

РгА_П:=Рг1_П

y23

СМ_У:=РгА_У+РгБ_У

y82

РгБ_П[14]:=Рг2_П[14]

y24

Рг2’_У:=П(1)Рг2_У

y83

РгБ_П[0-13]:=Рг2_П[0-13]

y25

Рг2’_У[15]:=СМ_У[0]

y84

СМ_П:=РгА_П+РгБ_П

y26

РгСМ_У:=П(1)СМ_У

y85

РгSW[OE]:=0

y27

РгСМ_У:=1*П(1)СМ_У

y86

Сч_П:=РгСМ_П

y28

Рг2_У:=Рг2’_У

y87

РгА_М:=0

y29

РгБ_У:=РгСМ_У

y88

РгБ_М:=Рг1_М

y30

СчТ_У:=СчТ_У-1

y89

СМ_М:=РгА_М+РгБ_М

y31

РгА_У:=Рг1_У

y90

СчТ_М:=64

y32

СМ_У:=РгА_У+РгБ_У+1

y91

Рг3_М:=Л(1)Рг1’_М

РгСМ_У:=СМ_У

y92

СчТ_М:=СчТ_М-1

y34

РгFLAGs[0]:=0

y93

Рг3_М[0]:=0

y35

РгFLAGs[1]:=0

y94

Рг3_М[0]:=1

y36

М:=РгСМ_У

y95

РгБ_М:=Рг1’_М

y37

РгИРОН:=М

y96

РгСМ_М:=СМ_М

y38

РгАРОН:=010b

y97

РгРез_М:=РгСМ[0-63]

y39

Зп[РгАРОН]:РгИРОН

y98

РгSW[DE]:=1

y40

РгFLAGs[0]:=1

y99

РгРез_М:=Л(1)РгРез_М

y41

РгFLAGs[1]:=1

y100

Сч_П:=СчП+1

y42

РгБ_У:=Рг2_У

y101

РгSW[DE]:=0

y43

СчК:=СчК+1

y102

РгРез_ПЗ[0-63]:=РгРез_М

y44

РгА_АСт:=РгSW[TOP]

y103

РгРез_ПЗ[64-78]:=СчП

y45

М:=РгК[0-2]

y104

РгРез_ПЗ[64-78]:=0

y46

РгАСт:=РгSW[TOP]

y105

РгSW[OE]:=1

y47

РгБ_АСт:=РгSW[TOP]

y106

РгРез_ПЗ[64-78]:=7FFFh

y48

РгИСТ:=Чт[РгАСт]

y107

РгРез_ПЗ[0-63]:=0

y49

СМ_АСт:=РгА_АСт+РгБ_АСт

y108

РгРез_ПЗ[79]:=Рг1[79]⊕Рг2[79]

y50

РгСМ_АСт:=СМ_АСт

y109

М:=РгРез_ПЗ[0-31]

y51

М:=РгИСт[0-31]

y110

РгИСт[0-31]:=М

y52

Рг1[0-31]:=М

y111

М:=РгРез_ПЗ[32-63]

y53

М:=РгИСт[32-63]

y112

РгИСт[32-63]:=М

y54

Рг1[32-63]:=М

y113

М:=РгРез_ПЗ[64-679]

y55

М:=РгИСТ[64-79]

y114

РгИСт[64-79]:=М

y56

Рг1[64-79]:=М

y115

Зп[РгАСт]:РгИСт

y57

РгSW[TOP]:=РгСМ_АСт

y116

Рг2_У:=М

y58

Рг2[0-31]:=М

y117

СчТ_У:=16

y59

Рг2[32-63]:=М




Таблица 2

x1

Zоп=0

x24

Рг1_П[0-14]=7FFFh

x2

РгК[14-15]=10

x25

Рг2_М[0-63]=0

x3

РгК[14-15]=11

x26

Рг2_П[0-14]=0

x4

РгК[14-15]=01

x27

Рг2_П[0-14]=7FFFh

x5

РгК[8-13]=110110

x28

Рг2_М[0-63]=0

x6

РгFLAGS[0-1]=11

x29

Рг2_П[0-14]=0

x7

РгК[10-13]=1011

x30

Рг2_М[0-14]=7FFFh

x8

РгК[9]=1

x31

Рг2_М[0-63]=0

x9

РгК[8]=1

x32

Рг2_П[0-14]=0

x10

Zоп=0

x33

СМ_М[64]=1

x11

Рг2_У[0]=0

x34

ПР=10

x12

Рг1_У[15]=1

x35

ТЗн11_М=1

x13

СчТ_У=0

x36

Рг2_М[64]=1

x14

ТЗн=1

x37

Рг2_М[64]=1

x15

РгСМ_У[0-14]=РгСМ_У[15]

x38

СМ_М[64]=Рг2_М[64]

x16

Рг2’У[7]=РгСМ_У[15]

x39

СчТ_М=0

x17

РгК[8,10-13]=1011

x40

Рг1[79]=1

x18

РгК[10]=1

x41

Рг2[79]=1

x19

РгК[9]=0

x42

Рг2[79]=1

x20

РгК[6-7]=11

x43

Рг1_М=0

x21

РгК[2-5]=111

x44

Рг1_М=0

x22

Рг1_М[0-63]=0

x45

РгРез_М[63]=1

x23

Рг1_П[0-14]=0




Функциональная микропрограмма микропроцессора представлена в Приложении 2.

3. Разработка управляющего автомата с жесткой логикой

.1 Синтез запоминающей части управляющего автомата

Синтез управляющего автомата реализуется с помощью автомата Мура и RS-триггеров.

Рис. 12 - Структурная схема автомата Мура

В автомате Мура (рис. 12) операторные вершины алгоритма ставятся в соответствие с состояниями автомата. Отметка состояний осуществляется следующим образом: начальная и конечная вершины отмечаются одинаково; каждая операторная вершина отмечается единственным символом. Зная количество состояний, можно определить количество запоминающих элементов (триггеров):


По отмеченным состояниям в микропрограмме составляется таблица переходов автомата, которая служит исходными данными для синтеза логических схем. Таблица переходов определяется следующими множествами:

множеством состояний автомата

множеством входных сигналов

множеством выходных сигналов

функциями возбуждения.

Закон функционирования автомата Мура:


Микропрограмма, помеченная состояниями автомата Мура, представлена в Приложении 2.

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

Таблица переходов RS-триггера представлена в таблице 3. Таблица состояний на карте Карно приведена в таблице 4.

Таблица 3

R

S

Q(t)

Q(t+1)

0

0

не определено

0

1

0

1

1

0

1

0

1

1

не определено


Таблица 4


000

001

011

010

110

111

101

100

0000

a1

a2


a4

a5

a6

a7

a8

0001

a21

a20

a11

a16

a15

a14

a10

a9

0011

a22

a19

a18

a17


a13

a12


0010

a23

a24

a25

a26

a27

a30

a29


0110

a45

a43

a44

a28

a32

a31

a47

a46

0111

a41

a42

a35

a34

a33

a36

a48

a49

0101

a40

a39

a38

a57

a56

a37

a53

a50

0100

a59

a60

a3

a58

a55

a54

a52

a51

1100

a64

a61

a62

a63

a68

a67

a66

a65

1101


a106

a72

a70

a69

a78

a79

a80

1111

a107

a104

a73

a71

a76

a77

a83

a81

1110

a108

a105

a74

a75


a85

a84

a82

1010

a109

a103

a102

a101


a86

a88

1011

a110

a111

a112

a100

a93

a91

a90

a89

1001



a113

a99

a94


a92

a95

1000



a114

a98

a97

a115

a116

a96


Состояния и их соответствующие коды представлены в таблице 5.

Таблица 5

а1

000 0000

а25

011 0010

а49

100 0111

а73

011 1111

а97

110 1000

а2

001 0000

а26

010 0010

а50

100 0101

а74

011 1110

а98

010 1000

а3

011 0100

а27

110 0010

а51

100 0100

а75

010 1110

а99

010 1001

а4

010 0000

а28

010 0110

а52

101 0100

а76

110 1111

а100

010 1011

а5

110 0000

а29

101 0010

а53

101 0101

а77

111 1111

а101

010 1010

а6

111 0000

а30

111 0010

а54

111 0100

а78

111 1101

а102

011 1010

а7

101 0000

а31

111 0110

а55

110 0100

а79

101 1101

а103

001 1010

а8

100 0000

а32

110 0110

а56

110 0101

а80

100 1101

а104

001 1111

а9

100 0001

а33

110 0111

а57

010 0101

а81

100 1111

а105

001 1110

а10

101 0001

а34

010 0111

а58

010 0100

а82

100 1110

а106

001 1101

а11

011 0001

а35

011 0111

а59

000 0100

а83

101 1111

а107

000 1111

а12

101 0011

а36

111 0111

а60

001 0100

а84

101 1110

а108

000 1110

а13

111 0011

а37

111 0101

а61

001 1100

а85

111 1110

а109

000 1010

а14

111 0001

а38

011 0101

а62

011 1100

а86

111 1010

а110

000 1011

а15

110 0001

а39

001 0101

а63

010 1100

а87

101 1010

а111

001 1011

а16

010 0001

а40

000 0101

а64

000 1100

а88

100 1010

а112

011 1011

а17

010 0011

а41

000 0111

а65

100 1100

а89

100 1011

а113

011 1001

а18

011 0011

а42

001 0111

а66

101 1100

а90

101 1011

а114

011 1000

а19

001 0011

а43

001 0110

а67

111 1100

а91

111 1011

а115

111 1000

а20

001 0001

а44

011 0110

а68

110 1100

а92

101 1001

а116

101 1000

а21

000 0001

а45

000 0110

а69

110 1101

а93

110 1011



а22

000 0011

а46

100 0110

а70

010 1101

а94

110 1001



а23

000 0010

а47

101 0110

а71

010 1111

а95

100 1001



а24

001 0010

а48

101 0111

а72

011 1101

а96

100 1000




3.2 Синтез комбинационной части управляющего автомата

На основе закодированных состояний и взятых, в качестве запоминающих элементов, RS-триггеров, составим прямую таблицу переходов (Таблица 6).

Таблица 6

Исходное состояние

Код исходного состояния

Состояние перехода

Код состояния перехода

Входные сигналы

Выходные сигналы

Функции возбуждения








a1

000 0000

a2

001 0000


y1

S3

a2

001 0000

a3

011 0100


y2

S2S5

a3

011 0100

a4

010 0000


y3

R3R5

a4

010 0000

a5

110 0000

y4S1







y4



a5

110 0000

a6

111 0000


y5

S3

a6

111 0000

a7

101 0000


y6

R2

a7

101 0000

a1

000 0000

R1R3



























































a8

100 0000

y7,y8R3





a12

101 0011

y12S6S7





a52

101 0100

y43S5





a53

101 0101

y44,y45,y46S5S7



a8

100 0000

a9

100 0001


y9

S7

a9

100 0001

a10

101 0001


y10

S3

a10

101 0001

a11

011 0001


y11

R1S2

a11

011 0001

a3


y2

S5R7

a12

101 0011

a13

111 0011


y13

S2

a13

111 0011

a14

111 0001


y14

R6

a14

111 0001

a15

110 0001


y15

R3

a15

110 0001

a16

010 0001


y16

R1

a16

010 0001

a17

010 0011


y17

S6

a17

010 0011

a18

011 0011


y18

S3

a18

011 0011

a19

001 0011


y14

R2

a19

001 0011

a20

001 0001


y15

R6

a20

001 0001

a21

000 0001


y16

R3

a21

000 0001

a22

000 0011


y3

S6

a22

000 0011

a23

000 0010

y4R7







y4



a23

000 0010

a24

001 0010


y5

S3

a24

001 0010

a25

011 0010


y116

S2

a25

011 0010

a26

010 0010


y117,y19,y20

R3

a26

010 0010

a27

110 0010

y21S1





a28

010 0110

y22S5



a27

110 0010

a32

110 0110


y23,y24,y25

S5

a28

010 0110

a32

110 0110


y23,y24,y25

S1

a29

101 0010

a30

111 0010

y26S2





a31

111 0110

y27S2S5



a30

111 0010

a31

111 0110


y28

S5

a31

111 0110

a32

110 0110


y28

R3

a32

110 0110

a33

110 0111


y29,y30

S7

a33

110 0111

a27

110 0010

y21R5R7





a28

010 0110

y22R1R7





a34

010 0111

y22R1





a36

111 0111

y31S3



a34

010 0111

a35

011 0111


y23

S3

a35

011 0111

a38

011 0101


y33

R6

a36

111 0111

a37

111 0101


y32

R6

a37

111 0101

a38

011 0101


y33

R1

a38

011 0101

a39

001 0101

y34,y35R2





a44

011 0110

y40,y41S6R7







y40,y41



a39

001 0101

a40

000 0101


y36

R3

a40

000 0101

a41

000 0111


y37

S6

a41

000 0111

a42

001 0111


y38

S3

a42

001 0111

a43

001 0110


y39

R7

a43

001 0110

a45

000 0110


y22,y42

R3

a44

011 0110

a45

000 0110


y22,y42

R2R3

a45

000 0110

a46

100 0110


y23

S1

a46

100 0110

a47

101 0110


y33,y18

S3

a47

101 0110

a48

101 0111


y14

S7

a48

101 0111

a49

100 0111


y36

R3

a49

100 0111

a50

100 0101


y37

R6

a50

100 0101

a51

100 0100


y39

R7

a51

100 0100

a52

101 0100


y43

S3

a52

101 0100

a3

011 0100


y2

R1S2

a53

101 0101

a54

111 0100


y47,y48

S2R7

a54

111 0100

a55

110 0100


y49

R3

a55

110 0100

a56

110 0101


y50,y51

S7

a56

110 0101

a57

010 0101


y52

R1

a57

010 0101

a58

010 0100


y53

R7

a58

010 0100

a59

000 0100


y54

R2

a59

000 0100

a60

001 0100


y55

S3

a60

001 0100

a61

001 1100


y56

S4

a61

001 1100

a62

011 1100


y57

S2

a62

011 1100

a63

010 1100


y46

R3

a63

010 1100

a64

000 1100


y48

R2

a64

000 1100

a65

100 1100


y51

S1

a65

100 1100

a66

101 1100


y58

S3

a66

101 1100

a67

111 1100


y53

S2

a67

111 1100

a68


y59

R3

a68

110 1100

a69

110 1101


y55

S7

a69

110 1101

a70

010 1101


y60

R1

a70

010 1101

a71

010 1111


y61,y62,y63, y64,y65,y66

S6

a71

010 1111

a72

011 1101

y67S3R6





a73

011 1111

y68S3







y68





a74

011 1110

y68S3R7





a75

010 1110

y67R7







y67





a76

110 1111

y68S1







y68







y68





a104

001 1111

y68,y104R2S3







y68,y104







y68,y104



a72

011 1101

a106

001 1101


y106

R2

a73

011 1111

a106

001 1101


y106

R2R6

a74

011 1110

a108

000 1110


y106

R2R3

a75

010 1110

a108

000 1110


y106

R2

a76

110 1111

a77

111 1111


y69,y70, y71,y72

S3

a77

111 1111

a78

111 1101


y73

R6

a78

111 1101

a79

101 1101


y74

R2

a79

101 1101

a80

100 1101

y75,y76R3





a83

101 1111

y81,y82,y83S6



a80

100 1101

a81

100 1111


y77,y78

S6

a81

100 1111

a82

100 1110


y79,y80

R7

a82

100 1110

a83

101 1111


y81,y82,y83

S3S7

a83

101 1111

a84

101 1110


y84

R7

a84

101 1110

a85

111 1110

y85,y77S2





a105

001 1110

y105R1



a85

111 1110

a86

111 1010


y86,y87,y88

R5

a86

111 1010

a87

101 1010


y89

R2

a87

101 1010

a88

100 1010


y90

R3

a88

100 1010

a89

100 1011


y76,y74

S7

a89

100 1011

a90

101 1011


y78,y91, y69,y92

S3

a90

101 1011

a91

111 1011

y70S2







y70





a93

110 1011

y88S2R3







y88



a91

111 1011

a92

101 1001


y73

R2R6

a92

101 1001

a95

100 1001

y93R3





a96

100 1000

y94R3R7



a93

110 1011

a94

110 1001


y89

R6

a94

110 1001

a95

100 1001

y93R2





a96

100 1000

y94R2R7



a95

100 1001

a97

110 1000

y87,y95S2R7





a89

100 1011

y76S6



a96

100 1000

a97

110 1000

y87,y95S2





a89

100 1011

y76S6S7



a97

110 1000

a98

010 1000

y73R1







y73







y73





a99

010 1001

y89R1S7







y89







y89



a98

010 1000

a100

010 1011


y96

S6S7

a99

010 1001

a100

010 1011


y96

S6

a100

010 1011

a101

010 1010


y97

R7

a101

010 1010

a102

011 1010

y98,y99,y100S3





a103

001 1010

y101,y102,y103R2S3



a102

011 1010

a102

011 1010

y98,y99,y100-





a103

001 1010

y101,y102,y103R2



a103

001 1010

a109

000 1010


y108

R3

a104

001 1111

a107

000 1111


y107

R3

a105

001 1110

a106

001 1101


y106

R6S7

a106

001 1101

a107

000 1111


y107

R3S6

a107

000 1111

a109

000 1010


y108

R5R7

a108

000 1110

a109

000 1010


y108

R5

a109

000 1010

a110

000 1011


y109

S7

a110

000 1011

a111

001 1011


y110

S3

a111

001 1011

a112

011 1011


y111

S2

a112

011 1011

a113

011 1001


y112

R6

a113

011 1001

a114

011 1000


y113

R7

a114

011 1000

a115

111 1000


y114

S1

a115

111 1000

a116

101 1000


y115

R2

a116

101 1000

a52

101 0100


y43

R4S5


Аналитические выражения для термов:




Аналитические выражения для функций возбуждения:

=T1+T17+a28+a45+a64+T34+T35+T36+a114=T2+T3+T4+T5+T6+T7+T8+T9+T10+T11+a10+a15+T22+T23+a37+a52+a56+a69+T43+T56+T57+T58+T59+T60+T61

S2=a2+a10+a12+a24+T19+T20+a52+a53+a61+a66+T42+T44+T45+T46+T47+T52+T54+a111

R2=a6+a18+T25+a44+a58+a63+T37+T38+T39+a72+a73+a74+a75+a78+a86+a91+T50+T51+T63+T65+a115

S3=a1+a5+a9+a17+a23+T24+a34+a41+a46+a51+a59+a65+T2/+T29+T30+T31+T38+a76+a82+a89+T62+T63+a110

R3=a3+T2+T3+T4+T5+T6+T7+T8+T9+T10+T11+T12+a14+a20+a25+a31+a39+a43+a44+a48+a54+a62+a67+a74+T40+a87+T46+T47+T48+T49+a103+a104+a106=a60=a116

R5=a3+T21+a85+a107+a108

S6=T13+a16+a21+T26+T27+a40+a70+T41+a80+T53+T55+a98+a99+a106

R6=a13+a19+a35+a36+a49+T28+a73+a77+a91+a93+a105+a112

S7=T13+T15+a8+a32+a47+a55+a68+a82+a88+T55+T59+T60+T61+a98+a105+a109

R7=a1+T16+T21+T22+T26+T27+a42+a50+a53+a57+T31+T32+T33+a81+a83+T49+T51+T52+a100+a107+a113

Аналитические выражения для функций выхода:

y1=a2 y2=a3 y3=a4+a22 y4=a5+a23 y5=a6+a24 y6=a7 y7=a8 y8=a8 y9=a9 y10=a10 y11=a11 y12=a12 y13=a13 y14=a14+a19+a48 y15=a15+a20 y16=a16+a21 y17=a17 y18=a18+a47 y19=a26 y20=a26 y21=a27 y22=a28+a34+a45 y23=a32+a35+a46 y24=a32 y25=a32 y26=a30 y27=a31 y28=a31+a32 y29=a33 y30=a33

y31=a36 y32=a37 y33=a38+a47 y34=a39 y35=a39 y36=a40+a49 y37=a41+a50 y38=a42 y39=a43+a51 y40=a44 y41=a44 y42=a45 y43=a52 y44=a53 y45=a53 y46=a53+a63 y47=a54 y48=a54+a64 y49=a55 y50=a56 y51=a56+a65 y52=a57 y53=a58+a67 y54=a59 y55=a60+a69 y56=a61 y57=a62 y58=a66 y59=a68 y60=a70

y61=a71 y62=a71 y63=a71 y64=a71 y65=a71 y66=a71 y67=a72+a75 y68=a73+a74+a76+a104 y69=a77+a90 y70=a77+a91 y71=a77 y72=a77 y73=a78+a92+a98 y74=a79+a89 y75=a80 y76=a80+a89 y77=a81+a85 y78=a81+a90 y79=a82 y80=a82 y81=a83 y82=a83 y83=a83 y84=a84 y85=a85 y86=a86 y87=a86+a97 y88=a86+a93 y89=a87+a94+a99 y90=a88

y91=a90 y92=a90 y93=a95 y94=a96 y95=a97 y96=a100 y97=a101 y98=a102 y99=a102 y100=a102 y101=a103 y102=a103 y103=a103 y104=a104 y105=a105 y106=a106+108 y107=a107 y108=a109 y109=a110 y110=a111 y111=a112 y112=a113 y113=a114 y114=a115 y115=a116 y116=a25 y117=a26


3.3 Разработка электрической принципиальной схемы

Работа схемы начинается с подачи на входы схемы входных сигналов (условий) Х1..Х45 с вилки ГРПМ1-45ШУ2(XP1), а также их противоположных значений. Инвертирование происходит на микросхемах ТТЛ-типа КР1533ЛН1[DD1-DD8]. На розетку МРН4-1(XP2) подаются сигналы ТИ, сброса, а так же питание и земля.

Далее происходит вычисление значений термов на микросхемах КР1533ЛИ1[DD9, DD12, DD22, DD25, DD37, DD40, DD41, DD45], КР1533ЛИ3[DD10, DD23, DD24, DD38, DD39], КР1533ЛН1[DD8, DD17, DD27, DD34, DD44], КР1533ЛА1[DD11, DD13, DD14, DD36, DD42, DD43] и КР1533ЛА2[DD15, DD16, DD18-DD21, DD26, DD28-DD33, DD35].

Затем, на основе полученных термов, вычисляем значения функций возбуждения триггеров S1-S7, R1-R7 на микросхемах КР1533ЛН1[DD44], КР531ЛЕ7[DD46, DD48-DD50, DD52, DD53, DD55, DD56, DD58, DD59, DD61, DD64, DD66, DD69, DD71, DD73], КР1533ЛА1[DD54, DD70], КР1533ЛА2[DD51, DD54, DD57, DD60, DD65, DD74], КР1533ЛА3[DD47], которые подаются на входы триггеров КР1533ТР2 [DD79, DD80].

После этого производится кодирование состояний на дешифраторах. Старшие разряды кода подаются на основной дешифратор (КР1533ИД7 [DD81]), выходы которого разрешают работу нескольких дополнительных дешифраторов (КР1533ИД3 [DD75-DD78, DD82-DD85]). На объединенные входы этих дополнительных дешифраторов подаются младшие разряды входного кода. Используя одну микросхему дешифратор (1) и 8 микросхем дешифраторов (2-9), получаем один дешифратор на 128 выходов.

Благодаря каскадному способу построения дешифратора, получили исходные состояния автомата а0..а116 путем подачи на входы дешифраторов функций возбуждения 51..58.

Управляющие сигналы y1..y117 получаем на микросхемах КР1533ЛН1[DD95-DD104], КР1533ЛА1[DD92], КР1533ЛА3[DD47, DD86, DD89-DD91, DD93, DD94], КР1533ЛА4[DD87, DD88]. Сигналы y1..y117 снимаются со схемы с вилки ГРПМ1У-122ГО2[XP3].

Для шунтирования питания введены блокировочные конденсаторы. Электролитический конденсатор C1 емкостью 10 мкФ служит для фильтрации низкочастотных колебаний, а керамический конденсатор С2 емкостью 680 нФ для фильтрации высокочастотных колебаний.

Принципиальная электрическая схема представлена в Приложении 3.

4. Разработка управляющего автомата с программируемой логикой

.1 Составление карты прошивки УП

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

Рис. 13 - Автомат с естественной адресацией

Количество разрядов операционной части:. Количество разрядов адресной части : .

Структура микрокоманды представлена на рисунке 14.

Тип

Условие

Адресная часть



Операционная часть


0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

Биты

Рис. 14 - Структура микрокоманды

Кодирование условий представлено в таблице 7, кодирование микроопераций - в таблице 8, карта прошивки управляющей памяти представлена в таблице 9.

Таблица 7

Условие

Содержимое

Условие

Содержимое

БП

000000

X24

011000

X1

000001

X25

011001

X2

000010

X26

011010

X3

000011

X27

011011

X4

000100

X28

011100

X5

000101

X29

011101

X6

000110

X30

011110

X7

000111

X31

011111

X8

001000

X32

100000

X9

001001

X33

100001

X10

001010

X34

100010

X11

001011

X35

100011

X12

001100

X36

100100

X13

001101

X37

100101

X14

001110

X38

100110

X15

001111

X39

100111

X16

010000

X40

101000

X17

010001

X41

101001

X18

010010

X42

101010

Х19

010011

X43

101011

Х20

010100

X44

101100

Х21

010101

X45

101101

Х22

010110



Х23

010111




Таблица 8

Операция

Код

Операция

Код

Операция

Код

Операция

Код

ym

0000000

y30

0011110

y60

0111100

y90

1011010

y1

0000001

y31

0011111

y61

0111101

y91

1011011

y2

0000010

y32

0100000

y62

0111110

y92

1011100

y3

0000011

y33

0100001

y63

0111111

y93

1011101

y4

0000100

y34

0100010

y64

1000000

y94

1011110

y5

0000101

y35

0100011

y65

1000001

y95

1011111

y6

0000110

y36

0100100

y66

1000010

y96

1100000

y7

0000111

y37

0100101

y67

1000011

y97

1100001

y8

0001000

y38

0100110

y68

1000100

y98

1100010

y9

0001001

y39

0100111

y69

1000101

y99

1100011

y10

0001010

y40

0101000

y70

1000110

y100

1100100

y11

0001011

y41

0101001

y71

1000111

y101

1100101

y12

0001100

y42

0101010

y72

1001000

y102

1100110

y13

0001101

y43

0101011

y73

1001001

y103

1100111

y14

0001110

y44

0101100

y74

1001010

y104

1101000

y15

0001111

y45

0101101

y75

1001011

y105

1101001

y16

0010000

y46

0101110

y76

1001100

y106

1101010

y17

0010001

y47

0101111

y77

1001101

y107

1101011

y18

0010010

y48

0110000

y78

1001110

y108

1101100

y19

0010011

y49

0110001

y79

1001111

y109

1101101

y20

0010100

y50

0110010

y80

1010000

y110

1101110

y21

0010101

y51

0110011

y81

1010001

y111

1101111

y22

0010110

y52

0110100

y82

1010010

y112

1110000

y23

0010111

y53

0110101

y83

1010011

y113

1110001

y24

0011000

y54

0110110

1010100

y114

1110010

y25

0011001

y55

0110111

y85

1010101

y115

11100011

y26

0011010

y56

0111000

y86

1010110

y116

1110100

y27

0011011

y57

0111001

y87

1010111

y117

1110101

y28

0011100

y58

0111010

y88

1011000



y29

0011101

y59

0111011

y89

1011001




Таблица 9

Пояснения

№ ячейки

Тип МК

Условия

Операционная (адресная) часть

EXT

0000 0000

0


000 0000

НА

0000 0001

0


000 0001

a3

0000 0010

0


000 0010

a4

0000 0011

0


000 0011

Zоп

0000 0100

1

00 0001

0000 0110


0000 0101

1

00 0000

0000 0100

a5

0000 0110

0


000 0100


0000 0111

0


000 0101


0000 1000

0


000 0110

x2

0000 1001

1

00 0010

0000 1101

x3

0000 1010

1

00 0011

0001 1100

x4

0000 1011

1

00 0100

0001 0010

toEXT

0000 1100

1

00 0000

0000 0000

x7

0000 1101

1

00 0111

0000 1111

toEXT

0000 1110

1

00 0000

0000 0000

x8

0000 1111

1

00 1000

0001 0001

toEXT

0001 0000

1

00 0000

0000 0000

x9

0001 0001

1

00 1001

0010 0110

x5

0001 0010

1

00 0101

0001 0100

toEXT

0001 0011

1

00 0000

0000 0000

x6

0001 0100

1

00 0110

0001 0110

to a52

0001 0101

1

00 0000

0110 0100

a8(y7)

0001 0110

0


000 0111

a8(y8)

0001 0111

0


000 1000

y9

0001 1000

0


0001001


0001 1001

0


0001010

y11

0001 1010

0


0001011

to a3

0001 1011

1

00 0000

0000 0010

x17

0001 1100

1

01 0001

0001 1110

toEXT

0001 1101

1

00 0000

0000 0000

x18

0001 1110

1

01 0010

0001 1111

toEXT

0001 1111

1

00 0000

0000 0000

x19

0010 0000

1

01 0011

0010 0010

toEXT

0010 0001

1

00 0000

0000 0000

x20

0010 0010

1

01 0100

0010 0100

toEXT

0010 0011

1

00 0000

0000 0000

x21

0010 0100

1

01 0101

0110 0110

toEXT

0010 0101

1

00 0000

0000 0000

a12

0010 0110

0


000 1100


0010 0111

0


000 1101


0010 1000

0


000 1110


0010 1001

0


000 1111


0010 1010

0


001 0000


0010 1011

0


001 0001

a18

0010 1100

0


001 0010


0010 1101

0


000 1110


0010 1110

0


000 1111

a21

0010 1111

0


001 0000

a22

0011 0000

0


000 0011

x10

0011 0001

1

00 1010

0010 0011

Zоп

0011 0010

1

00 0000

0010 0001

a23

0011 0011

0


000 0100


0011 0100

0


000 0101


0011 0101

0


111 0100

a26y18

0011 0110

0


111 0101


0011 0111

0


001 0011


0011 1000

0


001 0100

x11

0011 1001

1

00 1011

0011 1100

a27

0011 1010

0


001 0101

jmp a29

0011 1011

1

00 0000

0011 1101

a28

0011 1100

0


001 0110

a29 y23

0011 1101

0


001 0111


0011 1110

0


001 1000

y25

0011 1111

0


001 1001

x12

0100 0000

1

00 1100

0100 0011

a30

0100 0001

0


001 1010

jmp a32

0100 0010

1

00 0000

0100 0100

a31

0100 0011

0


001 1011

a32

0100 0100

0


001 1100

a33 y29

0100 0101

0


001 1101


0100 0110

0


001 1110

x13

0100 0111

1

00 1101

0100 1001

jmp x11

1

00 0000

0011 1001

x14

0100 1001

1

00 1110

0100 1101

a34

0100 1010

0


001 0110

a35

0100 1011

0


001 0111

jmp a38

0100 1100

1

00 0000

0100 1111

a36

0100 1101

0


001 1111

a37

0100 1110

0


010 0000

a38

0100 1111

0


010 0001

x15

0101 0000

1

00 1111

0101 1001

x16

0101 0001

1

01 0000

0101 1001

a39 y34

0101 0010

0


010 0010

a39 y35

0101 0011

0


010 0011

a40

0101 0100

0


010 0100


0101 0101

0


010 0101


0101 0110

0


010 0110

a43

0101 0111

0


010 0111

jmp a45

0101 1000

1

00 0000

0101 1011

a44 y40

0101 1001

0


010 1000


0101 1010

0


010 1001

a45 y22

0101 1011

0


001 0110


0101 1100

0


010 1010


0101 1101

0


001 0111


0101 1110

0


010 0001


0101 1111

0


001 0010


0110 0000

0


000 1110


0110 0001

0


010 0100


0110 0010

0


010 0101

a51

0110 0011

0


010 0111

a52

0110 0100

0


010 1011

jmp a3

0110 0101

1

00 0000

0000 0010

a53

0110 0110

0


010 1100


0110 0111

0


010 1101


0110 1000

0


010 1110


0110 1001

0


010 1111


0110 1010

0


011 0000


0110 1011

0


011 0001


0110 1100

0


011 0010


0110 1101

0


011 0011


0110 1110

0


011 0100


0110 1111

0


011 0101


0111 0000

0


011 0110


0111 0001

0


011 0111


0111 0010

0


011 1000

a62

0111 0011

0


011 1001


0111 0100

0


010 1111


0111 0101

0


011 0000


0111 0110

0


011 0011


0111 0111

0


0111 010


0111 1000

0


011 0101


0111 1001

0


011 1011


0111 1010

0


011 0111

a70

0111 1011

0


011 1100


0111 1100

0


011 1101


0111 1101

0


011 1110


0111 1110

0


011 1111


0111 1111

0


100 0000


1000 0000

0


100 0001


1000 0001

0


100 0010

x22

1000 0010

1

01 0110

1000 0100

jmp a76

1000 0011

1

00 0000

1001 1011

x23

1000 0100

1

01 0111

1001 0011

x24

1000 0101

1

01 1000

1000 1101

x25

1000 0110

1

01 1001

1000 1000

jmp a76

1000 0111

1

00 0000

1001 1011

x26

1000 1000

1

01 1010

1000 1011

x27

1000 1001

1

01 1011

1110 0000

jmp a76

1000 1010

1

00 0000

1001 1011

a72

1000 1011

0


100 0011

jmp a106

1000 1100

1

00 0000

1110 0011

x28

1000 1101

1

01 1100

1001 0000

a73

1000 1110

0


100 0100

jmp a106

1000 1111

1

00 0000

1110 0011

x29

1001 0000

1

01 1101

1001 0111

x30

1001 0001

1

01 1110

1001 1001

jmp a73

1001 0010

1

00 0000

1000 1110

x31

1001 0011

1

01 1111

1001 0101

jmp a104

1001 0100

1

00 0000

1110 0000

x32

1001 0101

1

10 0000

1001 0111

jmp a104

1001 0110

1

00 0000

1110 0000

a75

1001 0111

0


100 0011

jmp a108

1001 1000

1

00 0000

1110 0110

a74

1001 1001

0


100 0100

jmp a108

1001 1010

1

00 0000

1110 0110

a76

1001 1011

0


100 0100


1001 1100

0


100 0101


1001 1101

0


100 0110


1001 1110

0


100 0111


1001 1111

0


100 1000


1010 0000

0


100 1001

a79

1010 0001

0


100 1010

x33

1010 0010

1

10 0001

jmp a83

1010 0011

1

00 0000

1010 1010

a80

1010 0100

0


100 1011


1010 0101

0


100 1100


1010 0110

0


100 1101


1010 0111

0


100 1110


1010 1000

0


100 1111


1010 1001

0


101 0000

a83

1010 1010

0


101 0001


1010 1011

0


101 0010


1010 1100

0


101 0011


1010 1101

0


101 0100

x34

1010 1110

1

10 0010

1110 0010

a85

1010 1111

0


101 0101


1011 0000

0


100 1101


1011 0001

0


101 0110


1011 0010

0


101 0111


1011 0011

0


101 1000


1011 0100

0


101 1001

a88

1011 0101

0


101 1010

a89

1011 0110

0


100 1100


1011 0111

0


100 1010


1011 1000

0


100 1110


1011 1001

0


101 1011


1011 1010

0


100 0101

a90

1011 1011

0


101 1100

x35

1011 1100

1

10 0011

1100 0001

x36

1011 1101

1

10 0100

1100 0010

a91

1011 1110

0


100 0110

a92

1011 1111

0


100 1001

jmp x38

1100 0000

1

00 0000

1100 0100

x37

1100 0001

1

10 0101

1011 1110

a93

1100 0010

0


101 0111

a94

1100 0011

0


101 1001

x38

1100 0100

1

10 0110

1100 0111

a95

1100 0101

0


101 1101

jmp x39

1100 0110

1

00 0000

1100 1000

a96

1100 0111

0


101 1110

x39

1100 1000

1

10 0111

1100 1010

jmp a89

1100 1001

1

00 0000

1011 0110

a97

1100 1010

0


101 0111


1100 1011

0


101 1111

x40

1100 1100

1

10 1000

1101 0010

x41

1100 1101

1

10 1001

1101 0100

a99

1100 1110

0


101 1001

jmp a100

1100 1111

1

00 0000

1101 0100

x44

1101 0000

1

10 1100

1101 0100

jmp a99

1101 0001

1

00 0000

1100 1110

x42

1101 0010

1

10 1010

1101 0000

x43

1101 0011

1

10 1011

1100 1110

a98

1101 0100

0


100 1001

a100

1101 0101

0


110 0000

a101

1101 0110

0


110 0001

x45

1101 0111

1

10 1101

1101 1100

a102

1101 1000

0


110 0010


1101 1001

0


110 0011


1101 1010

0


110 0100

jmp x45

1101 1011

1

00 0000

1101 0111

a103

1101 1100

0


110 0101


1101 1101

0


110 0110


1101 1110

0


110 0111

jmp a109

1101 1111

1

00 0000

1110 0111

a104

1110 0000

0


100 0100


1110 0001

0


110 1000

a105

1110 0010

0


110 1001

a106

1110 0011

0


110 1010

a107

1110 0100

0


110 1011

jmp a109

1110 0101

1

00 0000

1110 0111

a108

1110 0110

0


110 1010

a109

1110 0111

0


110 1100


1110 1000

0


110 1101


1110 1001

0


110 1110


1110 1010

0


110 1111


1110 1011

0


111 0000


1110 1100

0


111 0001


1110 1101

0


111 0010

a116

1110 1110

0


111 0011

jmp a52

1110 1111

1

00 0000

0110 0100


1111 0000





1111 0001





4.2 Описание функциональной схемы УА

Запуск управляющего автомата производится сигналом, который переключает триггер в единичное состояние. Инициализируется операция чтения.

После инициализации чтения команды, ее адрес из ПЗУ через мультиплексор передается на счётчик команд. Адрес со счетчика передается в УП. Из управляющей памяти по этому адресу считывается микрокоманда и передается в РгМк (регистр микрокоманд).

Далее анализируется формат микрокоманды (на схеме - по нулевому биту РгМк). Если микрокоманда имеет операционный формат, то операционная часть (биты 7-13 РгМк) заносится в RG2, в котором дешифрируется текущая микрооперация и посылается в ОУ, после чего счётчик переходит на следующий адрес и из УП выбирается новая микрокоманда.

Если микрокоманда имеет адресный формат, то адресная часть (биты 7-14 РгМк) заносится в РгА. Далее биты 1-6 с РгМк посылаются на дешифратор DC2, и, если после получения сигналов из ОУ условие является выполненным, то следует переход на ячейку памяти в ПЗУ, адрес которой находится в РгА. Если условие не выполнено, счётчик осуществляет переход на следующий адрес по-порядку. МПУУ продолжает функционировать, пока активной не станет микрокоманда «нет операции» (ym = 000 0000)

Заключение

В ходе выполнение курсового проекта было выполнено проектирование работы микропроцессора на основе команд из системы команд процессора Intel 486.

Рассматривались следующие команды:

. IMUL r16, r/m16

. FDIV ST(i), ST

. JNA rel8

В курсовом проекте была разработана структура микропроцессора, его функциональная микропрограмма. На основе автомата Мура и RS-триггеров был разработан управляющий автомат с жесткой логикой. Построена принципиальная электрическая схема (на основе микросхем серии КР1533 и элемента серии К531).

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

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


Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!