Режимы работы процессоров, форматы команд, виды данных.
Процессоры могут работать в различных режимах. Под «режимом» подразумеваются способы, которыми процессор создает (и обеспечивает) для себя рабочую среду. Режим работы процессора задает способ адресации к ОП и способ управления отдельными задачами. Процессоры ПК могут работать в трех режимах: реальном (R), защищенном (P) и виртуальном (V).
Реальный
Первоначально ПК могли адресовать только 1Мб ОП (ША=20разрядов). В дальнейшем в каждом компьютере следующего поколения процессор должен уметь работать в режимах совместимости с процессором Intel 8086. Этот режим называют реальным режимом. В этом режиме процессор не может использовать 32 и 64 – разрядные операции. Процессор попадает в реальный режим сразу после запуска компьютера. В реальном режиме работает DOS и стандартные DOS – приложения.
Защищенный режим
Начиная с процессора Intel 80286 и компьютеров типа IBM PC/AT появляется защищенный режим. Он используется в современных многозадачных операционных системах.
Преимущество этого режима:
1.доступна вся системная память
2.многозадачность
3.поддерживается виртуальная память – ОС при необходимости может использовать жесткий диск в качестве расширения ОП.
4.осуществляется быстрый (32/64 разр) доступ к памяти и поддерживается работа 32–х разрядные операции ввода/вывода
Каждая выполняемая на компьютере программа имеет свою собственную область памяти, которая защищена от доступа со стороны других программ.
Все современные ОС используют защищенный режим Windows 98, NT/2000/XP, OS/2, Linux.
С появления процессора 80386 защищенный режим был усовершенствован: увеличился max доступное адресное пространство, расширенная система команд. Его иногда называют усовершенствованным защищенном режимом.
Виртуальный режим
Защищенный режим используют графические многозадачные ОС, такие как Windows. Иногда возникает необходимость выполнять DOS-программы в защищенном режиме. Для этого был разработан виртуальный режим. Этот режим эмулирует реальный режим, необходимый для работы DOS-программ, внутри защищенного режима. При запуске на компьютере DOS-приложения OS Windows создает виртуальную DOS-машину, в которой выполняется это приложение.
Форматы команд
Алгоритм, написанный пользователем программы, в конечном счете реализуется в виде машинных команд. Под командой понимают совокупность сведений, представленных в виде двоичных кодов, необходимых процессору для выполнения очередного шага. В ходе команды для сведений о типе операции, адресной информации о нахождении обрабатываемых данных, а также для информации о месте хранения результатов выделяются определенные разряды (поля).
КОП | А3 | ||||||
КОП | А1 | А3 | |||||
КОП | А1 | А2 | А3 | ||||
Форматом команды называется заранее обговоренная структура полей в её кодах, позволяющая ЭВМ распознавать составные части кода.
Главным элементом кода команды является код операции (КОП), что определяет, какие действия будут выполнены по данной команде. Под него выделяется N старших разрядов формата. В остальных разрядах размещаются А1 и А2 v адреса операндов. А3 - адрес результата.
Распределение полей в формате команды может изменяться при смене способа адресации. Длина команды зависит от числа адресных полей. По числу адресов команды делятся на:
безадресные | |
одно-, двух-, трехадресные |
Длина кода команды измеряется в машинных словах. Чтобы получить возможность работать с минимальным числом адресных полей, результат, к примеру, можно размещать по месту хранения одного из операндов. Либо предварительно размещают один или несколько операндов в специально выделенных регистрах процессора.
Множество реализуемых машинных действий образует её систему команд. Система команд часто определяет области и эффективность применения ЭВМ. Состав и число команд должны быть ориентированы на стандартный набор операций, используемых пользователем для решения своих задач.
По функциональному назначению в системе команд ЭВМ различают следующие группы:
команды передачи данных (обмен входами между регистрами процессора, процессора и оперативной памятью, процессора и периферийными установками). | |
Команды обработки данных (команды сложения, умножения, сдвига, сравнения-). | |
Команды передачи управления (команды безусловного и условного перехода). | |
Команды дополнительные (типа RESET, TEST,-). |
Группа команд передачи управления обеспечивает принудительное изменение порядка выполнения команд в программе.
Оттранслированные команды записываются в соседние ячейки памяти в порядке их следования в программе. При естественном порядке выполнения команд в программе, адрес каждой следующей команды определяется по содержимому специального счетчика команд, который входит в состав процессора. Содержимое этого счетчика автоматически наращивается на 1 при выполнении очередной команды. При организации ветвления цикла или для перехода на подпрограмму в счетчик в счетчик команд принудительно записывается адрес перехода, указанный в ходе команды.
Большинство алгоритмов может быть реализовано небольшим базовым набором команд. Вместе с тем система команд должна быть полной, т.е. содержать все команды, которые необходимы для интерпретации алгоритма в машинных кодах. ЭВМ общего назначения имеет универсальный набор команд и применяется в основном для решения тривиальных (стандартных) задач.
Существуют 2 различных принципа поисков операндов в памяти: ассоциативный и адресный.
Ассоциативный поиск (поиск по содержанию запоминающей ячейки) предполагает просмотр содержимого всех ячеек памяти для выявления кода, содержащего заданный командой ассоциативный признак. | |
Адресный поиск предполагает, что операнд находится по адресу, указанному в адресном поле команд. |
Исполнительным адресом операнда называется двоичный код номера ячейки памяти, по которому будет записан или считан оператором.
Адресным кодом команды называется двоичный код в адресном поле команды, с помощью которого необходимо сформировать исполнительный адрес операнда. В ЭВМ адресный код и исполнительный адрес не совпадают, поэтому способ адресации можно определить, как способ формирования исполнительного адреса по адресному коду команды.
Способы адресации классифицируют:
по наличию адресной информации в команде (явная и неявная адресация). | |
по кратности обращения в оперативную память. | |
по способу формирования адресов ячеек памяти. |
При явной адресации операнда в команде есть поле адреса этого операнда.
При неявной v адресное поле в команде отсутствует, а адрес операнда подразумевается кодом операции. Например, из команды может быть исключен адрес приемника адресата, при этом подразумевается, что результат записывается на месте второго операнда.
По кратности обращения в оперативную память различают:
непосредственную адресацию (direct addressing) | |
прямую адресацию (immediate addressing) | |
косвенную адресацию (indirect addressing) |
Персональный компьютер IBM PC с математическим сопроцессором 8087 позволяет работать со следующими действительными типами (диапазон значений указан по абсолютной величине):
Тип | Диапазон | Мантисса | Байты |
Single | 1,5*10-45..3,4*1038 | 7-8 | |
Double | 5,0*10-324..1,7*10308 | 15-16 | |
Extended | 3,4*10-4932..1,1*104932 | 19-20 |
Покажем преобразование действительного числа для представления его в памяти ЭВМ на примере величины типа Double.
Как видно из таблицы, величина этого типа занимает в памяти 8 байт. На рисунке показано, как здесь представлены поля мантиссы и порядка:
S | Смещенный порядок | Мантисса |
18. КЭШ память.
Многоуровневость
КЭШ → 1 уровень СТЕК → программный ОП→статическая
2 уровень аппаратный динамическая
→ Данных
Команд
КЭШ
КЭШ - память
Cash – кошелёк для хранения денег. КЭШ – память является буферной м/у основной памятью и процессорной. Имеет меньшую ёмкость и более высокое быстродействие. Кэш-память является прозрачной для программиста (невидимой).
Виртуальная память с КЭШем.
В ОС обычно используют Кэш 2-х уровней: внешний и внутренний. Внутренний: на одном кристалле с процессором, внешний: отдельная микросхема. Иногда называют первичный (внутренний) и вторичный (внешний)
Используют различные КЭШи данных и команд – это позволяет выполнять чтение данных и выполнение команд.
Как ОП, так и Кэш разделяются на строки. Каждая строка содержит 16 Б – 256 Б. Обмен между ОП и КЭШем осуществляется по строкам. Используется принцип подмены наиболее активных строк ОП строками КЭШа. Роль каких-то строк ОП берут на себя строки кэш(выигрыш производительности КЭШа по сравнению с ОП в 5-10 раз, но общий порядка 2-3.
Основной показатель системы ОП – БП:
Коэффициент попадания h - отношение количества обращений к КЭШ к числу обращений к ОП (h ≥ 0,9)
1. Проблема адресации КЭШа – отображения адресов ОП на Кэш.
2. Обновление информации в памяти;
3. Организация замены строк Кэша более активными строками ОП. В течение вычислительного процесса активность строк ОП меняется, приходится какие-то строки удалять из Кэш , какие-то записывать.(стратегии удаления).
19. Сегментная и страничная организация памяти.
Сегментная организация ОП
Для программы адресное пространство разделено на блоки (сегменты) и программа может обращаться только к своим сегментам. В сегментах линейная адресация относительно начала сегмента.
В 8086процессоре
адресное пространство 1 Мгбайт. Сегменты по 64 кбайта. Начало сегмента (параграф) –
16-байтная граница смещения ( offset ) – 16-разрядное слово.
Одновременно доступные четыре сегмента CS, DS, SS, ES. Эти регистры имеют по 16раздр.+ четыре Ф. (т. е. 20 раздрядов)
В ассемблере сегментные р-ры по умолчанию
MOV AX, [100] A → OП [ (DS)*16+100] → AX
MOV AX, ES: [100] A → OП [ (ES)*16+100] → AX
MOV AX, [SI] → OП [ (DS*16+ (SI)] → AX
1.Приобр. ЛА в ФА – однозначно, обратно – нет
2. Переполнение адреса (заворачивание)
В i 486 процессоре
Каждая задача, независимо от её уровня привилегий, не может обращаться к сегменту до тех пор, пока он не «описан» в дескрипторе.
Дескриптор каждого сегмента – 8 байт (64 разр.): базовый адрес сегмента, размер сегмента, тип его, уровень привилегий и дополнительная информация.
Путаница в полях так как в i 286 база – 24, пр – 16, а расширение до 32 и 20 в старшем слове.
Р – бит присутствия 1 – физ. ОП. есть. 0 – внешняя память.
DPL – уровень привилегий дескриптора 0 – max
3 - min
S – системный бит - 1 – дескриптор относится к памяти
0 – нет
TYPE – допустимые операции в сегменте
000 – DS только считывание
011 – SS – разрешается запись и считывание
А – бит доступа, говорит, что программа сейчас работает с этим сегментом
G – гранулярность определяет размер элемента сегмента
D – размер по умолчанию обеспечивает совместность с 286. 0 →16 разр;
1 →32 разр.
X – резервный бит
U – (user) бит пользователя ( используется сист. прогр. по своему усмотрению.(«сбор мусора»))
Страничная организация памяти.
В P – и V – режимах i 486 поддерживает страничную организацию памяти. Это ещё один уровень косвенности в формировании ФА. Используется при работе с виртуальной памятью, когда ЕА > ФА ОП. Страница это блоки П по 4 Кбайта. При разрешённом страничном преобразовании адреса линейное адресное пространство 4 Гбайта в i 486 делится на 1М страниц по 4 Кбайта. Физическое адресное пространство 1 – 16 Мбайт. Остальные страницы хранятся на НЖМД, т.е. в виртуальном адресном пространстве ОП. Любую физическую страницу виртуальной ОП можно посадить на место любой физической. При «страничном нарушении» (особый случай неприсутствия) операционная система сама загружает нужную стр. в ОП, а не нужную на ЖД.
При страничном преобразовании старшие 20 бит из 32 разр. Лин. адреса ( N виртуальной стр.) заменяются N раз. страницы с помощью таблицы страниц, и каталога стр., (т.е. страничное преобразование – 2-х этапное).
20. Организация ввода-вывода.