
- •Принципы построения эвм. (Принципы фон Неймана)
- •Микропроцессор
- •Арифметически – логическое устройство
- •Устройство управления
- •Размещение информации в памяти
- •Команда пересылки mov приёмник, источник
- •Режимы работы микропроцессора
- •Защищённый режим работы
- •Фото 1706
- •Диспетчер памяти
- •Формирование физического адреса в реальном режиме работы процессора
- •Формирование физического адреса в защищённом режиме работы процессора
- •Синхронизация процессора
- •Возможности процессоров 5 и 6 поколений
- •Интерфейс процессора
- •Фаза запроса
- •Фаза ошибки
Режимы работы микропроцессора
Начиная с микропроцессора 80286 процессоры могут работать в 2-ух режимах:
Режим реальных адресов (реальный режим)
Режим защищённой памяти (защищённый режим)
При работе в реальном режиме любой процессор рассматривается как процессор 8086, но более быстродействующий и с расширенным набором команд.
Фото 1703
Шина адреса любого процессора в реальном режиме равна 20 битам, следовательно объём доступной памяти 1 МБ
Фото 1703
В реальном режиме работы допускается только однозадачная работа, т.е. процессор выполняет одну программу.
Размер сегмента фиксированный – 64 байта.
Защищённый режим работы
Многозадачная обработка информации (сразу запуск многих программ)
Защита памяти с помощью 4 уровней механизма привелегий.
0 – ОП система
3- пользовательский
Доступна вся шина адреса процессора.
Размер шины – любой (теоретически от 1 байта до всего объёма памяти). Память в защищённом режиме может делиться на страницы. Стандартный объём страницы – 4 Кбайт.
Фото 1705
Начало сегмента – базовый адрес (уникальный, т.е. физический адрес).
Если в ОП имеется 2k ячеек, то для ссылки на эти ячейки нужен k-разрядный адрес.
Уникальный адрес байта памяти называется физическим адресом или абсолютным адресом. При большом объёме памяти больше будет и разрядность физического адреса.
Фото 1706
Чем больше объём памяти, тем больше разрядность адреса.
Увеличение разрядности физического адреса приводит к увеличению длины команды и программы в целом.
Для того, чтобы длина команды не зависела от объёма ОП компьютера память условно делят на участки, называемые сегментами.
Сегмент – участка ОП
На объём сегмента накладывается ограничение, т.е. объём сегмента фиксируется.
Фото 1706
Начальные адреса сегментов могут быть любыми. Их называют базовыми адресами.
Базовый адрес – физический адрес первой ячейки сегмента оперативной памяти. Определяет начало сегмента в памяти.
В этих условиях физический адрес ячейки памяти можно представить в виде:
Физический адрес = базовый адрес + смещение(относительный адрес)
Ограничение размера сегмента означает: 0≤смещение≤2m-1,
где m – размерность относительного адреса.
Поэтому для записи относительного адреса достаточно m разрядов.
В команда указывается относительный адрес операндов.
Объём сегмента в реальном режиме работы = 64 Кбайта.
Разрядность относительно адреса (смещения) = log264K
2m = 64 K
2m= 26*210
m = 16
Диапазон относительных адресов: 0000h – FFFFh
Диспетчер памяти
Состоит из блока сегментации и блока страничной адресации (защищённый режим).
Предназначен для формирования физического адреса байта памяти.
Сегментированная память представляет собой набор блоков, характеризуемых определёнными атрибутами:
Размер (объём сегментов). Определяется режимом работы микропроцессора.
Расположение. Определяется базовым адресом.
Тип сегмента: программный сегмент (сегмент кода), сегмент данных, сегмент стека.
Характеристика защиты.
Микропроцессор 80386+ содержит шесть 16 разрядных сегментных регистров.
Сегментные регистры хранят селекторы сегментов.
По селектору сегментов диспетчер памяти определяет базовый адрес сегмента.
Фото 1709
Селектор в CS обеспечивает обращение к текущему программному сегменту.
Селектор в SS обеспечивает обращение к текущему сегменту стека.
Селекторы DS, ES, GS, FS обеспечивают обращение к текущим сегментам данных.
При запуске программы управление получает специальная программа ОС – загрузчик, которая находит свободные сегменты в памяти, обеспечивает копирование программы и данных с внешнего носителя и загружает селекторы в сегментные регистры:
селектор программного сегмента загружается в CS,
селектор сегмента стека загружается в SS,
селектор сегмента данных присваивается глобальной переменной @data.
Первыми командами в программе программист должен селектор сегмента данных (@data) загружать в выбранный им сегментный регистр.
.code
mov AX, @data
mov DS, AX