Иерархия памяти. Производительность КС зависит от главных характеристик: от быстродействия и емкости памяти

Производительность КС зависит от главных характеристик: от быстродействия и емкости памяти. Существуют различные физические и технические принципы организации устройства памяти. Различие: быстродействие и стоимость. Использование наиболее быстродейственной памяти в объеме, достаточном для обеспечения высокой производительности – очень дорого. Есть методы построения КС, удовлетворяющие этим требованиям с умеренной стоимостью.

1. Построение системы памяти с иерархической структурой

2. Исключение простоев ЦП за счет органиации параллельных действий различных устройств

Кэш-память – скрытая память, используется ЦП без участия программиста Как и в ОП могут различаться данные и команды.

КЭШ 1-го уровня имеет раздельные кэш для данных и команд.

В регистрах различают часто используемые данные. Команды в регистр не записываются.

Внешняя память(массовая память) – чаще всего дисковая. Команды и данные, находящиеся в этой памяти, могут быть использованы ЦП после того, как скопированы в ОП. Объем ВП около 1-5 Тб.

Использование иерархической памяти: пусть на некотором уровне находится фрагмент памяти, состоящий из последовательности равных по длине участков. Участки попеременно подаются на более высокий уровень для исполнения. Участки содержат циклы, которые используются многократно. (n раз)

T – время выборки из нижнего уровня, t – время выборки из верхнего уровня, T(тау)-среднее время выборки, T(тау)=t+T/N. При T/N->0. T(тау)=t.

Параллельность работы устройств

Параллельность работы разных уровней памяти и устройств ввода/вывода обеспечивается комплексом программных и аппаратных средств. Совокупность програмнных средств является частью ОС, постоянно находящихся в ОП. Аппаратные средства – контроллеры, буферы, механизм прерываний, зашитый в схему ЦП.

Буфер – ЗУ, небольшой емкости, предназначенный для кратковременного хранения информации. Работает по принципу FIFO. Буфер по очереди принимает от памяти одного уровня единицы информации и по очереди передает в память другого уровня.

Контроллер – специализированный процессор, способный управлять одним из устройств КС. Память каждого уровня управляется своим контроллером.

Взаимодействие двух соседних уровней происходит в 2 этапа:

Сначала в буфер, потом из него. Сложности возникают, когда верхний уровень требует информацию из нижнего. Возможно простаивание ЦП, поэтому применяют упреждающую выборку. Инициатором выбора может быть контроллер или программа. Не всегда удается организовать упреждающую выборку и минимизировать простои, т.к. в многопроцессорном режиме ЦП выполняет одну из программ, а контроллеры одновременно выполняют операции ввода/вывода.

Технология взаимодействия уровней ОП

Промахи и при обращении ЦП к ОП не всегда удается предотваритить упреждающей выборкой. Приходится ждать подкачки нужного фрагмента из нижнего уровня. Для уменьшении промахов целесообразно копировать наверх несколько фрагментов программы данных. Действует 2 правила: 1) память всех уровней делится на блоки, все блоки на каждом уровне одинаковой длины. 2) если произошел промах по чтению, то в память верхнего уровня копируется фрагмент, содержащий затребованный адрес. Копировать можно только часть нижнего уровня, поэтому верхний уровень имеет каталог, где каждому блоку из верхнего уровн сопоставляется описатель – дескрипторы для блоков ОП и тэг для блоков кэш-памяти. Имеется поле признаков, которое содержит подполя.

T/дескриптор – это строка, содержащая указания о том, из какого места нижнего уровня скопирован содержащийся в блоке фрагмент, а также после признака.

R – признак используемости, значение R показывает, когда в последний раз использовался данный фрагмент.

V – признак действительности, если значение =0, то фрагмент не соответсвует написанному блоку.

М – модификации. Если значение = 1, то во фрагменте производилась запись, т.е. он не являлся точной копией нижнего уровня.

Основными характеристиками каждого уровня памяти с точки зрения быстродействия является время пересылки слова на верхний уровень и частота промахов. Для сбалансированности работы памяти должно выполняться соотношение: T≤t+N; T – время обработки слова на нижнем уровне; t – время обработки слова на верхнем уровне; N – среднее число промахов на обращения.

Виртуальная память

Работа в многопрограммном режиме повышает производительность ЦП и ставит новые проблемы:

