3.4 Страничная организация памяти
Еще одним, после использования кэш-памяти, способом достижения эффекта сокращения времени доступа в основную память за счет локализации обрабатываемых данных служат страничная или сегментная организация памяти, предоставляющая программе виртуальную память много большего объема, чем объем используемой физической памяти. Отличие между страничной и сегментной организацией заключается в том, что страницы имеют фиксированный размер, а сегмент может быть произвольного размера, что требует при работе с сегментами учёта их длины.
Если бы программа использовала физическую память с объемом, равным объему виртуальной памяти, время доступа было бы много больше, чем к реально используемой физической памяти (не говоря о самой возможности реализации и цене такой большой физической памяти).
В процессорах семейства IA-32 страничная организация памяти (paging) позволяет разделить сегмент на блоки памяти размером 4096 байтов, которые называются страницами (page). В результате можно легко сделать так, чтобы суммарный объем оперативной памяти, используемой во всех выполняющихся на компьютере программах, превышал объем реальной (т.е. физической) памяти компьютера. Именно поэтому страничная организация памяти очень часто называется виртуальной памятью (virtual memory). Работоспособность системы виртуальной памяти обеспечивает специальная программа, являющаяся частью операционной системы, которая называется диспетчером виртуальной памяти (virtual memory manager).
Страничная организация памяти как нельзя лучше решает наболевшую проблему для всех разработчиков аппаратного и программного обеспечения – проблему нехватки памяти. Дело в том, что перед началом выполнения любая программа должна быть загружена в оперативную память компьютера, размер которой, как известно, всегда ограничен по тем или иным причинам (например, в силу конструктивных особенностей компьютера или цены модуля памяти). Пользователи компьютера обычно загружают в память сразу несколько программ, чтобы в процессе работы иметь возможность быстро переключаться между ними (например, переходить из одного окна в другое). С другой стороны, объемы дисковой памяти намного превышают объемы оперативной памяти компьютера, да и к тому же эта память намного дешевле. Поэтому за счет привлечения дисковой памяти при использовании страничной организации памяти для пользователя создается впечатление, что он располагает ОЗУ неограниченного объема. Разумеется, за все нужно платить; скорость доступа к дисковой памяти на несколько порядков ниже, чем к оперативной памяти.
При выполнении программы, участки ее оперативной памяти (или страницы), которые не используются в данный момент, можно безболезненно сохранить на диске. Говорят, что часть задачи вытеснена (swapped) на диск. В оперативной памяти компьютера имеет смысл сохранять только те страницы, к которым процессор активно обращается, например, выполняет некоторый программный код. Если же процессор должен обратиться к странице памяти, которая в настоящий момент вытеснена на диск, происходит системная ошибка (или прерывание) из-за отсутствия страницы (pagefault). Обработкой этой ошибки занимается диспетчер виртуальной памяти операционной системы, который находит на диске страницу, содержащую нужный код или данные, и загружает ее в свободный участок оперативной памяти. Если вы хотите убедиться в том, что страничная организация памяти действительно работает, достаньте где-нибудь старый компьютер, оснащенный ОЗУ сравнительно небольшого объема (32 или 64 Мбайт) и попытайтесь одновременно запустить 5–10 различных программ. При переходе из окна одной программы в окно другой вы будете ощущать небольшую (или очень большую, все зависит от объема памяти!) задержку, поскольку в этот момент операционная система компьютера будет вытеснять часть страниц одной задачи на диск и загружать с диска в освободившиеся участки памяти страницы другой задачи. Если добавить компьютеру оперативной памяти, операционная система будет быстрее реагировать на команды пользователя, поскольку при этом часть страниц не вытесняется на диск и сохраняется в оперативной памяти. Другими словами, чем больший объем ОЗУ, тем меньше страниц вытесняется на диск за единицу времени.
Вопросы для самопроверки
Какова основная идея использования многоуровневой памяти?
В чём заключается принцип локализуемости обрабатываемых данных?
Какова организация кэш-памяти?
Какие существуют протоколы когерентности памяти?
Каков размер сегмента при страничной организации памяти?
- Предисловие
- Глава 1. Общие сведения о микропроцессорах
- 1.1 Классификация микропроцессоров
- 1.2 Характеристики микропроцессоров
- 1.2.1 Тактовая частота
- 1.2.2 Архитектура процессора
- 1.2.3 Технологический процесс производства
- 1.2.4 Частота системной шины
- 1.2.5 Размер кэша
- 1.3 Типы архитектур микропроцессоров
- 1.4 Структурная схема микропроцессоров
- 1.4.1 Микропроцессор Фон-Неймана
- 1.4.2 Конвейер
- 1.4.3 Зависимость между частотой и количеством ступеней конвейера
- 1.5 Представление информации в эвм
- 1.5.1 Двоичное представление целых чисел
- 1.5.2 Представление символьной информации
- Глава 2. Архитектура микропроцессоров ia-32
- 2.1 Состав и функции регистров
- 2.1.1 Основные регистры
- 2.1.2 Регистры дополнительных функциональных модулей
- 2.2 Типы адресации
- 2.3 Система команд
- 2.3.1 Классификация команд
- 2.3.2 Формат команды
- 2.3.3 Однобайтовые команды
- 2.3.4 Непосредственно заданные операнды
- 2.3.5 Команды с регистровыми операндами
- 2.3.7 Команды с операндами, расположенными в памяти
- Глава 3. Организация многоуровневой памяти
- 3.1 Принцип построения многоуровневой памяти
- 3.2 Организация кэш-памяти
- 3.3 Протоколы когерентности памяти микропроцессоров
- 3.4 Страничная организация памяти
- Глава 4. Режимы работы процессоров ia-32
- 4.1 Обзор режимов работы
- 4.2 Реальный режим адресации
- 4.3 Защищённый режим
- 4.3.1 Дескрипторные таблицы
- 4.3.2 Дескрипторные регистры
- 4.3.3 Дескриптор
- 4.3.4 Односегментная модель памяти
- 4.3.5 Многосегментная модель памяти
- Глава 5. Страничная организация памяти в процессорах ia‑32
- 5.1 Каталог страниц
- 5.2 Таблица страниц
- 5.3 Страничная переадресация
- 5.4 Диспетчер виртуальных машин системы Microsoft Windows
- Глава 6. Архитектура процессоров с параллелизмом уровня команд
- 6.1 Подходы к использованию ресурса транзисторов в микропроцессорах
- 6.2 Суперскалярные процессоры и процессоры с длинным командным словом
- 6.3 Зависимости между командами, препятствующие их параллельному исполнению
- 6.4 Предварительная выборка команд и предсказание переходов
- 6.5 Условное выполнение команд в vliw-процессорах
- 6.6 Декодирование команд, переименование ресурсов и диспетчеризация
- 6.7 Исполнение команд
- 6.8 Завершение выполнения команды
- 6.9 Направления развития архитектуры процессоров с параллелизмом уровня команд
- Глава 7. Мультитредовые микропроцессоры
- 7.1 Основы мультитредовой архитектуры
- 7.2 Выявление тредов
- 7.3 Мультитредовые процессоры с тредами, выявляемыми путем анализа потоков управления программы
- 7.3.1 Мультитредовая модель выполнения программы
- 7.3.2 Мультитредовые программы
- 7.3.3 Аппаратные средства мультитредовой архитектуры
- 7.3.4 Преимущества мультитредовой архитектуры
- 7.4 Мультитредовые процессоры с тредами, выявляемыми путем анализа потоков данных программы
- 7.5 Специфика мультитредовых моделей распараллеливания
- Глава 8. Модуль обработки вещественных чисел
- 8.1 Представление чисел с плавающей запятой
- 8.2 Состав модуля fpu
- Глава 9. Основы 64-разрядной архитектуры
- 9.1 Состав и назначение регистров микропроцессора ia-64
- 9.2 Особенности архитектуры epic
- 9.3 Архитектура x86-64
- 9.4 Структура одноядерного процессора
- 9.5 Многоядерные процессоры
- 9.6 Зачем нужны “лишние” разряды?
- Глава 10. Современные 64-разрядные микропроцессоры корпораций Intel и amd
- 10.1 Архитектура Intel Core 2
- 10.1.1 Intel Wide Dynamic Execution
- 10.1.2 Intel Intelligent Power Capability
- 10.1.3 Intel Advanced Smart Cache
- 10.1.4 Intel Smart Memory Access
- 10.1.5 Intel Advanced Digital Media Boost
- 10.1.6 Логическая схема процессора
- 10.2 Архитектура Intel Core i7
- 10.2.1 Технология Hyper-Threading в архитектуре Nehalem
- 10.2.2 Иерархия кэш-памяти в архитектуре Nehalem
- 10.3 Хронология развития семейств микропроцессоров с архитектурой Nehalem
- 10.4 Архитектура amd Athlon 64
- 10.4.1 Ядро процессора
- 10.4.3 Контроллер памяти
- 10.4.4 Контроллер HyperTransport
- 10.5 Архитектура amd k10
- 10.4.1 Технология amd Memory Optimizer Technology
- 10.5.2 Ядро процессора
- 10.5.3 Предвыборка данных и инструкций
- 10.5.4 Выборка из кэша
- 10.5.5 Предсказание переходов и ветвлений
- 10.5.6 Процесс декодирования
- 10.5.7 Диспетчеризация и переупорядочение микроопераций
- 10.5.8 Выполнение микроопераций
- 10.5.9 Технологии энергосбережения
- 10.5.10 Шина HyperTransport 3.0
- 10.5.11 Семейство процессоров Barcelona
- 10.5.12 Семейство процессоров Phenom
- Глава 11. Технологии, поддерживаемые современными микропроцессорами
- 11.1 Технологии тепловой защиты
- 11.1.1 Технология Thermal Monitor
- 11.1.2 Технология Thermal Monitor 2
- 11.1.3 Режим аварийного отключения
- 11.2 Технологии энергосбережения
- 11.2.1 Технология Enhanced Intel SpeedStep
- 11.2.2 Технология Cool'n'Quiet
- 11.3 Технология расширенной памяти
- 11.4 Технология антивирусной защиты
- 11.5 Технология виртуализации
- 11.6 Реализация технологий в современных микроархитектурах
- 11.6.2 Em64t – NetBurst
- 11.6.3 Intel Core
- 11.6.4 Intel Atom
- 11.6.5 Nehalem
- 11.6.6 Xeon
- Глава 12. Графические микропроцессоры
- 12.1 Основные термины и определения
- 12.2 Технологии построения трёхмерного изображения
- 12.2.1 Технологии повышения реалистичности трехмерного изображения
- 12.3 Шейдерный процессор
- 12.4 Особенности современных графических процессоров
- Глава 13. Однокристальные микроконтроллеры
- 13.1 Общая характеристика микроконтроллеров
- 13.2 Микроконтроллеры семейства avr
- Почему именно avr?
- 13.3 Общие сведения об омк avr
- 13.4 Характеристики avr-микроконтроллеров
- Глава 14. Технология производства микропроцессоров
- 14.1 Особенности производства процессоров
- 14.2 Новые технологические решения
- 14.3 Технология производства сверхбольших интегральных схем
- I. Выращивание кристалла кремния
- II. Создание проводящих областей
- III. Тестирование
- IV. Изготовление корпуса
- V. Доставка
- 14.4 Перспективы производства сбис
- Англо-русский словарь терминов и аббревиатур
- Библиографический список
- Интернет-ссылки
- 350072. Краснодар, ул. Московская, 2, кор. А.