Арифметические устройства

Автор: Пользователь скрыл имя, 22 Ноября 2012 в 19:01, курсовая работа

Описание работы

Цель:
Изучить арифметические устройства
задачи:
1.Исследовать арифметические устройства для выполнения логических операций;
2.Привести условно–графическое обозначение микросхемы сумматора;
3.Описать принцип работы арифметических устройств

Работа содержит 1 файл

Чепуштанов Дмитрий (курсовая работа) .doc

— 306.00 Кб (Скачать)

содержание

 

 

 

ВВЕДЕНИЕ

 

 

Рассмотрим  особенность реализации арифметический устройств. Рассмотрим особенность структуры арифметических устройств.

Цель:

Изучить арифметические устройства

задачи:

1.Исследовать арифметические устройства для выполнения логических операций;

2.Привести условно–графическое обозначение микросхемы сумматора;

3.Описать принцип работы арифметических устройств

 

1 Теоритическая часть

    1. Понятие арифметического сопроцессора

 

 

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

Модуль операций с плавающей  запятой (или с плавающей точкой; англ. floating point unit (FPU))— часть процессора для выполнения широкого спектра математических операций над вещественными числами.

Простым «целочисленным» процессорам для  работы с вещественными числами  и математическими операциями требуются  соответствующие процедуры поддержки  и время для их выполнения. Модуль операций с плавающей запятой поддерживает работу с ними на уровне примитивов — загрузка, выгрузка вещественного числа (из специализированных регистров) или математическая операция над ними выполняется одной командой, за счёт этого достигается значительное ускорение таких операций.

1.2 Сопроцессоры Intel семейства x86

 

 

Для процессоров семейства x86 с  8086/8088 по 386, модуль операций с плавающей запятой был выделен в отдельную микросхему, называемую математическим сопроцессором. Для установки сопроцессора на плате компьютера предусматривался отдельный разъём.

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

Одна из схем взаимодействия центрального процессора и сопроцессора, применяемая, в частности, в x86 сопроцессорах, реализуется  следующим образом:

  • Сопроцессор подключен к шинам центрального процессора, а также имеет несколько специальных сигналов для синхронизации процессоров между собой.
  • Часть командных кодов центрального процессора зарезервирована для сопроцессора, он следит за потоком команд, игнорируя другие команды. Центральный процессор, наоборот, игнорирует команды сопроцессора, занимаясь только вычислением адреса в памяти, если команда предполагает к ней обращение. Центральный процессор делает цикл фиктивного считывания, позволяя сопроцессору считать адрес с адресной шины. Если сопроцессору необходимо дополнительное обращение к памяти (для чтения или записи результатов), он выполняет его через захват шины.
  • После получения команды и необходимых данных сопроцессор начинает её выполнение. Пока сопроцессор выполняет команду, центральный процессор выполняет программу дальше, параллельно с вычислениями сопроцессора. Если следующая команда также является командой сопроцессора, процессор останавливается и ожидает завершения выполнения сопроцессором предыдущей команды.
  • Также существует специальная команда ожидания (FWAIT), принудительно останавливающая процессор до завершения вычислений (если для продолжения программы необходимы их результаты). В настоящее время команда используется лишь для обработки исключений при работе с плавающей точкой, работа процессора и сопроцессора синхронизируется прозрачно для программиста.

Начиная с процессора Intel486DX модуль операций с плавающей запятой был интегрирован в центральный процессор и назван FPU. В линейке Intel486SX модуль FPU отключался (поначалу в эту линейку попадали процессоры с бракованным FPU). Для процессоров Intel486SX также выпускался «сопроцессор» Intel487SX, но, фактически, он являлся процессором Intel486DX и при его установке процессор Intel486SX отключался.

Несмотря на интеграцию, FPU в процессорах  i486 представляет собой неизменный сопроцессор, выполненный на том же кристалле, более того, схема FPU i486 полностью идентична сопроцессору предыдущего поколения 387DX вплоть до тактовой частоты (в два раза меньшей, чем частота центрального процессора). Настоящая интеграция FPU c центральным процессором началась только в процессорах Pentium модели MMX.