1. Защита программ, т.е. программы не должны мешать друг другу

2. Независимость адресных пространств – каждая программа использует ОП, как будто других программ нет.

3. Чтобы размещать в ОП несколько программ одновременно – память должна быть большой.

Эти проблемы может решить виртуальная память. Это воображаемая память, по объему равная максимально адресуемой памяти. Использует дисковую память как продолжение основной. Организуется на аппаратном или программном уровнях и программист не должен замечать между ОП и ВП.

Для чтения информации с жесткого диска необходимо:

1. Переместить магнитные головки на заданную дорожку

2. Дождаться, когда нужный сектор окажется под магнитной головкой

3. Переслать считываемую информацию в ОП

Время первых двух действий значительно больше времени пересылки и зависит от положения магнитной головке во время запроса.

Целесообразно пресылать данные на диск и с него большими порциями. Файлы пишутся и удаляются, а, в результате, дисковое пространство оказывается фрагментированным, т.е. имеет место чередовании свободных и занятых секторов. Поэтому имеется разница во времени между внутренней и внешней пересылкой. Для сглаживания имеется буфер.

Для повышения эффективности используют прием, называемый расслоением данных. Для этого надо использовать М независимых дисков. Каждый файл делится на М равных частей. Каждая записывается на отдельных дисках. Запись, а потом и чтение, производится одновременно на все диски, что уменьшает время записи.

Свойства локальности ссылок делает эффективным использованием приемов, сокращающих время доступа к диску.

Для увеличения памяти используется расслоение в ОП. Для этого память разбивается на блоки. Расслоение позволяет обращаться к различным блокам памяти одновременно. Часто используется схема расслоении памяти, емкостью 256 МБ на 4 блока по 64 МБ. Возможны 2 варианта.

Варианты:

1. Циклическая

00…0 00…4 СF F
00…2 00…6 EF F
00…3 00…7 FF F
00…1 00…5 DF F


2. Побочная

00…0 00…1 3F F
80…0 80…1 8F F
C0…0 C0…1 FF F
40…0 40…1 7F F


1 Вариант – схемы расслоения используются для КС, работающих в однопрограммном режиме.

2 Вариант – рассчитан на ПК, работающих в многозадачном режиме.

Страничная организация памяти

Это один из способов организации виртуальной памяти. Память физическая(реальная) и виртуальная делится на равные небольшие участки(4кб-4мб). Программа составляется на весь объем памяти, равной виртуальной. Программа разделяется на виртуальные страницы сначала на диске, затем часть начальных страниц вызывается в ОП. Ос ведет таблицу страниц, в ней каждой странице соответсвтует строка: адрес реального расположения в ОП, ее адрес на диске и набор признаков. Строки в таблице расположены в порядке номеров страниц.

Процессор, дешифрируя команды, вырабатывает дефективные адреса – виртаульные или логические. Контроллер памяти, он же диспетчер памяти, проверяет по таблице страниц, находится ли нужная страницы в памяти. Если да, то преобразует виртуальный адрес в физический. Если нет, то управление переходит к ОС, которая ищет возможность записать в ОП нужную страницу. ОС ведет список свободных физических страниц.

Схема преобразования логического адреса в физический

α –номер виртуальной страницы в таблице строк. Строка соединит информацию о странице. Базовый регистр позволяет вычислить адрес строки с номером α.

А α – номер физической страницы. Физическая страница меньше виртуальной страницы. Физическая страница в разное время может принадлежать разным виртуальным страницам.

Disp – смещение байтов относительно начала страницы. Оно одно и то же для физических и виртуальных страниц. D α – виртуальный адрес на диске.

В многопрограммном режиме каждой программе выделен свой набор физических страниц. Виртуально - адресное пространство для всех программ одинаково. Таблица страниц имеет одинаковую длину и распространена в ОП. Для переключения на выполнение новой программы надо занести в базовый регистр адрес таблицы, адрес страниц.

Поле признаков делится на подполя:

1. V α – признак присутствия равен 1, если виртуальная страница α присутствует в ОП.

2. M α равен 1, если в физическую страницу производится запись. Если равен 0, то заменяемая страница не пересылается на диск, т.е там ее копия.

3. R α признак использования - беззнаковое число 1- 4 бита.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: