Учебное пособие для преподавателей и студентов средних профессиональных учебных заведений по специальности 230101 «Вычислительные машины, комплексы системы и сети»



страница3/17
Дата22.06.2019
Размер3.46 Mb.
ТипУчебное пособие
1   2   3   4   5   6   7   8   9   ...   17

/BE[3/0] A[31/02] D[31/00] W/R#, D/C#, M/IO#,/LOCK
^ /\ /\ /
ADS,/NA,/BS16,/READY
│ ││ ││ ^
│ ││ ││ │ ┌─────────────┐
┌──┴────────┴┴───────┴┴────────────────┴──┐ │
P U
│ │──>├─────────────┤
B I U │ │ очередь │
│ │ │ команд 16б │
└──────────────────────────┬──────────────┘ └──────┬──────┘
│ ┌──────┴──────┐
┌ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ │ ─ ─ ─ ─┐ │
I D U
┌────────────────────┐ │ ├─────────────┤
│ │ ┌──────────────┐│ │<───────│────────>│ очередь МкК ├──┐
PAG │КЭШ стр.дескр.││<───┤ │ 31x100 бит │ │
│ │ └──────────────┘│ │ │ └─────────────┘ │
└───────────┬────────┘ │ ┌──────────────┐ │
│ │ │<───────│────────>│
E U │ │
┌────┴─────────────┴───┐ ├──────────────┤ │
│ │ ┌────────────────┐│ │ │┌────────────┐│ │
MMUSU │ КЭШ сегм. дескр.│ ││файл 32р Рг ││ │
│ │ └────────────────┘│ │ │└────────────┘│ │
└──────────────────┬───┘ │┌────────────┐│ │
└ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ │ ─ ─ ─ ─┘ ││ А Л У 32р ││ │
┌──────────────┐ │ │└────────────┘│ │
│ устройство │<──────┴─────────────────>│┌────────────┐│ │
│ защиты памяти│ ││сдвигат. 64р││ │
└──────────────┘ │└────────────┘│ │
микрооперации └──────────────┘ │
^ ^ ^ ^ ^ ^ │
┌────────────┴──┴──┴──┴──┴──┴────────────┐ │
│ управление микропроцессором │<───────────────┘
└──────────────────────────────────────┬─┘
^ ^ ^ ^ ^ ^ ^ │
│ │ │ │ │ │ │ │
PE REQ │ /ERROR │ NMI │ │ v
/BUSY /RESET INTR HOLD HLDA
└─────────────────────────────┘ └─────────┘

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


микропроцессором арбитража

Рисунок 1.4. Структурная схема микропроцессора i386.

*) Термин ДЕСКРИПТОР в блоке MMU означает ключевое слово, описатель адреса страницы или сегмента и содержит физический адрес – эквивалент логического (математического) адреса в команде.

Описание функций блоков микропроцессора.

1. BIU (Bus Interface Unit) – устройство сопряжения с шиной. Системная шина осуществляет обмен информацией между CPU и подсистемами ВС.

2. PU (Prefetch Unit) – устройство предварительной выборки команд, представлено узлом управления конвейером команд и 16-битовым стеком команд дисциплины FIFO (First Input – First Output: первым пришел – первым вышел).

3. IDU (Instruction Decode Unit) – устройство декодирования команд, состоит из:

- декодера команд, осуществляющего дешифрацию полей команд первой ступени (определение типа и формата команды) и

- стековой памяти из 31-го 100-битовых полей, дисциплины FIFO, определяющих собственно набор микроопераций выполняемых команд. Стеки PU и IDU программно недоступны.

4. EU (Execution Unit) – устройство обработки данных, предназначено для хранения и обработки данных, выполнения команд и формирования кодов состояний CPU. EU включает в себя группу (файл)
32-битовых регистров:

1) EAX – аккумулятор;

2) EBX – адресный регистр базы данных;

3) ECX – счетчик операций цикла;

