- •Основные понятия и характеристики архитектуры микропроцессоров
- •Основные направления развития архитектуры универсальных микропроцессоров
- •80-Ядерный процессор от фирмы inTel
- •Микропроцессоры с risc-аpхитектуpой
- •Общие принципы функционирования кэш-памяти
- •Механизм сохранения информации в кэш-памяти
- •Типы кэш-памяти
- •Мультипрограммный режим работы микропроцессора
- •Прерывания и особые случаи
- •Порядок обработки прерываний
- •Принципы организации взаимодействия микропроцессора с внешними устройствами
- •Процессоры цифровой обработки сигналов
Типы кэш-памяти
Если каждая строка ОЗУ имеет только одно фиксированное место, на котором она может находиться в кэш-памяти, то такая кэш-память называется памятью с прямым отображением.
Предположим, что ОЗУ состоит из 1000 строк с номерами от 0 до 999, а кэш-память имеет емкость только 100 строк. В кэш-памяти с прямым отображением строки ОЗУ с номерами 0, 100, 200, ..., 900 могут сохраняться только в строке 0 КП и нигде иначе, строки 1, 101, 201, …, 901
ОЗУ - в строке 1 КП, строки ОЗУ с номерами 99, 199, …, 999 сохраняются в строке 99 кэш-памяти (рис. 4.2). Такая организация кэш-памяти обеспечивает быстрый поиск в ней нужной информации: необходимо проверить ее наличие только в одном месте. Однако емкость КП при этом используется не в полной мере: несмотря на то, что часть кэш-памяти может быть не заполнена, будет происходить вытеснение из нее полезной информации при последовательных обращениях, например, к строкам 101, 301, 101 ОЗУ.
Рис. 4.2. Принцип организации кэш-памяти с прямым отображением
Кэш-память называется полностью ассоциативной, если каждая строка ОЗУ может располагаться в любом месте кэш-памяти.
В полностью ассоциативной кэш-памяти максимально используется весь ее объем: вытеснение сохраненной в КП информации проводится лишь после ее полного заполнения. Однако поиск в кэш-памяти, организованной подобным образом, представляет собой трудную задачу.
Компромиссом между этими двумя способами организации кэш-памяти служит множественно-ассоциативнаяКП, в которой каждая строка ОЗУ может находиться по ограниченному множеству мест в кэш-памяти.
При необходимости замещения информации в кэш-памяти на новую используется несколько стратегий замещения. Наиболее известными среди них являются:
LRU - замещается строка, к которой дольше всего не было обращений;
FIFO - замещается самая давняя по пребыванию в кэш-памяти строка;
Random - замещение проходит случайным образом.
Последний вариант, существенно экономя аппаратные средства по сравнению с другими подходами, в ряде случаев обеспечивает и более эффективное использование кэш-памяти. Предположим, например, что КП имеет объем 4 строки, а некоторый циклический участок программы имеет длину 5 строк. В этом случае при стратегиях LRUиFIFOкэш-память окажется фактически бесполезной ввиду отсутствия кэш-попаданий. В то же время при использовании стратегии случайного замещения информации часть обращений к КП приведет к кэш-попаданиям.
Некоторые эвристические оценки вероятности кэш-промаха при разных стратегиях замещения (в процентах) представлены в табл. 4.1.
Таблица 4.1. Вероятность кэш-промаха для различной кэш-памяти | ||||||
Размер кэша,Кбайт |
Организация кэш-памяти | |||||
2-канальная ассоциативная |
4-канальная ассоциативная |
8-канальная ассоциативная | ||||
LRU |
Random |
LRU |
Random |
LRU |
Random | |
16 |
5.2 |
5.7 |
4.7 |
5.3 |
4.4 |
5.0 |
64 |
1.9 |
2.0 |
1.5 |
1.7 |
1.4 |
1.5 |
256 |
1.15 |
1.17 |
1.13 |
1.13 |
1.12 |
1.12 |
Анализ таблицы показывает, что:
увеличением емкости кэша, естественно, уменьшается вероятность кэш-промаха, но даже при незначительной на сегодняшний день емкости кэш-памяти в 16 Кбайт около 95 % обращений происходят к КП, минуя оперативную память;
чем больше степень ассоциативности кэш-памяти, тем больше вероятность кэш-попадания за счет более полного заполнения КП (время поиска информации в КП в данном анализе не учитывается);
механизм LRU обеспечивает более высокую вероятность кэш-попадания по сравнению с механизмом случайного замещения Random, однако этот выигрыш не очень значителен.
Соответствие между данными в оперативной памяти и в кэш-памяти обеспечивается внесением изменений в те области ОЗУ, для которых данные в кэш-памяти подверглись изменениям. Существует два основных способа реализации этих действий: со сквозной записью (writethrough) и с обратной записью (write-back).
При считывании оба способа работают идентично. При записи кэширование со скозной записьюобновляет основную память параллельно с обновлением информации в КП. Это несколько снижает быстродействие системы, так как микропроцессор впоследствии может вновь обратиться по этому же адресу для записи информации, и предыдущая пересылка строки кэш-памяти в ОЗУ окажется бесполезной. Однако при таком подходе содержимое соответствующих друг другу строк ОЗУ и КП всегда идентично. Это играет большую роль в мультипроцессорных системах с общей оперативной памятью.
Кэширование с обратной записьюмодифицирует строку ОЗУ лишь при вытеснении строки кэш-памяти, например, в случае необходимости освобождения места для записи новой строки из ОЗУ в уже заполненную КП. Операции обратной записи также инициируются механизмом поддержания согласованности кэш-памяти при работе мультипроцессорной системы с общей оперативной памятью.
Промежуточное положение между этими подходами занимает способ, при котором все строки, предназначенные для передачи из КП в ОЗУ, предварительно накапливаются в некотором буфере. Передача осуществляется либо при вытеснении строки, как в случае кэширования с обратной записью, либо при необходимости согласования кэш-памяти нескольких микропроцессоров в мультипроцессорной системе, либо при заполнении буфера. Такая передача проводится в пакетном режиме, что более эффективно, чем передача отдельной строки.