Автор работы: Пользователь скрыл имя, 17 Февраля 2011 в 08:56, реферат
Архитектура следующего уровня определяет разграничение функций между процессорами ввода/вывода и контроллерами внешних устройств. В свою очередь можно разграничить функции, реализуемые контроллерами и самими устройствами ввода/вывода (терминалами, модемами, накопителями на магнитных дисках и лентах).
Архитектура таких уровней часто называется архитектурой физического
ввода/вывода.
8. Регистровая модель процессора
Регистровая модель процессора состоит из
1 PC- 32-x разрядный счетчик команд; C его помощью устройство выборки команд считывает слова, начиная с адреса на 1 большего значения записанного в PC
2 BVA- 32-разрядный регистр в него записывается адрес плохой страницы. Т.е. когда идет обращение к какой то странице памяти не находящейся в оперативной памяти происходит запись адреса этой страницы в BFA, а затем с помощью этого адреса происходит загрузка страници в ОП.
3 Flags – 8-разрядный регистр регистр флажков. Если происходит одно из событий, которые могут отражаться в этом регистре, то происходит установка того или иного флажка.
Z- признак нулевого результата
C- признак переноса из старшего разряда
S- знак результата
O- признак переполнения
I- флаг прерывания
T- флаг ловушки
U- флаг пользователь/супервизор
PL- флаг уровня
привелегий
4 TLBP- 32-разрядный регистр указатель на таблицу переадресации
5 TINT – 32-разрядный регистр указатель на таблицу векторов прерываний
6 8 - 32-разрядных регистров
общего назначения
9.
Сопроцессор
Сопроцессор нужен для выполнения операций над числами с плавающей точкой.
Схема совместной работы ЦП и сопроцессора выглядит следующим образом.
wait
Вариант организации работы:
Форматы данных
Как было сказанно выше сопроцессор нужен для работы с числами пре дставленными в формате с плавающей точкой.
Существует три вида чисел с плавающей точкой
Вид чисел
с ПТ См выше (глава типы данных).
10. Регистровая модель сопроцессора
Регистровая модель сопроцессора состоит из
1 8 32- разрядных РОН
2 SR- регистр статуса. В нем отражаются все процессы и события происходящие в сопроцессоре.
B- бизи-бит показывает свободен или занят сопроцессор
Z- флаг нуля
S- флаг знака
O-переполнени
I-разрешение прерывания
IR-запрет прерывания
PE-потеря точности
UE-денормализация
OE-переполние
ZE-деление на ноль
IE-недействительный
операнд.
3 CR- регистр управления. С его помощью происходит управление арифметическими операциями происходящими в сопроцессоре
IC – тип арифметики: 0- афинная
Афинная – обычная арифметика и ±¥
Прекционная только ±¥
RC-режим округления
00- к ближнему целому
01- к -¥
10- к +¥
11- к 0
PC-способ выдачи информации
00-80-разрядов
01- 32 - разряда
10- 64-разряда
Masks- позволяет маскировать прерывания.
4 ER- регистр
ошибок в него записывается КОП, адрес
команды и операции, которые вызвали ошибки.
11.
Система команд
процессора и сопроцессора
№ | Name | Содержание |
Функция | Флаги |
Код | |||||||||
Z | C | S | O | I | T | U | ||||||||
Обращение к памяти по чтению и записи | ||||||||||||||
|
RDB | Чтение байта | R0<= <R1>+R2 | - | - | - | - | - | - | - | 000000 | |||
RDHW | Чтение полуслова | R0<= <R1>+R2 | - | - | - | - | - | - | - | 000001 | ||||
RDW | Чтение слова | R0<= <R1>+R2 | - | - | - | - | - | - | - | 000010 | ||||
WRB | Запись байта | <R0>=> <R1>+R2 | - | - | - | - | - | - | - | 000011 | ||||
WRHW | Запись полуслова | <R0>= ><R1>+R2 | - | - | - | - | - | - | - | 000100 | ||||
WRW | Запись слова | <R0>=> <R1>+R2 | - | - | - | - | - | - | - | 000101 | ||||
IN | Чтение из порта | R0<=порт<R1> | - | - | - | - | - | - | - | 000110 | ||||
OUT | Запись в порт | R0=>порт<R1> | - | - | - | - | - | - | - | 000111 | ||||
MOV | Обмен RG<>RG | <R0><=<R1> | - | - | - | - | - | - | - | 001000 | ||||
MOVI | Занос в регистр значения | <R0><= R2 | - | - | - | - | - | - | - | 001001 | ||||
Арифметические операции с ФТ | ||||||||||||||
ADD | Сложение | <R0><= <R1>+<R2> | + | + | + | + | - | - | - | 001100 | ||||
SUB | Вычитание | <R0><= <R1>-<R2> | + | + | + | + | - | - | - | 001101 | ||||
MUL | Умножение | <R0><= <R1>*<R2> | + | + | + | + | - | - | - | 001110 | ||||
DIV | Деление | <R0><= <R1>/<R2> | + | + | + | + | - | - | - | 001111 | ||||
ADDI | Сложение с неп оп. | <R0><= <R1>+R2 | + | + | + | + | - | - | - | 010000 | ||||
SUBI | Выч. с неп оп. | <R0><= <R1>-R2 | + | + | + | + | - | - | - | 010001 | ||||
MULI | Умн/ с неп оп. | <R0><= <R1>*R2 | + | + | + | + | - | - | - | 010010 | ||||
DIVI | Деление с неп оп. | <R0><= <R1>/R2 | + | + | + | + | - | - | - | 010011 | ||||
Логические оперции с ФТ | ||||||||||||||
AND | «И» | <R0><= <R1>&<R2> | + | - | + | - | - | - | - | 010100 | ||||
OR | «ИЛИ» | <R0><= <R1>v<R2> | + | - | + | - | - | - | - | 010101 | ||||
XOR | Искл «ИЛИ» | <R0><= <R1>+<R2> | + | - | + | - | - | - | - | 010110 | ||||
NOT | «НЕ» | <R0><= ~<R1> | + | - | + | - | - | - | - | 010111 | ||||
RCL | Циклический сдвиг влево | - | + | - | + | - | - | - | 011000 | |||||
RCR | Циклический сдвиг вправо | - | + | - | + | - | - | - | 011001 | |||||
Команды переходов и прерываний | ||||||||||||||
CLI | Очистить флаг разрешения прерываний | 0 | 011010 | |||||||||||
INT | Вызов прерывания | <R7><=PC
<R6><=flags |
+ | + | + | + | + | + | + | 011100 | ||||
IRET | Возврат из прерывания | <PC><=R7
flags<=R6 |
- | - | - | - | - | - | - | 011101 | ||||
CALL | Вызов подпрограммы | <R7><=PC
PC<=<R1>+R2 |
- | - | - | - | - | - | - | 011110 | ||||
RET | Возврат из подпрограммы | <PC><=R7 | - | - | - | - | - | - | - | 011111 | ||||
JMP | Безусловный переход | PC<=<R1>+R2 | - | - | - | - | - | - | - | 100000 | ||||
JZ | Переход по нулю | PC<=<R1>+R2 | + | - | - | - | - | - | - | 100001 | ||||
JNZ | Переход не по нулю | PC<=<R1>+R2 | + | - | - | - | - | - | - | 100010 | ||||
JO | Переход по переполнению | PC<=<R1>+R2 | - | - | - | + | - | - | - | 100011 | ||||
JNO | Переход по не переполнению | PC<=<R1>+R2 | - | - | - | + | - | - | - | 100100 | ||||
JC | Переход по переносу | PC<=<R1>+R2 | - | + | - | - | - | - | - | 100101 | ||||
JNC | Переход не по переносу | PC<=<R1>+R2 | - | + | - | - | - | - | - | 100110 | ||||
JS | Переход переход по меньше нуля | PC<=<R1>+R2 | - | - | + | - | - | - | - | 100111 | ||||
JNS | Переход переход по не меньше нуля | PC<=<R1>+R2 |
- | - | + | - | - | - | - | 101000 | ||||
Специальные операции | ||||||||||||||
RFL | Чтение флагов | R1<=Flags | - | - | - | - | - | - | - | 101001 | ||||
WFL | Запись флагов | <R1>=>Flags | + | + | + | + | + | + | + | 101010 | ||||
RTLBR | Чтение TLBP | R1<=TLB | - | - | - | - | - | - | - | 101011 | ||||
WTLBR | Запись TLBP | <R1>=>TLB | - | - | - | - | - | - | - | 101100 | ||||
RISR | Чтение TINT | R1<=TINT | - | - | - | - | - | - | - | 101101 | ||||
WISR | Запись TINT | <R1>=>TINT | - | - | - | - | - | - | - | 101110 | ||||
RBVA | Чтение BVA | <R0><=BVA | - | - | - | - | - | - | - | 110011 | ||||
RFE | Возврат в пользователя | - | - | - | - | - | - | 0 | 101111 | |||||
SCALL | Переход в супервизора | - | - | - | - | - | - | 1 | 110000 | |||||
HALT | Ожидание прерывания | - | - | - | - | 1 | - | - | 110001 | |||||
NOP | Нет операции | PC<=<PC>+1 | - | - | - | - | - | - | - | 110010 | ||||
Арифметические операции с ПТ | ||||||||||||||
FADD | Сложение | <F0><= <F1>+<F2> | + | + | + | + | - | - | - | 111000 | ||||
FSUB | Вычитание | <F0><= <F1>-<F2> | + | + | + | + | - | - | - | 111001 | ||||
FMUL | Умножение | <F0><= <F1>*<F2> | + | + | + | + | - | - | - | 111010 | ||||
FDIV | Деление | <F0><= <F1>/<F2> | + | + | + | + | - | - | - | 111011 | ||||
FMOV | Обмен RG<>RG | F0<=<F1> | - | - | - | - | - | - | - | 111100 | ||||
FRDW | Чтение | <F0><= <R1>+R2 | - | - | - | - | - | - | - | 111101 | ||||
FWRW | Запись | <F0><= <R1>+R2 | - | - | - | - | - | - | - | 111110 | ||||
MFC | Преобр ПТ-ФТ | <R0><= <F1> | + | + | + | + | - | - | - | 111111 | ||||
MCF | Преобр ФТ-ПТ | <R0>=> <F1> | + | - | + | + | - | - | - | 111111 |
1 Обращение к памяти по чтению и записи.
С помощью этих команд можно заносить данные и регистров в память и читать их оттуда.
2 Арифметические и логические операции с ФТ
Позволяют
производить известные операции
с числами с ФТ, которые хранятся
в регистрах или с
3 Специальные операции.
Позволяют работать с системными регистрами, заносить туда информацию и считывать ее от туда. Команды с 40 по 46 возможны только в режиме супервизора. В пользовательском режиме они недоступны.
4 Арифметические операции с ПТ
Известные
операции аналогичные с ФТ, плюс
операции сдвигов влево и вправо.
12. Структура внешних выводов процессора
Процессор имеет совмещенную шину адреса и данных (AD). Сигнал ALE используется для фиксации адреса на внешнем регистре-защелке. Пара сигналов HLD и HLDA используется для реализации механизма захвата шины. Сигнал INT является сигналом запроса прерывания. Сигнал NMI – запрос немаскируемого прерывания.
Линии RD(чтение), WR(запись), IN(ввод), OUT(вывод), задают выполняемую на шине операцию.
Сигналы CC0, CC1, Wait используются для взаимодействия с сопроцессором. Линии CC0, CC1 служат для синхронизации работы с мат сопроцессором.
СС0 | СС1 | |
0 | 0 | Нет операции |
0 | 1 | Очистка очереди |
1 | 0 | Запись команды в буфер |
1 | 1 | Выборка команды |
На контакт WAIT поступает сигнал об окончании вычислений
По шине FFLAGS в ЦП передаются флаги от сопроцессора
Контакт READY служит для приема сигналов готовности от медленных внешних устройств
Общее число выводов процессора составляет 65, поэтому процессор размещается в стандартном 68 выводном корпусе. Оставшиеся ножки подаются на «Земля» или «Питание»
13. Структура внешних выводов сопроцессора
В
сопроцессоре на вывод FPBUSY подается
единичный сигнал указывающий на то, что
сопроцессор занят. По линии FPINT выдается
сигнал прирывания в случае ошибки. Назначение
остальных выводов такое же как и у ЦП.
14. Структурная схема
процессора
1 Устройство предвыборки команд осуществляет опережающую выборку. Это позволяет избежать простоя процессора в циклах выборки команд. Устройство считывает из памяти слова начиная с адреса на 1 большего значения записанного в PC. Очередное слово из очереди подается на дешифратор. Освободившаяся позиция в конце очереди заполняется следующей командой.
2
Дешифратор команд получает
3 Регистр команд хранит команду полученную от дешифратора.
4 Счетчик команд содержит адрес выполняемой в данный момент команды.