4) EDX – 64-Кбайтный адрес порта ПУ, либо адрес хранения старшей половины операнда в командах умножения и деления;

5) AX, BX, CX, DX – регистры хранения адресов 16-битовых операндов;

6) AL, AH, BL, BH, CL, CH, DL, DH – регистры хранения адресов 8-битовых операндов;

7) ESP и EBP – группа 32-битовых регистров указателей стеков для работы со стековыми сегментами;

8) ESI и EDI – регистры индексов, для хранения смещения адреса относительно базы при чтении или записи в память;

9) SP, BP, SI, DI – регистры для хранения 16-битовой информации,

10) EFLAGS – 32-битовый регистр флагов, включающий в себя:

- 6 статусных флагов (устанавливаются по результатам выполнения соответствующих операций);

- 2 управляющих флага, разрешающих включение режима VM86 и игнорирования (блокировки) ошибок при отладке программы по шагам;

- 2 системных флага, используемых в режиме РМ,

11) EIP (Instrucktion Pointer) – 32-битовый регистр счетчика команд (IP – 16-битовая секция счетчика команд). Счетчик команд программно недоступен.

12) CR0 СR3 – три 32-разрядных регистра управления, которые, совместно с системными регистрами, сохраняют информацию о состоянии CPU во время выполнении задачи. СR1 не используется.



Механизм отладки программ в микропроцессоре i386 позволяет:

1) введение в программу точек разрыва;

2) пошаговый (покомандный) режим выполнения программы;

3) программирование четырех адресных контрольных точек останова (DR0 – DR3). В реализации режима останова участвуют также регистры состояний DR6 (статусный) и DR7 (управляющий) из регистра EFLAGS. Оба регистра – TR6 и TR7 используются также для самодиагностики CPU. Режим самодиагностики запускается по заднему фронту сигнала RESET при условии, что сигнал /BUSY = L (Low – нижний уровень).

5. SU (Segmentation Unit) – блок сегментации, осуществляет первую ступень преобразования адресов, и состоит из 16-битовых регистров для хранения базовых текущих адресов, или сегментов в RM, либо селекторов в РМ и содержит:

1) CS (Code Segment) – селектор или сегмент кода;

2) SS (Stack Segment) – начало стекового сегмента;

3) DS, ES, FS, GS (Data Segments) – регистры сегментов данных.

Для организации режима виртуальной памяти в CPU i386 имеется механизм, включающий системные регистры:

1) GDTR (Global Descriptor Table Register) – регистр глобальной дескрипторной таблицы,

2) LDTR (Local Descriptor Table Register) – регистр локальной дескрипторной таблицы,

3) IDTR (Interrupt Descriptor Table Register) – регистр таблицы дескрипторов прерываний,

4) TR (Task Register) – регистр селектора сегмента состояния задачи (TSS).

6. PAG (Paging Unit) – блок страничной организации памяти. Это вторая ступень (первая – SU) для доступа к страничным ячейкам при виртуальном преобразовании адреса. SU и PAG входят как независимые узлы в MMU (Мemory Managment Unit).



ПРИМЕЧАНИЯ по тексту:

1) полярность активности логического сигнала может быть прямой (положительной) или инверсной (отрицательной).



ПРЯМЫЕ активные сигналы в таблицах и на схемах обычно не имеют особых отметок или, в исключительных случаях, имеют индекс high перед именем сигнала.

ИНВЕРСНЫЕ активные сигналы имеют равносильные обозначения:

- минус перед именем сигнала,

- знак "/" (слэж) перед именем сигнала (например, /ERROR),

- надчеркивание,

- знак # после имени (например, BUSY#), или

- индекс L (Low) после имени;

2) для принятой системы счисления за цифровым обозначением следует буквенный указатель:

- h (hex) - шестнадцатеричная,

- d (decimal) - десятичная, или

- b (binare) - двоичная система счисления;



