Смекни!
smekni.com

Функциональная организация и система команд процессора (стр. 1 из 4)

Задание

Построить микропроцессор, выполняющий команды, приведенные в таблице 1.

Команды для проектируемого процессора

Таблица 1

Название команды КОП16
И непосредственное 94
Сложение с нормализацией
Загрузка и проверка 12
Загрузка PSW 82

Должны обрабатываться программные прерывания, возникающие в процессе выполнения команд.

Управляющий автомат синтезируется для части микропрограммы. Синтез УА необходимо выполнять в виде УА программируемой логикой с принудительной адресацией и проверкой двух логических условий

Аннотация

В ходе данного курсового проекта был синтезирован микропроцессор. Принцип его функционирования основан на принципе функционирования ЭВМ общего назначения IBM/370. Для упрощения синтеза данный процессор реализует только четыре команды из набора команд системы IBM/370. Они представляют собой арифметическую, логическую команду, а также команду перехода и команду пересылки, таким образом, охватывая наиболее характерные группы команд. Процессор позволяет обрабатывать различные исключительные ситуации, возникающие в ходе выполнения программы.

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

Содержание

Введение

1. Функциональная организация процессора

1.1 Описание команды “И непосредственное "

1.2 Сложение с нормализацией

1.3 Загрузка и проверка

1.4 Загрузка PSW

2. Синтез операций

2.1 Выборка команды

2.2 Реализация команды “И непосредственное "

2.2 Реализация команды “Сложение с нормализацией”

2.3 Реализация команды “ Загрузка и проверка”

2.4 Реализация команды “ Загрузка PSW"

3. Описание структурной схемы процессора

3.1 Процессор

3.2 Оперативная память

3.3 Регистровая память

3.4 Слово состояния процессора

3.5 Микрооперации и логические условия

4. Синтез управляющего автомата

4.1 Разметка граф схемы

4.2 Разбиение микроопераций по полям и кодирование логических условий

4.3 Прошивка МПЗУ

4.4 Описание Структурной и Электрической принципиальной схемы Управляющего автомата

Перечень используемых сокращений

Список используемой литературы

Заключение


Введение

Данный курсовой проект посвящен разработке микропроцессора, выполняющего некоторый набор команд. Для приближения к структуре и функционированию реальных процессорных устройств были даны команды и принципы работы с внешними устройствами аналогичные реально существующему процессору IBM/370. Разработка процессора - это один из наиболее важных этапов разработки ЭВМ в целом. Несмотря на то, что для функционирования модулей памяти и других внешних по отношению к процессору устройств безразлична внутренняя структура процессора, важно принимать во внимание при выборе набора устройств наиболее характерные типы данных обрабатываемые процессором, типы команд, назначение и функции внешних выводов процессора. В данном случае, так как команды процессора могут иметь длину 16 или 32 разряда, то желательно использовать память, позволяющую считывать одновременно не менее 32 разрядов. Подобный выбор структуры памяти хорошо стыкуется и с наиболее характерными форматами данных, с которыми работает процессор. В данном случае не лишен смысла был и выбор памяти с возможностью выборки 64-разраядных слов, так как процессор работает и с 64-разраядными словами, но так как такая разрядность используется только в одной из микроопераций, а данные при этом находятся в регистровой памяти, то при этом 64-разрядная память использовалась бы исключительно для выборки команд, а магистраль большую часть времени простаивала. Таким образом, была выбрана структура процессора, имеющая 32-разрядную внешнюю и 32-разрядную внутреннюю структуру.

При выборе структуры регистровой памяти учитывалось, то что одновременно не используются регистры с плавающей точкой и регистры общего назначения, поэтому возможно их объединение в одну регистровую память. Различие в формате при этом не является проблемой, так как регистры с плавающей точкой при этом представляются в виде двух 32-разрядных регистров. Это не приводит к уменьшению производительности системы, как было отмечено ранее, магистраль является 32-разрядной и, все равно, нужно производить считывание регистра с плавающей запятой за два обращения к регистровой памяти, а конвейерный способ связи с ней позволил производить это считывание за три машинных такта.

1. Функциональная организация процессора

Процессор должен выполнять следующие команды:

И непосредственное

Сложение с нормализацией

Загрузка и проверка

Загрузка PSW

1.1 Описание команды “И непосредственное "

NI D1 (B1), I2 (SI)

9416 I2 B1 D1

0 8 16 20 31

Поразрядное логическое произведение (И) первого и второго операндов помещается на место первого операнда.

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

В случае команды NC поля операндов обрабатываются слева направо. Если операнды перекрываются, результат получается таким, как если бы операнды обрабатывались побайтно, каждый байт результат записывался в память сразу же после выборки нужного байта операнда.

Признак результата:

0-результат равен 0;

1-результат не равен 0;

2-

1.2 Сложение с нормализацией

AER R1,R2 (RR, короткие операнды)

3A16 R1 R2

0 8 12 15

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

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

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

При сложении коротких операндов мантисса промежуточной суммы состоит из 7 шестнадцатеричных цифр и, возможно, цифры переноса. Если перенос имеет место, сумма сдвигается вправо на одну цифру, и характеристика увеличивается на 1.

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

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

Если перенос из старшей позиции мантиссы промежуточной суммы характеристики нормализованной суммы превышает число 127, то фиксируется особый случай переполнения порядка. Операция завершается путем формирования характеристики, которая на 128 меньше действительного значения, и происходит программное прерывание из-за переполнения порядка. При этом результат будет нормализованным, а знак и мантисса сохраняют правильные значения. В случае команды сложение для расширенных операндов (AXR) сохраняется также правильное значение характеристики младшей части.

Если характеристика нормализованной суммы меньше 0, а мантисса не равна 0, имеет место особый случай исчезновения порядка. Если бит маски исчезновения порядка равен 1, операция завершается путем формирования характеристики, которая на 128 больше действительного значения. Результат нормализуется, а знак и мантисса сохраняют правильные значения. Затем происходит программное прерывание из-за исчезновения порядка. Если исчезновение порядка имеет место, а бит маски исчезновения порядка равен 0, то программное прерывание не происходит. Вместо этого операция завершается путем формирования результата, равного истинному 0. В случае команды сложение для расширенных операндов исчезновение порядка не фиксируется, если характеристика младшей части меньше 0, а характеристика старшей части больше или равна 0.

Если мантисса промежуточной суммы, включая дополнительную цифру, равна 0, имеет место особый случай потери значимости. Если бит маски потери значимости равен 1, то характеристика промежуточной суммы не меняется и становится характеристикой результата. Нормализация не производится, и происходит программное прерывание из-за потери значимости.