- •Введение
- •Организация кэш-памяти
- •1. Где может размещаться блок в кэш-памяти?
- •2. Как найти блок, находящийся в кэш-памяти?
- •3. Какой блок кэш-памяти должен быть замещен при промахе?
- •4. Что происходит во время записи?
- •Принципы организации основной памяти в современных компьютерах Общие положения
- •Увеличение разрядности основной памяти
- •Память с расслоением
- •Использование специфических свойств динамических зупв
- •Виртуальная память и организация защиты памяти Концепция виртуальной памяти
- •Страничная организация памяти
- •Сегментация памяти
- •Управление вводом-выводом
- •Физическая организация устройств ввода-вывода
- •Организация программного обеспечения ввода-вывода
- •Обработка прерываний
- •Драйверы устройств
- •Независимый от устройств слой операционной системы
- •Пользовательский слой программного обеспечения
- •Системы ввода вывода Организация ввода - вывода микропроцессорного устройства
- •Ввод вывод в режиме прямого доступа к памяти
- •Ввод вывод
- •Защищенный режим
- •Дескрипторы
- •Привилегии
- •Переключение задач
- •Страничное управление памятью
- •Режим виртуального 86 (v86)
- •Характеристика системы команд процессора
- •Простые типы данных. Операции над простыми данными.
- •Машинные форматы данных.
- •Слово. Полуслово. Двойное слово.
- •Числа с плавающей запятой
- •Представление простых типов данных языков программирования
- •Вместо заключения
- •2.2 Типы данных
- •Логическое устройство компьютеров
- •1. Принцип программного управления. Из него следует, что программа состоит из набора команд, которые выполняются процессором автоматически друг за другом в определенной последовательности.
- •3. Принцип адресности. Структурно основная память состоит из перенумерованных ячеек; процессору в произвольный момент времени доступна любая ячейка.
- •Основные принципы функционирования компьютеров
- •Принципы Неймана
- •Общее устройство компьютеров
- •Арифметические основы компьютера
- •Перевод чисел в десятичную систему счисления
- •Перевод чисел из десятичной системы в двоичную, восьмеричную и шестнадцатиричную
- •Перевод чисел из двоичной системы счисления в восьмеричную и шестнадцатиричную и обратно
- •Арифметические операции в позиционных системах счисления
- •Сложение
- •Вычитание
- •Триггер
- •Сумматор
- •Принципы организации основной памяти в современных компьютерах Общие положения
- •Увеличение разрядности основной памяти
- •Память с расслоением
- •Использование специфических свойств динамических зупв
- •Виртуальная память и организация защиты памяти Концепция виртуальной памяти
- •Страничная организация памяти
- •Сегментация памяти
- •Глава 5 Управление памятью
- •Глава 1. Общие принципы организации памяти эвм
Страничное управление памятью
Страничное управление памятью является дополнительным средством для организации виртуальной памяти. Страницы не имеют прямой связи с логической структурой данных или программ. Селекторы можно рассматривать как логические имена модулей кодов и данных, страницы же представляют части этих модулей. Учитывая обычные свойства локальности кода и ссылок на данные в оперативной памяти в каждый момент времени надо хранить только небольшие части сегментов необходимые активным задачам. Эту возможность и обеспечивает страничное управление памятью. Механизм страничного управления использует 2 уровневую табличную трансляцию линейного адреса в физический. Механизм имеет 3 части: каталог страниц, таблицы страниц и собственно страницы. Регистр CR3 хранит физический адрес каталога страниц. Каталог страниц в 4 Кбайта имеет 1024 строки. Каждая строка содержит 20 старших бит адреса таблицы следующего уровня и признаки этой страницы. Каждая таблица страниц имеет 1024 строки аналогичного формата, но эти строки содержат базовый физический адрес и атрибуты самих страниц. Индексом поиска в каталоге является 10 старших бит линейного адреса, а индексом поиска в таблице является 12-21 биты линейного адреса. Физический адрес собирается из адреса страницы взятого из таблицы и младших 12 бит линейного адреса. Механизм защиты страниц 2 уровня привилегий: пользователь и супервизор. Пользователю соответствует уровень привилегий 3, супервизору уровни 0, 1 и 2. Обращение при каждой операции при доступе к памяти через 2 таблицы расположенные в памяти существенно снижает производительность микропроцессора. Для предотвращения этого замедления существует буфер ассоциативной трансляции TLB для хранения интенсивно используемы строк таблицы. Он представляет собой 4-канальную наборно-ассоциативную КЭШ память на 32 строки таблицы трансляции. Микропроцессоры Pentium и старше позволяют оперировать страницами размером в 4 Мбайта.
Режим виртуального 86 (v86)
Этот режим является особым состоянием задачи защищенного режима. В нем работает защита и механизм страничной переадресации. Основным различием реального и защищенного режимов является интерпретация сегментных регистров. В режиме V86 для получения линейного адреса содержимое сегментных регистров сдвигается на 4 разряда влево и суммируется с эффективным адресом. Один Мбайт адресуемого таким образом пространство с памятью страничной трансляции может отображаться в любую область 4 Гбайт физической памяти. Все программы, выполняемые в режиме V86, имеют уровень привилегий 3. Поэтому программы V86 выполняются со всеми проверками защиты. Прерывание V86 для полной эмуляции машины на микропроцессоре 86 обрабатывается особым образом. Все прерывания и исключения влекут собой смену уровня привилегий обратно к уровню операционной системы защищенного режима. Эта операционная система может распознать по образу регистра флагов в стеке, что прерывание пришло из V86. Далее операционная система может либо обработать это прерывание самостоятельно либо переслать его к операционной системе реального режима работающей в V86. В конечном итоге операционная система защищенного режима может эмулировать окружение обычной 86 машины. Прозрачно для приложения работающего в V86. Вход в режим V86 возможен либо выполнением инструкций IRET в 32 битном режиме, либо переключением задач на задачу, у которой в TSS образ регистра флагов имеет установленный в единицу бит VM. Выход из режима V86 возможен только при обработке прерывания. Если задача имеет CPL=0, то бит VM сбрасывается, и вызываемая задача будет выполняться в защищенном режиме. Если CPI>0, то генерируется исключение 13. Если прерывание вызывает переключение задач, то регистры с флагом VM сохраняются в TSS старой задачи. Новый режим устанавливается по TSS новой задачи. Значение VM не может изменяться никакими другими способами. Более того, его значение не читается.