1.3 Устройство FPU

 

 

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

 

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

 

 

Внутри FPU числа хранятся в 80-битном формате с плавающей запятой, для записи же или чтения из памяти могут использоваться:

  • Вещественные числа в трёх форматах: коротком (32 бита), длинном (64 бита) и расширенном (80 бит).
  • Двоичные целые числа в трёх форматах: 16, 32 и 64 бита.
  • Упакованные целые десятичные числа (BCD) числа — длина максимального числа составляет 18 упакованных десятичных цифр (72 бита).
  • FPU также поддерживает специальные численные значения:
  • Денормализованные вещественные числа — числа, которые меньше минимального нормализованного числа. При формировании такого значения в некотором регистре стека в соответствующем этому регистру теге регистра TWR формируется специальное значение.
  • Бесконечность (положительная и отрицательная), возникает при делении на нуль ненулевого значения, а также при переполнениях. При формировании такого значения в некотором регистре стека в соответствующем этому регистру теге регистра TWR формируется специальное значение.
  • нечисло (англ. not-a-number (NaN)).

Различают два вида нечисел:

  • SNaN (Signaling Non a Number) — сигнальные нечисла. Сопроцессор реагирует на появление этого числа в регистре стека возбуждением исключения недействительной операции. Сопроцессор не формирует сигнальных чисел. Программисты формируют такие числа преднамеренно, чтобы возбудить в нужной ситуации исключение.
  • QNaN (Quiet Non a Number) — спокойные (тихие) нечисла. Сопроцессор может формировать спокойные нечисла в качестве реакции на определённые исключения, например число вещественной неопределённости.
  • Нуль — в формате с плавающей запятой, нуль также считается специальным значением.
  • Неопределённости и неподдерживаемые форматы. Существует много битовых наборов, которые можно представить в расширенном формате вещественного числа. Для большинства их значений формируется исключение недействительной операции.

1.3.2 Регистры

 

 

В FPU можно выделить три группы регистров:

  1. Стек процессора: регистры R0..R7. Размерность каждого регистра: 80 бит.
  2. Служебные регистры:
  • Регистр состояния процессора SWR (Status Word Register) — информация о текущем состоянии сопроцессора. Размерность: 16 бит.
  • Управляющий регистр сопроцессора CWR (Control Word Register) — управление режимами работы сопроцессора. Размерность: 16 бит.
  • Регистр слова тегов TWR (Tags Word Register) — контроль за регистрами R0..R7 (например, для определение возможности записи) Размерность: 16 бит.
  1. Регистры указателей:
  • Указатель данных DPR (Data Point Register). Размерность: 48 бит.
  • Указатель команд IPR (Instruction Point Register). Размерность: 48 бит.

1.3.3 Система команд сопроцессора

 

 

Система включает около 80 команд. Их классификация:

  1. Команды передачи данных:
  • Вещественные данные
  • Целочисленные данные
  • Десятичные данные
  • Загрузка констант (0, 1, число Пи, log2(10), log2(e), lg(2), ln(2))
  • Обмен
  • Условная пересылка (Pentium II/III)
  • Команды сравнения данных
  • Вещественные данные
  • Целочисленные данные
  • Анализ
  • С нулём
  • Условное сравнение (Pentium II/III)
  1. Арифметические команды:
  • Вещественные данные: сложение, вычитание, умножение, деление
  • Целочисленные данные: сложение, вычитание, умножение, деление
  • Вспомогательные арифметические команды (квадратный корень, модуль, изменение знака, выделение порядка и мантиссы)
  1. Трансцендентные команды:
  • Тригонометрия: синус, косинус, тангенс, арктангенс
  • Вычисление логарифмов и степеней
  1. Команды управления:
  • Инициализация сопроцессора
  • Работа со средой
  • Работа со стеком
  • Переключение режимов

