21
Организация ЭВМ и систем Тема: Сопроцессоры Взаимодействие ПЭВМ и сопроцессора Особенности программирования ПЭВМ с сопроцессором Форматы данных, система команд

Лекция №4(часть 1) Организация ЭВМ и систем

Embed Size (px)

Citation preview

Page 1: Лекция №4(часть 1) Организация ЭВМ и систем

Организация ЭВМ и систем

Тема: Сопроцессоры

• Взаимодействие ПЭВМ и сопроцессора

• Особенности программирования ПЭВМ с

сопроцессором

• Форматы данных, система команд

Page 2: Лекция №4(часть 1) Организация ЭВМ и систем

Сопроцессор

Сопроцессор – это специализированная

интегральная схема, которая работает в содружестве с

ЦП, но менее универсальна.

Принципиальное отличие процессора от

сопроцессора – только у ЦП есть счетчик команд.

Способы обмена информацией между ЦП и

сопроцессором:

1. Через прямое соединение входных и выходных

портов.

2. С обменом через память.

Page 3: Лекция №4(часть 1) Организация ЭВМ и систем

Математический сопроцессор

Предназначен для:

1. Быстрого выполнения арифметическихопераций с плавающей точкой.

2. Содержит набор констант: 0, 1, log210, log2e,loge2,... .

3. Может выполнять трансцендентные операции:tg, arctg, 2x-1, ylog2x, ....

Стандарт IEEE-754 определяет три основныхспособа кодирования (типа) вещественных чисел.

Page 4: Лекция №4(часть 1) Организация ЭВМ и систем

Машинное представление числа

с плавающей запятой состоит из:

- знака,

- строки значащих цифр, называемой

мантиссой,

- и показателя степени (фиксированного

основания), называемого порядком.

Page 5: Лекция №4(часть 1) Организация ЭВМ и систем

Форматы чисел

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

1. Одинарная точность – 4 байта - 1,18·10-38... 3,40·1038

2. Двойная точность – 8 байт - 2,23·10-308... 1,79·10308

3. Тройная (расширенная) точность – 10 байт - 3,37·10-

4932... 1,18·104392

S Порядок Мантисса

1 бит 8 бит 23 бита

S Порядок Мантисса

1 бит 11 бит 52 бита

S Порядок Мантисса

1 бит 15 бит 64 бит

Page 6: Лекция №4(часть 1) Организация ЭВМ и систем

Способы кодирования вещественных чисел

Вещественное число вычисляется как:

(-1)S·2E·M,где S – знаковый бит числа, E – экспонента (порядок),

M – мантисса.

Если 1≤M<2, то такое число называетсянормализованным. При хранении нормализованныхчисел сопроцессор отбрасывает целую часть мантиссы(она всегда 1), сохраняя лишь дробную часть. Экспонентакодируется со сдвигом на половину разрядной сетки,таким образом, удается избежать вопроса о кодированиизнака экспоненты. Т. е. при 8-битной разрядностиэкспоненты код 0 соответствует числу -127, 1 числу -126,..., 255 числу +126 (экспонента вычисляется как код 127).

(-1)S·(1.f1f2….f23)х2(E-127),

Page 7: Лекция №4(часть 1) Организация ЭВМ и систем

В общем случае все множество двоичных комбинаций

делится на следующие классы:

нормализованные вещественные числа со знаком;

денормализованные вещественные числа со знаком;

ноль со знаком;

бесконечность со знаком;

нечисла (NaN – not a number) – сигнализирующие и

тихие.

Нечисла - специальные значения, существующие

только в вещественных форматах. Они имеют

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

мантиссу.

Page 8: Лекция №4(часть 1) Организация ЭВМ и систем

Структура сопроцессора 8087

Регистр управления

Регистр состояния

015

Управление

интерфейсом

Команда

Очередь

команд

Указатель команды

Указатель данных

031

Блок управления

АD15-0

А19-16

S2-0

АЛУ для

порядка

числа

Тег

01

Сдвигатель

АЛУ для

мантиссы

Регистровый

стек

79 0

R0

R1

R7

Операционный блок

Page 9: Лекция №4(часть 1) Организация ЭВМ и систем

Структура сопроцессора 8087

В 1980 году сопроцессор 8087 был реализован как

отдельный элемент по стандарту института

электрических и электронных разработок IEEE.

Регистр управления – содержит биты масок

особых случаев (маска переполнения, деления на 0).

PC – поле управления точностью (8,9 биты)

11- округление до расширенной точности (по

умолчанию);

10 – округление до двойной точности;

00 – округление до одинарной точности.

RC – поле управления округлением (10,11 биты)

00 – округление к ближайшему (по умолчанию).

01 – округление к +∞ .

10 – округление к -∞.

11 – округление к 0.

Page 10: Лекция №4(часть 1) Организация ЭВМ и систем

Регистр состояния – флаги особых случаев.

ST (11-13 биты) – задается вершина стека.

B (15 бит) – бит занятости:

1 – сопроцессор выполняет определенную команду;

0 – сопроцессор свободен.

Указатель команд (данных) – содержат адреса

последней команды и ее операнда.

Тег (регистр признаков) – характеризует

содержимое соответствующих целочисленных

регистров.

00 – в регистре находится действительное число;

01 – нулевое число в регистре;

10 – недействительное число;

11 – пустой регистр.

Page 11: Лекция №4(часть 1) Организация ЭВМ и систем

Сопроцессор 8087

Схема сопроцессора 8087 делится на 2 устройства:

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

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

Сопроцессор 80287 был создан в 1985 году,