3) размещение байтов в регистрах различно: обычно информация о составе байтов, заключенных в ячейки памяти, разделяется двоеточием, а при акцентировании конкретного бита, входящего в состав регистров или шин, принято обозначение бита (разряда) – его номером в квадратных скобках (например, EFLAGS[17]).

Назначение линий и сигналы интерфейса CPU.

D[31/00] (Data) – двунаправленная шина данных с тремя состояниями. Сигналы шины синхронные.

BS16# (Bus Size 16) – вход, связывающий CPU с 16-битовой шиной (режим i286). Если операнд – двойное слово, то BIU переключается на трансляцию в линию D[15/00] двух слов за два цикла обмена. Сигнал синхронный.

ВЕ0# - ВЕ3# – выходные стробы данных, линии с тремя состояниями. Сигналы показывают, какие байты 32-разрядной шины используются в текущей передаче. Вырабатываются при внутренней дешифрации двух младших разрядов адреса А[01/00] (см. Таблицу 1,2. Коды передачи байтов по системной шине).

А31-А0 – выходные адресные линии с Z-состоянием, обеспечивающие физическую адресацию памяти или УВВ.

W/R# (Write/Read) выходные линии с Z-состоянием, определяющие

D/C# (Data/Control) тип цикла шины. Сигналы действительны только

M/IO# (Memory/Input-Output) при активном уровне /ADS=L.

ADS# (Address Strobe) – выход строба адреса. Линия с Z-состоянием, по которой поступает сигнал к ВУ, о том, что начался цикл шины, определяемый сигналами управления W/R#, M/IO#, D/C#, /BE0- /BE3 и адресными линиями A[31/02] и адрес на них достоверен.

RESET (сброс) – асинхронный вход, останавливающий выполнение любой операции в CPU и переводящий его в состояние сброса. Сигнал определяется CPU по уровню и имеет наивысший приоритет. Это состояние реализуется на 15 и более периодов CLK2, но за 78 и более периодов CLK2 до запуска самодиагностики. На время действия RESET сигналы на входах CPU игнорируются, а выходы переводятся в пассивное состояние: /ADS=H, D[31/00]=Z, A[31/02]=H, /BE0-/BE3=L, W/R#=H, M/IO#=L, /LOCK=H, HLDA=L.

READY (готов) – синхронный сигнал, указывающий, что текущий ЦИКЛ ШИНЫ завершен, байты, определяемые сигналами /ВЕ0-/ВЕ3, /BS16, приняты или переданы. В первом такте цикла сигнал игнорируется, в остальных – анализируется, пока не станет активным. Внешнее оборудование, не способное закончить обмен за 2 такта, продлевает цикл, удерживая CPU в состоянии Time Out.

/NA (Next Addres) – синхронный сигнал для запроса следующего адреса, сообщает CPU, что система готова принять от него новые значения адресов и сигналов управления циклом обмена, даже если завершение текущего цикла шины не подтверждено сигналом /READY.

CLKвнутрипроцессорная частота CPU i386. Она вдвое ниже подводимой к входу CLK CPU от генератора тактовых импульсов. Для каждого периода CLK2 есть две фазы – Ф1 и Ф2, внутренней синхронизации микроопераций в CPU, но они могут быть синхронизированы с задним фронтом RESET. Различаются такты Ts и Tc, составляющие цикл обмена.

/LOCK – выходная шина с Z-состоянием, определяет тип цикла шины с блокировкой. Активизируется установкой /ADS=L в начале цикла шины с конвейеризацией адресов, или в циклах INTA. Применяется в мультипроцессорных системах и сигнализирует о том, что CPU выполняет операцию с несколькими циклами шины, которая не должна прерываться. Сигнал вырабатывается автоматически, при выполнении префикса /LOCK в циклах INTA и при смене страничных таблиц.

HOLD (Bus Hold Request) – запрос захвата шины. Синхронный входной сигнал, устанавливаемый другим CPU, или интеллектуальным УВВ для работы с шиной. Анализируется фронтом CLK2 и, пока HOLD активен, CPU следит за его уровнем, устанавливая в конце цикла обмена ответный сигнал HLDA.

