Проектирование процесса для заданной системы команд
Внутренняя архитектура микропроцессора Intel 486. Формат данных и команд. Регистры общего назначения. Программная модель устройства FPU, регистр флагов. Разработка структуры и микропрограммы микропроцессора, управляющего автомата с жесткой логикой.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 27.05.2013 |
Размер файла | 1,6 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
[Введите текст]
Введение
Микропроцессор - процессор (устройство, отвечающее за выполнение арифметических, логических операций и операций управления, записанных в машинном коде), реализованный в виде одной микросхемы или комплекта из нескольких специализированных микросхем (в отличие от реализации процессора в виде электрической схемы на элементной базе общего назначения или в виде программной модели). Первые микропроцессоры появились в 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.1 Микропроцессор i486
Intel486 (также известный как 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Х для адресации не применялись;
- по возможности ввести новые команды, которые упрощают решение часто встречающихся программных задач, например манипуляций двоичными цепочками, двойного сдвига и др.
0бщий формат команды процессора i486 приведен на Рис. 3. Команды состоят из необязательных префиксов, одного или двух байт главного кода операции, спецификатора адреса, представленного байтами mod r/m и sib, смещения в команде (displacement) и непосредственных данных. Английские аббревиатуры означают следующее: Base - база, MODe - режим, Register/Memory - регистр/память, Scale - масштаб, Index - индекс. Из всех полей команды обязательными являются только один или два байта кода операции.
Префикс - это байт со специальным кодированием, который модифицирует операцию одной находящейся за ним команды.
Рис. 3 - Общий формат команд
Во многих командах процессора байты ModR/M и SIB следуют за байтом (байтами) кода операции. Эти байты содержат следующую информацию:
1.тип индексации или номер регистра, используемого в команде;
2.используемый регистр или дополнительную информацию о коде операции;
3.информацию о базе, индексе и масштабе.
Байт ModR/M состоит из трех информационных полей:
1.поле mod содержит два наиболее значимых бита (7 и 6 биты) и в комбинации с полем r/m определяет 32 возможных типа адресации (8 регистровых и 24 индексных);
2.поле reg содержит следующие за полем mod три бита (5, 4 и 3 биты) и определяет либо номер регистра, либо три дополнительных бита кода операции;
3.поле r/m содержит три последних значащих бита байта ModR/M (2, 1 и 0 биты) и может определять номер регистра, в котором находится операнд, или представлять совместно с полем mod 32 возможных типа адресации.
32-битные базовые и масштабируемые индексные формы адресации требуют наличия SIB байта. Определенная кодировка ModR/M байта сигнализирует о присутствии SIB байта. Байт SIB состоит из следующих полей:
1.поле ss, занимающее два наиболее значимых бита (7 и 6 биты), определяет масштабный множитель;
2.поле index, занимающее следующие три бита за полем ss (5, 4, и 3 биты), определяет номер индексного регистра;
3.поле base, занимающее оставшиеся три бита (2, 1 и 0 биты), определяет номер базового регистра.
На рис. 4 показаны форматы ModR/M и SIB байтов.
Рис. 4 - Формат байтов ModR/M и SIB
Устройство FPU имеет пять форматов команд, представленных на Рис. 5. Во всех форматах минимальная длина команды составляет два.
Команды с форматами, показанными на Рис. 5 (а,б), выполняют обращение к памяти, поэтому поля mod (режим) и r/m (регистр/память) во втором байте, а также байт sib (масштаб, индекс, база) имеют тот же смысл, что и в командах целочисленного устройства. Эти поля определяют, как формируется эффективный адрес ЕА памяти.
Команды с форматом, показанном на Рис. 5 (б), выполняют арифметические операции и операции сравнения. Поле формата памяти MF определяет тип операнда, находящегося в памяти. Оно имеет следующее кодирование:
00 - вещественное число одинарной точности (32 бита),
01 - короткое целое двоичное число (32 бита),
10 - вещественное число двойной точности (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 и т.д.).
1.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) - ошибка точности,
UE (Underflow Error) - ошибка антипереполнения,
ОЕ (Overflow Error) - ошибка переполнения,
ZЕ (divide-by-Zero Error) - ошибка деления на нуль
DE (Denormalized operand Error) - ошибка ненормализованного операнда,
IE (Invalide operation Error) - ошибка недействительной операции.
Рис. 8 - Слово состояния сопроцессора (регистр флагов FPU)
При обнаружении любого из незамаскированных особых случаев устройство FPU устанавливает в состояние 1 соответствующий флажок и формирует активный выходной сигнал, сообщая об особом случае (прерывание 16). Процедура обработки особого случая считывает слово состояния для определения конкретной причины особого случая.
Бит нарушения стека SF предназначен для того, чтобы фиксировать ошибки в работе регистрового стека. Устройство FPU устанавливает его в состояние 1, если команда вызывает переполнение стека (включение в уже заполненный стек) или антипереполнение стека (извлечение из пустого стека).
Бит 8 суммарной ошибки ES (Error Summary) устанавливается в состояние 1 при возникновении любого особого случая и участвует в формировании выходного сигнала FERR#.
Биты кода условия СЗ - СО фиксируют особенности результатов команд сравнения, проверки и анализа. Биты СЗ - СО, в основном, применяются для условных переходов.
2. Разработка структуры и микропрограммы микропроцессора
2.1 Выборка и дешифрация команд
В соответствии с вариантом задания, требуется произвести выборку следующих команд:
- IMUL r16, r/m16 (mod = 00)
- FDIV ST(i), ST
-JNA rel8
1. 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 содержит адрес регистра-операнда из РОН.
2. 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.
3. JNA rel8
Условный переход JNA проверяет флажки CF и ZF на равенство 1. Флажки устанавливает предыдущая команда.
Если проверяемое условие истинно, то производится переход к ячейке, задаваемой операндом. Кодирование наиболее эффективно, когда назначение перехода находится в текущем сегменте кода и в пределах от -128 до +127 байт от первого байта следующей команды.
КОП |
Относительный адрес перехода |
|
01110110 |
8 бит |
Рис. 11 - Структура команды JNA rel8
КОП содержит код команды, а поле с относительным адресом перехода содержит число (rel8), которое будет прибавляться (вычитаться) к счетчику команд.
Команды из памяти выбираются по счетчику команд и записывается в регистр команд. В счетчике хранится адрес текущей команды. После выполнения текущей команды, значение счетчика увеличивается и выборка производится снова. В регистре команд производится дешифрация команд.
2.2 Разработка структурной схемы
На основе анализа форматов заданных команд и данных была разработана структурная схема микропроцессора, которая включает в себя следующие элементы:
1. Оперативная память объемом 4ГБ. Регистр адреса ОП имеет разрядность 31 бит, а регистр информации ОП - 16 бит. Ширина выборки - 16 бит. Разрядность общей шины - 32 бита.
2. Регистры общего назначения с организацией 8Ч16. Разрядность регистра адреса РОН - 3 бита, а регистра информации - 16 бит.
3. Стековая память в FPU с организацией 8Ч80. Разрядность регистра адреса стековой памяти 3 бита, а регистра информации - 80 бит.
4. Регистр флагов сопроцессора (РгSW) - отображает состояния флагов при выполнении команд в формате с плавающей точкой. Разрядность регистра - 16 бит.
5. Счетчик команд (СчК) - хранит адрес следующей команды. Разрядность равна 31 биту.
6. Регистр команд (РгК) - хранит текущую команду. Разрядность равна 16 битам.
Блок АЛУ для операций команды IMUL (блоки 26-72) содержит следующие элементы:
1. Рг1_У и Рг2_У - 16 разрядные выходные регистры АЛУ, хранят множимое и множитель соответственно.
2. Рг2'_У - временный шестнадцатиразрядный регистр, используется для хранения сдвинутого значения множителя в процессе умножения.
3. РгА_У, РгБ_У - входные 16-разрядные регистры сумматора СМ_У.
4. СМ_У - 16-разрядный сумматор, используется для сложения суммы частичных произведений с очередным отрицательным или положительным множимым в ходе алгоритма умножения.
5. РгСМ_У - регистр сумматора СМ_У.
6. СчТ_У - 16-разрядный счетчик итераций умножения.
7. ТЗн - триггер, сохраняющий знак множителя. Введен для того, чтобы произвести нужный тип коррекции произведения после умножения (знак в Рг2_У будет утерян).
Блок АЛУ для операций команды FDIV (блоки 74-161):
1. Рг1, Рг2 - восьмидесяти разрядные входные регистры АЛУ, получают делимое и делитель из стека FPU.
2. РгА_АСт, РгБ_АСт, СМ_АСт, РгСМ_АСт - трехразрядный сумматор с входными регистрами и выходным регистром для вычисления смещения вершины относительно TOP (ST(i)).
3. Рг1_П, Рг2_П - 15 разрядные регистры для хранения порядков операндов.
4. РгА_П, РгБ_П, СМ_П, РгСМ_П - 15 разрядный сумматор для сложения (вычитания) порядков операндов.
5. Сч_П - 15 разрядный счетчик, хранит вычисленное значение порядков, служит для возможного инкремента порядка при денормализации.
6. М2 - комбинационная схема вычисления знака ответа. При том, что знак при делении восстанавливается, этот элемент введен для простановки знака при «критических» случаях деления, например, 0/0 или ?/?.
7. Рг2_М, Рг1_М - 65 разрядные регистры для хранения мантисс операндов. В старший бит записывается знак операнда.
8. ТЗн_М - триггер, который хранит знак делимого, полученного из Рг1_М. Сохраняет знак для выполнения коррекции после деления, так как знаковый разряд Рг1_М сдвинется в процессе деления.
9. Рг1'_М - 65 разрядный регистр, «удлиняющий» делимое. До начала деления равен 0. В процессе деления в нем получается частное.
10. Рг3_М - 65 разрядный регистр, хранящий сдвинутое значение Рг1'_М.
11. РгА_М, РгБ_М, СМ_М, РгСМ_М - 65 разрядный сумматор с входными и выходным регистрами. На нем осуществляется сложение/вычитание в процессе деления.
12. РгРез_ПЗ - 80 разрядный сдвиговый регистр, содержащий подсчитанное частное. Служит для возможной денормализации мантиссы.
13. СчТ_М - 65 разрядный счетчик итераций при делении.
Блок АЛУ для выполнения команды JNA (блоки 14-17):
1. РгА_СчК, РгБ_СчК, СМ_СчК, РгСМ_СчК - 31 разрядный сумматор с входными и выходным регистрами для вычисления нового адреса команды. РгА_СчК принимает значение текущей команды из СчК, РгБ_СчК - смещение, указанное в команде.
2. КСХ - комбинационная схема для анализа флагов.
Расчет организации ОП:
Ширина выборки = 16 бит - разрядность РгИОП
N = 31 - разрядность РгАОП.
Структурная схема микропроцессора представлена в Приложении 1.
2.3 Разработка микропрограммы
Программа в ЭВМ реализуется по средствам последовательного выполнения команд. Она состоит из следующих основных этапов:
- выборка и дешифрация команд;
- выборка операндов;
- выполнение операции;
- запись результата;
- формирование адреса следующей команды.
1. Блоки 1-8: выборка команды.
2. Блоки 9-12, 18-25: дешифрация команды.
3. Блоки 12-16: реализация команды JNA.
4. Блоки 26-72: реализация команды IMUL:
- Блоки 26-31: выбор первого операнда.
- Блоки 33-40: выборка второго операнда из ОП.
- Блок 41: подготовка перед умножением.
- Блоки 42-51: выполнение алгоритма умножения в дополнительном коде.
- Блоки 52-57: коррекция произведения.
- Блоки 58-65: внализ произведения и вывод старшей части ответа в регистр DX.
- Блоки 66-72: вывод младшей (всей) части произведения.
5. Блок 73: инкремент счетчика команд.
6. Блоки 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: вывод ответа в регистровый стек.
7. Блок 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'_М |
|
y33 |
РгСМ_У:=СМ_У |
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. Разработка управляющего автомата с жесткой логикой
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 |
a87 |
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 |
y4 |
S1 |
||
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,y8 |
R3 |
||||
a12 |
101 0011 |
y12 |
S6S7 |
||||
a52 |
101 0100 |
y43 |
S5 |
||||
a53 |
101 0101 |
y44,y45,y46 |
S5S7 |
||||
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 |
011 0100 |
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 |
y4 |
R7 |
||
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 |
y21 |
S1 |
||
a28 |
010 0110 |
y22 |
S5 |
||||
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 |
y26 |
S2 |
||
a31 |
111 0110 |
y27 |
S2S5 |
||||
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 |
y21 |
R5R7 |
||
a28 |
010 0110 |
y22 |
R1R7 |
||||
a34 |
010 0111 |
y22 |
R1 |
||||
a36 |
111 0111 |
y31 |
S3 |
||||
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,y35 |
R2 |
||
a44 |
011 0110 |
y40,y41 |
S6R7 |
||||
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 |
110 1100 |
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 |
y67 |
S3R6 |
||
a73 |
011 1111 |
y68 |
S3 |
||||
y68 |
|||||||
a74 |
011 1110 |
y68 |
S3R7 |
||||
a75 |
010 1110 |
y67 |
R7 |
||||
y67 |
|||||||
a76 |
110 1111 |
y68 |
S1 |
||||
y68 |
|||||||
y68 |
|||||||
a104 |
001 1111 |
y68,y104 |
R2S3 |
||||
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,y76 |
R3 |
||
a83 |
101 1111 |
y81,y82,y83 |
S6 |
||||
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,y77 |
S2 |
||
a105 |
001 1110 |
y105 |
R1 |
||||
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 |
y70 |
S2 |
||
y70 |
|||||||
a93 |
110 1011 |
y88 |
S2R3 |
||||
y88 |
|||||||
a91 |
111 1011 |
a92 |
101 1001 |
y73 |
R2R6 |
||
a92 |
101 1001 |
a95 |
100 1001 |
y93 |
R3 |
||
a96 |
100 1000 |
y94 |
R3R7 |
||||
a93 |
110 1011 |
a94 |
110 1001 |
y89 |
R6 |
||
a94 |
110 1001 |
a95 |
100 1001 |
y93 |
R2 |
||
a96 |
100 1000 |
y94 |
R2R7 |
||||
a95 |
100 1001 |
a97 |
110 1000 |
y87,y95 |
S2R7 |
||
a89 |
100 1011 |
y76 |
S6 |
||||
a96 |
100 1000 |
a97 |
110 1000 |
y87,y95 |
S2 |
||
a89 |
100 1011 |
y76 |
S6S7 |
||||
a97 |
110 1000 |
a98 |
010 1000 |
y73 |
R1 |
||
y73 |
|||||||
y73 |
|||||||
a99 |
010 1001 |
y89 |
R1S7 |
||||
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,y100 |
S3 |
||
a103 |
001 1010 |
y101,y102,y103 |
R2S3 |
||||
a102 |
011 1010 |
a102 |
011 1010 |
y98,y99,y100 |
- |
||
a103 |
001 1010 |
y101,y102,y103 |
R2 |
||||
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 |
Аналитические выражения для термов:
Аналитические выражения для функций возбуждения:
S1=T1+T17+a28+a45+a64+T34+T35+T36+a114
R1=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
S4=a60
R4=a116
S5=a2+T14+T15+a11+T18+a27+T20+a30+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. Разработка управляющего автомата с программируемой логикой
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 |
y84 |
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 |
0100 1000 |
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 |
1010 0100 |
|
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.
Рассматривались следующие команды:
1. IMUL r16, r/m16
2. FDIV ST(i), ST
Подобные документы
Изучение архитектуры персонального компьютера на примере микропроцессора фирмы Intel. Регистры общего назначения. Оперативная память; форматы данных и команд. Команд пересылки с различными способами адресации операндов. Структура программы на Ассемблере.
курс лекций [506,4 K], добавлен 03.05.2014Разработка модели процессора, выполняющего набор машинных команд. Структурная схема процессора (операционного и управляющего автоматов), анализ принципа работы. Содержательный алгоритм микропрограммы, синтез управляющего автомата на основе жесткой логики.
курсовая работа [871,9 K], добавлен 16.09.2010Разработка структурной схемы процессора; синтез микропрограммного и управляющего автомата с жесткой логикой. Функциональная организация процессора: программные модели, форматы данных и команд. Организация оперативной памяти. Проектирование блока операций.
учебное пособие [1,1 M], добавлен 09.04.2013Общая характеристика программной модели процессора Intel x86. Анализ особенностей регистров общего назначения. Назначение команд безусловной передачи управления, рассмотрение функций. Знакомство с проблемами программирования на языке Ассемблера.
курсовая работа [1,6 M], добавлен 04.02.2014Характеристика регистров памяти как устройств временного хранения данных. Различия между прерываниями и исключениями команд, их обработка. Вычисление производительности ЭВМ. Программа с использованием отложенного запуска команд. Виды компьютерных сетей.
контрольная работа [24,9 K], добавлен 09.11.2010Использование пользовательских регистров. Регистры общего назначения. Элементарные и базовые типы данных. Язык микроопераций, ассемблер. Директивы резервирования памяти. Система команд, организация вычислений. Сложные структуры данных. Схемы ввода-вывода.
курс лекций [280,7 K], добавлен 02.12.2009Изучение элементов структуры микропроцессора i80386 и алгоритмов выполнения множества команд. Разработка проекта структуры АЛУ и структуры микро-ЭВМ на базе гипотетического процессора. Описание и создание программы эмуляции по выполнению заданных команд.
курсовая работа [484,4 K], добавлен 07.09.2012Разработка управляющего автомата процессора с жесткой логикой в САПР Quartus II. Построение схемы функциональной микропрограммы команды "Исключающее ИЛИ" в размеченном виде. Унитарное кодирование состояний автомата. Запись функций переходов и выходов.
курсовая работа [671,3 K], добавлен 04.11.2014Функциональная схема микропроцессора Intel 8086 (i8086). Формирование физического адреса памяти, выборка команд из памяти и запись их в очередь команд. Система команд процессора. Суть защищенного режима, переход из защищенного режима в реальный режим.
практическая работа [93,3 K], добавлен 24.03.2013Функциональная и структурная организация ЭВМ. Разработка функциональных микропрограмм заданных команд. Их объединение и привязка к структуре операционного автомата процессора. Разработка управляющего автомата процессора с программируемой логикой.
дипломная работа [4,0 M], добавлен 25.03.2012