- •Организация эвм и систем
- •Глава 6 Организация памяти
- •Глава 1. Структура современного компьютера
- •1.1 Основные понятия
- •1.2 Принцип действия компьютера
- •Цикл работы компьютера
- •1.3 Программное обеспечение компьютера
- •1.4 Надежность, производительность и показатели быстродействия
- •Производительность компьютера
- •Технико-эксплуатационные характеристики
- •1.5 Вычислительные системы и сети
- •Вопросы для самопроверки
- •Глава 2 представление информации в компьютере
- •5.2 Система команд. Форматы команд и способы адресации
- •5.3 Система прерываний и приостановок, состояние процессора
- •Характеристики системы прерываний
- •Организация перехода к прерывающей программе
- •5.4 Режимы работы процессора: однопрограммный, пакетный, разделения времени, реального времени
- •5.5 CisCиRisCкомпьютеры
- •Процессоры персональных компьютеров
- •5.6 Устройства управления
- •Устройства управления с хранимой в памяти логикой
- •5.7 Методы и средства повышения производительности процессоров персональных компьютеров
- •Суперскалярная обработка
- •Переименование регистров
- •Динамическое прогнозирование условных переходов
- •Контроллер памяти Контроллер pci
- •Вопросы для самопроверки
- •Глава 6. Организация памяти
- •6.1 Адресное пространство
- •6.2 Виды памяти
- •6.3 Оперативная память
- •Статическая и динамическая память
- •6.5 Внешняя память
- •6.6 Организация виртуальной памяти
- •Страничное, сегментное и странично-сегментное распределение
- •Свопинг
- •6.7 Защита памяти
- •Вопросы для самопроверки
- •Глава 7. Интерфейсы
- •7.1 Понятие интерфейса и его характеристики
- •7.1 Состав линий системной шины
- •Передача данных по проводным линиям связи По линиям связи современных интерфейсов преимущественно передаются низкочастотные дискретные одно - и биполярные сигналы (рисунок 7.Х).
- •Адрес верный
- •7.2 Подключение устройств
- •7.4 Интерфейсы внешней памяти
- •7.5 Малые интерфейсы (usb,ide,rs-232c,scsi)
- •Вопросы для самопроверки
- •Глава 8. Периферийные устройства компьютеров
- •8.1 Организация систем ввода-вывода. Каналы, контроллеры
- •Основные функции свв
- •Программный ввод-вывод
- •Прямой доступ в память
- •8.2 Клавиатура и мышь
- •8.3 Дисплеи
- •8.4 Принтеры
- •8.5 Накопители на магнитных дисках
- •Структура накопителя на жестких дисках
- •Структура и особенности накопителя на гмд
- •8.6 Накопители на компакт-дисках (cd-rom, cd-r, cd-rw, dvd)
- •8.7 Другие виды периферийных устройств
- •Вопросы для самопроверки
- •Какие особенности пу делают возможным организацию параллельной обработки и ввода-вывода?
- •Закон Амдала
- •Совместно используемая и распределенная память
- •Когерентность кэш-памяти
- •Наибольшее распространение получили следующие аппаратные механизмы, реализующие протокол когерентности кэш-памяти: это протоколы наблюдения и на основе справочника.
- •9.2 Конвейерные системы
- •Векторные регистры
- •9.3 Симметричные системы
- •9.4 Вычислительные системы со сверхдлинным командным словом
- •9.5 Другие виды мультипроцессорных систем
- •Машины с массовым параллелизмом
- •Нейрокомпьютеры
- •9.6 Проблемно-ориентированные системы
- •Вопросы для самопроверки
- •Глава 10. Организация вычислительного процесса
- •12.2 Системы автоматического контроля и диагностики
- •Контроль передач информации
- •Контроль арифметических операций
- •12.3 Защита памяти. Raid-массивы
- •12.4 Построение «безотказных» систем питания Вопросы для самопроверки
- •Список литературы
Совместно используемая и распределенная память
ВС, в которых предусмотрена только общая совместно используемая память, часто называют системами с однородным доступом к памяти. Поскольку в таких системах все процессоры соединяются с модулями памяти с помощью какого-либо коммутатора или шины, то производительность такой ВС определяется пропускной способностью шины. Обычно такие ВС содержат от 4 до 8 процессоров.
Если каждый процессор имеет собственную локальную память (в дополнение к общей), то ВС называют системой с неоднородным доступом. Наличие локальных памятей позволяет уменьшить число обращений в общую «глобальную» память и сделать систему эффективной при числе процессоров до 20-30.
В многомашинных ВС каждый процессор обладает собственной памятью, к которой и может адресоваться; это системы с распределенной памятью. Доступ к памяти другого процессора происходит путем обмена сообщениями с ним. В таких системах (например, локальной сети) каждый процессор может самостоятельно изменять содержимое памяти, не заботясь о согласовании ее с другими процессорами. Но обмен сообщениями вызывает дополнительные издержки: нужно сформировать и передать сообщение, а принимающий процессор должен его обработать и передать ответное сообщение с требуемой информацией.
Когерентность кэш-памяти
В ВС, состоящих из нескольких процессоров и обладающих глобальной памятью, для уменьшения числа обращений к ней (а следовательно, и задержек) каждый процессор снабжают собственной локальной кэш-памятью. При этом каждый процессор может модифицировать данные в своей индивидуальной кэш-памяти по своей программе. Затем модифицированные данные могут направляться назад в одну и ту же ячейку глобальной памяти. Таким образом, значение в этой ячейке будет зависеть от того, какой из процессоров последним произвел ее модификацию. В этом и состоит проблема когерентности кэш-памяти. При изменении элемента данных в своей кэш-памяти одним из процессоров необходимо произвести соответствующие изменения в кэш-памяти других процессоров и в глобальной памяти системы, чтобы сохранить состоятельность данных.
Для решения этой проблемы используют запись с аннулированием и запись с обновлением. Любая строка в кэш-памяти помечается тегом, состоящим из двух битов состояния: I (недействительное), V (достоверное), R (резервированное) и D (измененное). При записи с аннулированием, если какой-либо процессор изменяет содержимое совместно используемого блока в своей кэш-памяти, то все копии этого блока в кэш-памятях других процессоров помечаются как недостоверные, для чего бит V в них устанавливается в ноль. При сквозной записи этот модифицированный блок записывается также в глобальную память. При попытках этих процессоров прочитать отмеченный блок данных из своих кэш-памятей произойдет кэш-промах, т.е. возникает необходимость прочитать модифицированный блок из глобальной памяти. При использовании обратной записи нужно вначале переписать этот блок в глобальную память из того модуля, где он был модифицирован.
При записи с обновлением любые изменения в записи, произведенные в локальной кэш-памяти одного из процессоров, немедленно дублируются в кэш-памятях и всех остальных. Для внесения изменений во все кэш-памяти необходимо передать модифицированный блок данных всем процессорам, что возможно далеко не при всякой топологии сети и часто требует значительных затрат времени.
Для поддержания когерентности кэш-памяти может быть использовано несколько механизмов: совместно используемая кэш-память, некэшируемые данные, широковещательная запись, а также протоколы наблюдения и на основе справочника.
При совместно используемой кэш-памяти и отсутствии локальных памятей решение проблемы когерентности тривиально, но такая организация ВС не позволяет добиться высокой производительности: совместная кэш-память удалена от процессоров и обращение к ней требует выполнения арбитражных функций.
Второй механизм – это запрет кэширования данных, которые могут быть изменены. Для реализации такого механизма нужно в памяти хранить признак, указывающий на возможность кэширования слова или блока данных. Поскольку модификация команд в программах обычно не производится, то нужно помечать лишь кэшируемые данные. В любом случае, это приводит к дополнительным затратам на программирование.
Механизм широковещательной записи связан с передачей запросов на запись всем кэш-памятям системы, что заставляет все контроллеры проверять наличие копий модифицируемого блока. Этот механизм связан с дополнительными затратами времени на передачу сообщений.