изменения произошли только в устройстве шинного

интерфейса. В отличии от 8087 сопроцессор 80287 не

имеет доступа к ША, поэтому все обращения к памяти

выполняет ЦП.

В сопроцессоре 80387 изменения произошли в

устройстве с плавающей точкой в обработке ошибок,

также был реализован больший диапазон

трансцендентных функций.

Page 12: Лекция №4(часть 1) Организация ЭВМ и систем

В целом базовая программная модель всех

перечисленных сопроцессоров и блока FPU у IA-32

сходная: регистровый стек (восемь 80-битных регистров

R0-R7), слово тегов, регистр управления, регистр

состояния, указатель команды и указатель данных.

Для хранения данных в сопроцессоре предназначены

регистры R0-R7. Эти регистры организованы в стек, и

доступ к ним производится относительно вершины стека

– ST. Номер регистра, соответствующего вершине стека,

хранится в регистре состояния (поле TOS).

Сопроцессор использует теги, чтобы определить

переполнение или опустошение стека.

Указатель команд и указатель данных содержат

логические адреса (селектор сегмента и смещение)

последней команды и ее операнда. Эта информация

используется обработчиком особых случаев

сопроцессора.

Page 13: Лекция №4(часть 1) Организация ЭВМ и систем

Набор регистров блока

FPU Pentium

R7

R0

06364777879

01015

047

Знак Порядок Мантисса

Тег

Регистр управления

Регистр состояния

Слово тегов

Указатель команды

Указатель данных

Page 14: Лекция №4(часть 1) Организация ЭВМ и систем

Система команд

Для команд сопроцессора выделена группа кодов,

начинающаяся с 11011ххх. В ассемблерах мнемоники

команд сопроцессора начинаются с “F”: FADD

(сложение), FCOM (сравнение), FCOS (косинус), FDIV

(деление) и т. п.

Параллельная работа ЦП и сопроцессора

ставит перед программистом проблемы

синхронизации.

Page 15: Лекция №4(часть 1) Организация ЭВМ и систем

Особенности программирования ЦП с

сопроцессоромFIST I; (запомнить в память I)

MOV AX, I

ЦП 80286 начнет выполнять команду MOV раньше, чем

80287 закончит FIST, и в регистр AX будет передано

неверное значение.

FIST I

FADD ST(3)

MOV AX, I

ЦП 80286, встретив FADD, должен ожидать завершение

FIST.

Задача синхронизации процессоров возникает, когда

287 обращается к ячейкам памяти, к которым впоследствии

обращается и 80286. Во всех случаях она решается

вставкой FWAIT между подозрительными командами 287 и

286.

Page 16: Лекция №4(часть 1) Организация ЭВМ и систем

Сопроцессорный интерфейс ЦП Motorola MC 68020

Интерфейс сопроцессора отличается от, например,

интерфейса периферийного устройства тем, что

сопроцессор добавляет в систему новые инструкции,

дополнительные регистры и типы данных, которые

обычно не предусматриваются программной

моделью целочисленного устройства ЦП. Тем не

менее, коммуникационный протокол между ЦП и

сопроцессором прозрачен для программиста, т. к.

реализован аппаратно. Этот коммуникационный протокол

слабо привязан к архитектуре ЦП, так что любой

сопроцессор, реализующий данный протокол, может

быть использован в системе с ЦП MC680x0.

Page 17: Лекция №4(часть 1) Организация ЭВМ и систем

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

MC68020 поддерживается специальный

сопроцессорный интерфейс.

ЦП

MC 68020

Сопроцессор

Интерфейс

CIR

Дешифратор

А19-А13

FC2-FC0

CS

A4 – A0

AS

R/W

DS

DSACK1

DSACK0

D0 – D31

Page 18: Лекция №4(часть 1) Организация ЭВМ и систем

A19 - A13 – определяют операцию и тип сопроцессора.

FC2 - FC0 – передается функциональный код (статус)

сопроцессора.

А4 - А0 – передается номер регистра интерфейса CIR.

AS – строб адреса. Показывает достоверность

адреса на ША.

DS – строб данных.

R/W – определяет направление пересылки.

DSACK1, DSACK2 - подтверждают пересылку и

размер операнда. Служат для определения пересылки и

динамического определения ширины ШД.

Page 19: Лекция №4(часть 1) Организация ЭВМ и систем

Регистры интерфейса CIR

1. Регистр ответа.

2. Регистр управления.

3. Регистр сохранения.

4. Регистр восстановления.

5. Регистр слово операции.

6. Регистр команды.

7. Регистр условия.

8. Регистр выбора.

9. Регистр операнда.

10. Регистр адреса операнда.

11. Регистр адреса инструкции.

16-разрядные

32 - разрядные

Page 20: Лекция №4(часть 1) Организация ЭВМ и систем

Применение сопроцессоров

1. Обработка экономической информации.

2. Моделирование.

3. Графические преобразования.

4. Промышленное управление.

5. Системы числового управления.

6. Роботы.

7. Навигация.

8. Сбор данных.

Page 21: Лекция №4(часть 1) Организация ЭВМ и систем

Вопросы для самоконтроля

1. Что такое сопроцессор?

2. Основные способы обмена информацией между

процессором и сопроцессором.

3. Функции математического сопроцессора.

4. Форматы чисел с плавающей точкой.

5. Основное отличие структуры сопроцессора 8086 от

80286? С чем это связано?

6. Особенности обращения к регистрам сопроцессора

8086 по сравнению с регистрами блока с плавающей

точкой ЦП Pentium?