HLDA (Bus Hold Asknowlege) – синхронный выход подтверждения передачи управления шиной другому, активному CPU или УВВ. В ответ на запрос HOLD, CPU переходит в состояние подтверждения захвата. На входе NMI возможно появление только одного запроса, запоминающегося в CPU для обработки его после снятия сигнала HOLD.

INTR (Interrupt – прерывание) – асинхронный вход, инициирующий последовательность прерывания в CPU, аналогичен для любого i80x86 CPU.

NMI (Non Maskable Interrupt) – немаскируемое прерывание, сигнализирует CPU о появлении критической ошибки в ВС, не позволяющей правильно продолжить операцию (например, – ошибка адресов или данных в ОЗУ). Текущая программа прерывается и ситуация обрабатывается специальной программой для принятия решения (перезапрос данных, повторное выполнение операции, или сигнализация о неработоспособности ВС).

PE REQ (Co-processor Request) – запрос прерывания от FPU. Асинхронный вход, указывающий, что FPU нужен обмен с памятью (сам FPU обменом не управляет). CPU отвечает сигналом синхронизации, после чего FPU выполняет циклы обмена между локальной шиной и портами регистров данных FPU.

/BUSY (занят) – асинхронный вход, анализируемый по уровню командой WAIT, автоматически выдаваемой CPU, при обнаружении активного входа /BUSY=L (признак наличия ошибки, особой ситуации, или выполнения FPU очередной операции). На время активизации сигнала /BUSY, CPU выполняет такты ожидания. Если во время среза RESET сигнал /BUSY=L, то CPU выполняет процедуру самодиагностики.

ERROR (ошибка), – асинхронный вход, анализируемый по уровню. Указывает, что при выполнении команды в FPU сформирован незамаскированный в регистре состояния FPU код ошибки. CPU вырабатывает прерывание типа 10h, но чаще – аппаратное прерывание типа 75h по линии IRQ13.

Какие именно байты (A, B, C или D), из четырех возможных, машинного слова будет передаваться по системной шине ISA за один цикл обмена, определяются кодами управляющих сигналов ВЕ3# - BE0#. Коды передачи байтов по системной шине приведены в таблице 1.2.

Возможные типы циклов шины приведены в таблице 1.3. Символ #, стоящий после названия сигнала означает, что активный уровень сигнала – нижний. Сигнал М означает обмен с DRAM, IO – обмен с портом, D – передача данных, С – передача команды, W – запись, R – чтение DRAM или порта соответственно.
Таблица 1.2. Коды передачи байтов по системной шине.

/BЕ3 /ВЕ2 /ВЕ1 /ВЕ0 БАЙТЫ В 32-БИТОВОМ СЛОВЕ ДАННЫХ
D(D24/31) C(D16/23) B(D8/15) A(D0/7)
1 1 1 0 - - - A
1 1 0 1 - - B -
1 0 1 1 - C - C
0 1 1 1 D - D -
1 1 0 0 - - B A
1 0 0 1 - C B -
0 0 1 1 D C D C
1 0 0 0 - C B A
0 0 0 1 D C B A
0 0 0 0 D C B A

Таблица 1.3. Типы циклов шины.

M/IO# D/C# W/R#
0 0 0 - подтверждение прерывания
0 0 1 - не используется
0 1 0 - чтение данных из УВВ
0 1 1 - запись данных в УВВ
1 0 0 - чтение команды из ОЗУ
1 0 1 - 1) останов: Addr=2, /BE0-/BE3=1101, A[31/2]=0
- 2) отключение: Addr=0, /BE0-BE3=1111,A[31/2]=0
1 1 0 - чтение данных из ОЗУ
1 1 1 - запись данных в ОЗУ

Из таблицы типов циклов шины видно, что циклов шины может быть восемь:

1) чтение ОЗУ без блокировки шины (/LOCK=H),

