Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MPT_otvety_na_ekzamen.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
416.51 Кб
Скачать
  1. Описание блок-схем алгоритмов обслуживания запросов в подсистеме памяти с кэшированием:

Как уже упоминалось ранее, работа кэш-памяти прозрачна для программиста, тем не менее, знание ее особенностей, может в ряде случаев существенно повысить эффективность разрабатываемых программ. Допустим, что программа обрабатывает наборы связанных между собой данных. Тогда их целесообразно располагать в памяти как можно ближе друг к другу. В этом случае при загрузке блока информации в кэш-память весьма высока вероятность того, что два или более информационных слова окажутся в одном блоке (одной строке кэш-памяти) и, следовательно, после обработки первого слова, при обращении за вторым, процессор выберет его из кэш-памяти, а не из основной оперативной памяти. Таким образом, обращения к оперативной памяти будут сведены к некоторому минимуму, и время выполнения программ существенно сократится.

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

Рис.IV.5 Размещение данных в памяти системы.

Если разместить их в памяти, не выравнивая на границу четырехбайтного блока, например, по соображению экономии памяти, то половина слов (два из каждых четырех) будет распределена по двум строкам буфера (Рис.IV.5). Такое решение приведет к тому, что достаточно часто каждая попытка доступа к одному информационному слову закончится двумя неудачными обращениями к кэш-памяти. Выравнивание слова на границу слова позволит уменьшить число неудачных обращений к буферу до одного в расчете на слово, то есть в два раза. А это уже весьма существенное значение.

Следует отметить, что подобные приемы могут оказаться очень эффективными в тех случаях, когда важно время выполнения программы или какой-либо ее части, а все используемые ранее методы оптимизации не дали требуемого результата.

В заключение приведем обобщенную блок-схему алгоритма выполнения запроса к памяти в системе, использующей кэширование (рис.IV.6).

Рис.IV.6. Блок-схема алгоритма выполнения запроса к памяти в

системе, использующей кэширование.

4. Двухуровневое кэширование.

В современных компьютерах используется не одна ступень кэш-памяти, а две, а в некоторых даже три. Кэш-память непосредственно связанная с процессором носит название кэш-памяти первого уровня: кэш Level 1 (кэш L1).

Рис.IV.7 Блок-схема алгоритма выполнения запроса на чтение в системе с

двухуровневой кэш-памятью.

Кэш-память, расположенная между кэш L1 и основной памятью носит название кэш-памяти второго уровня (кэш L2), а кэш-память, расположенная между кэш L2 и основной памятью называется кэш-памятью третьего уровня (кэш L3).

Объем кэш L1 в современных процессорах обычно имеет размеры 64 Кбайт (32 Кбайт для инструкций и 32 Кбайт для данных) и время доступа 1-2 тактовых интервала CPU. Отметим, правда, что, в процессоре Pentium 4, в кэш L1 инструкций хранятся не их коды, а последовательности микрокоманд, в которые уже декодированы инструкции (до 12К микрокоманд). Поэтому, такой кэш обычно называют не кэш инструкций, а кэш трассы (trace cache).

Объем кэш L2 – 256…2048 Кбайт со временем доступа 3-5 тактовых интервала, а объем кэш L3 достигает 12 Мбайт и даже больше.

Для пояснения функционирования двухуровневой кэш-памяти, в упрощенном виде, на рис.IV.7 и рис.IV.8 изображены обобщенные блок-схемы алгоритмов выполнения ими запросов на чтение и на запись соответственно.

Рис.IV.8. Блок-схема алгоритма выполнения запроса на запись с

двухуровневой кэш-памятью.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]