2 ПРАКТИЧЕСКАЯ ЧАСТЬ

2.1 Проектирование Счетчика

 

 

Счетчик - это устройство, на выходе которого сигналы в определенном коде отображают число импульсов, поступивших на счетный вход.

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

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

Для проектирования счетчика выбираем значения из таблицы 1, согласно варианта 7

Таблица 1

7

К155ИЕ7

0011

82


На рисунке 1 представлена логическая схема 4-хразрядного суммирующего счетчика на асинхронных Т-триггерах с инверсными динамическими входами

Рисунок 1. Логическая схема 4-хразрядного суммирующего счетчика на асинхронных Т-триггерах с инверсными динамическими входами

Приведем условно-графическое  изображение, которое указано на рисунке 2

Назначение выходов:

1 - вход информационный D2; 2 - выход второго разряда Q2; 3 - выход первого разряда Q1; 4 - вход "обратный счет"; 5 - вход "прямой счет"; 6 - выход третьего разряда Q3; 7 - выход четвертого разряда Q4; 8 - общий; 9 - вход информационный D8; 10 - вход информационный D4; 11 - вход предварительной записи; 12 - выход "прямой перенос"; 13 - выход "обратный перенос";14 - вход установки "0" R; 15 - вход информационный D1; 16 - напряжение питания;

Рисунок 2.условно-графическое изображение К155ИЕ7

Приступаем к расчету:

Разрядность счетчика n можно определить по количеству выходов разрядов. Коэффициент перерасчета N для двоичного счетчика определяется по формуле:

  (1)

Коэффициент перерасчета:N=

Определить код двоичного числа  зафиксированного суммирующим счетчиком  с коэффициентом перерасчета N=16, после поступления на его вход 82 импульса, если предварительно в нем был установлен двоичный код 0011.

Дано:

           N=16

           M=82

           A= 0011


Двоичный код?

Определим сколько импульсов предварительно просчитал счетчик:

А=0011(2)=3(10)

Так как двоичный код 0011 в десятичной системе равен 3,можно определить общее число импульсов, поступивших на счетчик 3+82=85

Чтобы зафиксировать число 85, счетчик  просчитает несколько (К) полных циклов и в последнем цикле зафиксируется  остаток:

85-К•16=85-5•16=5(2)=0101(10)

Остаток-число 5 двоичным кодом 0101 будет  зафиксирован на выходах счетчика.

2.2 Проектирование сумматора

Сумматор –  это устройство, которое преобразует  информационные сигналы в сигнал, эквивалентный сумме этих сигналов. Он выполняет арифметическое сложение кодов двух чисел.

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

 

Для проектирования сумматора выбираем значения из таблицы 2, согласно варианта 7.

Таблица 2

7

1001

0101

10111000

10101100

К155ИМ3


Приведем условно-графическое  изображение сумматор, которое указано  на рисунке 3


 Назначение выводов:

1 - вход слагаемого А4; 2 - выход суммы S3; 3 - вход слагаемого А3; 4 - вход слагаемого В3; 5 - напряжение питания; 6 - выход суммы S2; 7 - вход слагаемого В2; 8 - вход слагаемого А3; 9 - выход суммы S1; 10 - вход слагаемого А1; 11 - вход слагаемого В1; 12 - общий; 13 - вход переноса P0; 14 - выход переноса четвертого разряда P4; 15 - выход суммы S4; 16 - вход слагаемого В4

 

Рисунок 3.Условно-графическое  обозначение сумматора К155ИМ3

 

Исходные данные для  вычисления:

А=1001

В=0101

С=10111000

D=10101100

K155ИМ3

Решение:

        1     1                             - переносы


   А = 1001                            - первое слагаемое  

   В = 0101                            - второе слагаемое


АВ=1011                              - сумма

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

   С =   1011   1000

   D =   1010    1100

Информация о работе Арифметические устройства