2) чтение ОЗУ с блокировкой шины (/LOCK=L),

3) запись в ОЗУ без блокировки шины (/LOCK=H),

4) запись в ОЗУ с блокировкой шины (/LOCK=L),

5) чтение из УВВ или регистров FPU,

6) запись в УВВ или в регистры FPU,

7) подтверждение прерывания,

8) цикл останова или выключения.

Но основных, обменных циклов, – четыре: чтение ОЗУ, запись в ОЗУ, чтение порта ввода-вывода и запись в порт ввода-вывода. Остальные циклы шины либо варианты основных (с блокировкой или без блокировки), либо служебные, а не обменные.

1.4.3.3) Конвейерная обработка команд в CPU

Шесть автономных блоков микропроцессора i386 составляют систему конвейерного выполнения команд.

Исполнение команды, в общем виде, состоит из 6 тактов:

ФАК──>ВК──>ФАО──>ВО──>ОП──>ЗпРез

здесь:


ФАК – формирование адреса команды,

ВК – выборка команды,

ФАО – формирование адреса операнда,

ВО – выборка операнда,

ОП – выполнение текущей операции,

ЗпРез – запись результата операции.



Конвейерное выполнение программы – это когда в разных автономных блоках микропроцессора одновременно выполняются разные такты нескольких смежных команд. Например, ЗпРез команды n-1, собственно ОП команды n, ФАК команды n+1, ВК команды n+2 и ФАК команды n+3.

Обработка команды в CPU i386, в свою очередь, состоит из четырех этапов:

1) преобразование адресов при сегментированной или страничной организации памяти (выполняется в блоке MMU);

2) выборка полей команды из ОЗУ и накопление их в стеке очереди команд (выполняется в PU);

3) дешифрация команд из очереди и накопление дешифрованных кодов операций в стеке декодированных команд (выполняется в блоке IDU);

4) выполнение операции в EU, под микропрограммным управлением, и формирование статусных флагов.

Для ускорения выполнения команд в CPU, моделей i386 и старше, организован конвейер команд:

- каждая из команд в свое время находится в стадии выборки, хранения, дешифрации, формирования адреса и – выполнения;

- для смежных команд эти стадии (такты выполнения) обычно выполняются разными узлами CPU одновременно, в режиме совмещения, если соответствующие узлы микропроцессора в это время свободны;

- работа CPU, по отношению к системной магистрали, синхронна, а между узлами BIU, PU, IDU, EU – асинхронна.

Счетчик команд EIP в EU автоматически модифицирует адрес следующей команды по словам или двойным словам, в зависимости от длины команды, задаваемой входом /BS16. Информация в EIP, системных и сегментных регистрах блока MMU используется при формировании физического адреса для выборки следующей команды.

Одновременно с адресным формированием в EU, в работе находится одна из команд очереди в IDU, в которое, в свой черед, подгружается команда из PU.

Обмен данными между CPU и системой осуществляет BIU по запросу от EU, либо при наличии свободного места в очереди команд.

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

В многопроцессорных системах, когда шина передается от одного ведущего модуля другому, отключаемые модули переводят свои шины в состояние высокого импеданса – Z-состояние. В это время отключенный от шины CPU, или контроллер имеет возможность автономно выполнять все команды, находящиеся в стеках, до тех пор, пока CPU не потребуется шина для обмена. Если же в это время шина все еще занята, то CPU прекращает работу, находясь в состоянии ожидания (Time-Out), пока шина не освободится (линия /READY=H, т. е. пассивна).

Контрольные вопросы.

1. Из каких тактов состоит выполнение команды в CPU?

2. Что такое цикл шины в РС?

3. В чем смысл сигнала HOLD?

4. В чем смысл сигнала HLDA?

5. Как реагирует микропроцессор на сигнал INTR?

6. В чем особенность сигнала NMI?

1.4.3.4) Режимы работы микропроцессора i386

CPU i386 допускает работу в четырех режимах:

