
- •Кафедра вычислительной техники
- •Санкт-Петербург
- •1. Техническое задание
- •2. Структурная схема разрабатываемой системы
- •3. Описание архитектуры на регистровом уровне
- •3.1. Центральный процессор
- •3.2. Сопроцессор
- •3.3. Форматы данных
- •3.4. Форматы команд
- •3.5. Способы адресации
- •3.6. Система команд
- •3.7. Команды сопроцессора
- •3.8. Организация виртуальной памяти
- •4. Структура выводов кристаллов
- •5. Временные диаграммы выполнения основных операций на шине
- •6. Описание функционирования автоматов
3.7. Команды сопроцессора
Все команды сопроцессора делятся на две группы:
Команды записи и чтения в регистры сопроцессора.
Арифметические команды с плавающей точкой.
3.7.1. Команды записи и чтения регистров сопроцессора
FFMOV REC,SR1 – копирует данные из регистра процессораSR1в регистр сопроцессора заданныйREC (регистрами сопроцессора являются R32 – R63).
FTMOV REC,SR1 – копирует содержимое регистра сопроцессораSR1в регистр центрального процессора REC.
FLW REC,<SR1+Imm> –загружает 32-разрядное число с ПТ по адресу<SR1+Imm> регистра центрального процессора в 64-разрядный регистрRECсопроцесора.
FLDW REC,<SR1+Imm> – загружает64-разрядное число с ПТ с адреса<SR1+Imm>, заданного регистром центрального процессора, в 64-разрядный регистрRECсопроцесора.
FSW SR1,<SR2+Imm> – сохраняет содержимое регистраSR1, как 32-разрядное число с ПТ. Адрес ячейки задается регистромSR2иImm.
FSDW SR1,<SR2+Imm> – сохраняет 64-разрядное число с ПТ изSR1 по адресу<SR2+Imm>.
FMFFL REC – читает состояние регистра флажков сопроцессора.
FMTFL SR1 – записывает новое значение регистра флажков.
3.7.2. Арифметические команды с ПТ
FADD REC,SR1,SR2 –сложение с ПТ регистровSR1иSR2. Результат записывается вREC.
FSUB REC,SR1,SR2 – вычитание.
FDIV REC,SR1,SR2– деление с ПТ регистраSR1наSR2.Результат заносится вREC.
FADD REC,SR1,SR2– умножениеSR1наSR2. Результат заносится вREC.
FSQRT REC,SR1 – вычисление квадратного корняSR1.
FSIN REC,SR1 – вычисление синусаSR1.
FCOS REC,SR1 – вычисление косинуса SR1.
FTAN REC,SR1 – вычисление тангенсаSR1.
FASIN REC,SR1 – вычисление арксинусаSR1.
FACOS REC,SR1 – вычисление арккосинусаSR1.
FATAN REC,SR1 – вычисление арктангенсаSR1.
FLOG REC,SR1 – вычисление натурального логарифмаSR1.
FEXP REC,SR1 –вычисление экспонентыSR1.
3.8. Организация виртуальной памяти
В командах использующих обращение к памяти возможна адресация 4Гб памяти, адрес которой состоит из:
Биты 0-11 - указывают сдвиг внутри заданной страницы размером4Кб
Биты 12-21 - определяют номер страницы в таблице страниц
Биты 31-22 - задают номер элемента каталога страниц, содержащего адрес таблицы страниц
Элементы каталога страниц и таблицы страниц состоят из 4-байтовых элементов следующего вида:
|
|
|
|
|
|
(14) |
|
|
|
|
|
|
|
|
|
|
|
| |||||||||||||
|
|
|
|
|
|
Физический адрес |
|
|
O |
T |
D |
A |
S |
E |
I |
C |
P |
W | |||||||||||||
31 |
30 |
29 |
28 |
27 |
26 |
25 |
|
|
|
|
|
|
|
|
|
|
|
|
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Рис. 9
W=1 - запись разрешена
W=0 - запись запрещена
P=1 - присутствие страницы в памяти
C=1 - кэшировать
I=1 - сквозная запись
E=1 - можно запускать команды расположенные на странице
S=1 - процессор работает на ней в режиме супервизора
независимо от содержимого регистра флажков
A=1- были обращения
D=1 - содержимое страницы изменялось
T=1 - страница хранит указатели наTSS
O=1 - разрешены операции записи в любой порт
Если данный элемент является элементом каталога страниц, то биты I, E, S, D, T, O не используются.
TSS представлены вследующем формате:
Байты |
Размер |
Содержимое |
0-511 |
512 |
64 регистраR0…R63 |
512-519 |
8 |
64 бита каждый из которых соответствует своему регистру и определяет при переходе на данный TSSизменять содержимое одного из регистров(R0…R63) или не изменять. Вводятся для реализации возможности обмена данными между задачами через регистры. |
520-523 |
4 |
Счетчик команд задачи |
524-527 |
4 |
Указатель на IDT |
528-531 |
4 |
Указатель на каталог страниц |
532-535 |
4 |
Содержат счетчик команд (PC) при смене задач |
536 |
1 |
Флажки ЦП |
537 |
1 |
Флажки сопроцессора |
538-545 |
8 |
Задают какие регистры нужно загружать |
546 |
1 |
Для хранения флажков ЦП при вызове другой задачи |
547-550 |
4 |
Физический адрес TSSзадачи вызвавшей данную |
546-767 |
218 |
Не используются |
768-1023 |
256 |
Используются для сохранения регистров ЦП |
На одной странице содержится 4 TSS. Припереходе на сегмент, хранящий TSS,процессор игнорирует биты 0…9 адреса. Биты 10..11 задают номерTSS, который будет запущен.