- RM – реальном,

- РМ – защищенном,

- VM-86 – виртуальном и



- РРМ – страничном.

1. RM – режим реальной адресации, соответствует работе системы i8086 и используется только в MS DOS. Область адресов, шириной в 1 Мбайт, не защищена, реализовано до 20 адресных линий (из 32-х, возможных для микропроцессора i386), режим однопользовательский. Для работы с 32-разрядными операндами и реализации дополнительных режимов адресации используется префикс переадресации, двухбайтовый адрес не превышает границы сегмента в 64 Кбайт (0000 - FFFF), иначе фиксируется особая ситуация с прерыванием типа 13h. Для доступа к 1 Мбайт адресного пространства используются линии адреса [A19-А02] и /BE0 – /BE3. Страничный механизм доступа к памяти отключен, исполнительный адрес всегда соответствует физическому, все сегменты могут находиться в состоянии записи, считывания или выполнения.

2. РМ – защищенный режим, или режим виртуальной адресации. При включении РС всегда устанавливается режим RM, а для перевода его в РМ используются системные команды LMSW и SMSW. При установке бита PF=1 в MSW, CPU переходит в РМ. В режиме РМ реализуется доступ к 4 Гбайт ОЗУ в 32-битовом пространстве исполнительных адресов, а доступ к 64 Тбайт ОЗУ реализуется в логическом (виртуальном) адресном пространстве. Виртуальная адресация – это способ организации доступа к информации, большая часть которой располагается не в физическом ОЗУ, а во внешней (дисковой) памяти, откуда она, по мере необходимости, перекачивается в ОЗУ (swapping), но программа видит иллюзию размеров ОЗУ в 64 Тбайт. Предусмотрена защита памяти по многоуровневому принципу защиты ОС и прикладных программ и реализуется мультипрограммность. Для обратного перевода из режима РМ в RM, команды LMSW и SMSW не используются, а система должна быть перезагружена либо аппаратно ("холодный" рестарт), либо аппаратно-программно – через порты 64h и 60h контроллера 8048 (KBD), командой OUT и далее, через сигнал RS и узел Shut Down, – к входу RESET CPU, как при "теплом" рестарте, осуществляемом нажатием комбинации клавиш Ctrl+Alt+Del.

Для программного перехода из режима PM в RM может быть также использована ассемблерная команда MOV CR0 (LCR0).



3. VM-86 – это режим виртуальной адресации i86. Режим устанавливает исполнительную среду i8086 внутри многозадачной среды PM CPU i386. При этом поддерживается выполнение всех программ для предыдущих поколений микропроцессоров ix86. Сначала, в рамках VM86, формируется 20-разрядный линейный адрес по системе RM, но включается механизм страничной адресации и система двухуровневой защиты памяти. Адрес, шириной в 1 Мбайт, может быть разбит на 256 страниц по 4 Кбайт каждая и размещен в физическом адресном пространстве до 4 Гбайт. В этом объеме адресов ОЗУ можно, в окнах (frame) по 1 Мбайт, расположить множество копий MS DOS, или других ОС и пользовательских программ, представляющих отдельные виртуальные машины, работающие в многозадачном режиме.

Вход и выход в режим VM86 возможен следующими способами:

- загрузкой регистра флагов EFLAGS [17];

- переключением с задачи на задачу с использованием сегмента состояния задачи (TSS);

- в процедуре прерывания (команда IRET);

- ассемблерной командой POPF.



4. РРМ – режим страничной адресации. Это режим управления памятью, позволяющий разделить большие объемы информации на компактные блоки по 4 Кбайт.

Для реализации режима РРМ в CPU i386 дополнительно включается страничный механизм, транслирующий линейный адрес – в физический.

Переход из RM в РРМ – программный, командами LMSW, SMSW, MOV CR0, MOV CR3. Обратный переход осуществляется либо перезагрузкой, либо программно, с помощью бита 31 в регистре CR0.

Контрольные вопросы.

1. Что представляет собой и для чего предназначен режим RM CPU i386?

2. Что такое виртуальная адресация в режиме РМ CPU i386?

3. Для чего предназначен режим VM86 CPU i386?

4. Какой режим устанавливается при включении CPU i386?

5. Как можно перейти из режимов РМ, РРМ в режим RM?


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

Равнозначны следующие аббревиатуры обозначения математического сопроцессора:

NDP (Numeral Data Processor),

MCP (Math Co-Processor),

FPU (Floating Point Unit),

APU (Accelerate Processor Unit).

Для однозначности – примем обозначение FPU.

FPU выполняет следующие функции:

- операции с плавающей точкой;

- вычисление тригонометрических функций;

- логарифмирование;

- работу с двоично-десятичными числами.

Эти операции выполняются FPU по собственной микропрограмме, значительно (до 150 раз) быстрее, чем CPU, хотя CPU может их выполнять и сам, при наличии программ-эмуляторов режима совместимой с FPU работы, но медленнее. Так что FPU необязателен, и целесообразен только при больших объемах вычислений с плавающей точкой и т.п. Впрочем, успехи технологии СБИС позволяют интегрировать FPU прямо в кристалл CPU, так что современные CPU, начиная с i486 и Pentium, имеют встроенный в CPU математический сопроцессор.

FPU поддерживает вещественные, целые и двоично-десятичные числа, представленные в формате с плавающей точкой:

(-1)S[1.f1 – f(23,52,63)]*2[E – (127,1023,16383)]

где

S = 0 – знак мантиссы "+",



S = 1 – знак мантиссы "–",

f – мантисса,

Е – экспонента,

(23, 52, 63) – размеры поля дробной части мантиссы действительных данных в коротком, длинном и временном формате операндов с FP, соответственно,

(127, 1023, 16383) – величины смещения, вычитаемые из характеристики (характеристика включает в себя знак порядка) для представления истинного порядка.

Имеются два поколения FPU:

- 8087, 80287 - имеют неполное соответствие существующему стандарту IEEE-75-4-1985;

- 80387, 80387DX ,80387SX ,80287A ,80287XL, 80C187, 80487SX – стандартизованы и их скоростные характеристики выше.

FPU i387 может работать с CPU синхронно или асинхронно, поэтому FPU подбирается для совместной работы с CPU на частотах, равных, или выше рабочей частоты CPU.

FPU i287 тоже может использоваться в РС 386, но имеет асинхронный интерфейс с CPU.

FPU i387, для выравнивания скорости интерфейса FPU и скорости работы локальной шины данных CPU, имеет буфер данных (DB), стек типа FIFO и, в отличие от i287, работает без тактов ожидания. Обобщенная структурная схема FPU приведена на рисунке 1.5. Фирма WEITEK Corp. производит сопроцессоры WTL3167, WTL4167 (для CPU 386 и 486 соответственно) – самые скоростные модели, однако несовместимые с FPU классической архитектуры, как по системе команд, так и по способу их загрузки. Для их работы требуются специальные программные средства поддержки, фирм Metaware или Microway.

Фирма Cyrix производит менее скоростные, но самые точные FPU 83D87 (для i386DX), 83S87 (для i386SX), 82S87 (для i286). Это FPU классической архитектуры, но их производительность на 25% выше, чем i387, так как все критичные по времени процессы реализованы жесткой логикой (аппаратные умножитель и АЛУ мантиссы, 90-разрядные регистры и т. д.). Энергопотребление их втрое ниже, чем i387.

При объединении CPU i386 c FPU i387, в адресное пространство CPU добавляются адреса портов ввода-вывода регистров данных FPU i387: 800000F8–800000FFh (адреса портов FPU F8–FFh).




Поделитесь с Вашими друзьями:
1   2   3   4   5   6   7   8   9   ...   17


База данных защищена авторским правом ©vossta.ru 2019
обратиться к администрации

    Главная страница