16.1 Принцип взаимодействия кэш памяти и оперативной памяти

advertisement
16.1 Принцип взаимодействия кэш памяти и оперативной памяти. Способы обновления информации
в оперативной памяти в системах с кэш памятью.
Кэш-память - это высокоскоростная память произвольного доступа, используемая процессором
компьютера для временного хранения информации. Она увеличивает производительность,
поскольку хранит наиболее часто используемые данные и команды «ближе» к процессору, откуда
их можно быстрее получить. Когда процессору нужно выполнить команду, он сначала
анализирует состояние своих регистров данных. Если необходимых данных в регистрах нет, он
обращается к кэш-памяти первого уровня, а затем — к кэш-памяти второго уровня. Если данных
нет ни в одной кэш-памяти, процессор обращается к оперативной памяти. И только в том случае,
если нужных данных нет и там, он считывает данные с жесткого диска.
Кэш первого уровня (L1) – наиболее быстрый уровень кэш-памяти, который работает напрямую
с ядром процессора, благодаря этому плотному взаимодействию, данный уровень обладает
наименьшим временем доступа и работает на частотах близких процессору. Является буфером
между процессором и кэш-памятью второго уровня.
Кэш второго уровня (L2) – второй уровень более масштабный, нежели первый, но в результате,
обладает меньшими «скоростными характеристиками». Соответственно, служит буфером между
уровнем L1 и L3.
Кэш третьего уровня (L3) – третий уровень, опять же, более медленный, нежели два
предыдущих. Но всё равно он гораздо быстрее, нежели оперативная память. Объём кэша L3 в i73770K составляет 8 Мбайт. Если два предыдущих уровня разделяются на каждое ядро, то данный
уровень является общим для всего процессора.
Кэш-память с прямым отображением. Самый простой вариант взаимодействия кэша с ОЗУ.
Объем ОЗУ делится на сегменты (страницы), по объему равные объему всего кэша (например, при
объеме кэша 64 Кб и ОЗУ разбивается на страницы по 64 Кб). При взаимодействии кэша с ОЗУ,
одна страница ОЗУ размещается в кэш-памяти, начиная с нулевого адреса (т.е., с самого начала
кэша). При повторной операции взаимодействия, следующая страница накладывается поверх
существующей - т.е., фактически прежние данные заменяются на текущие.
Достоинства: простая организация массива, минимальное время поиска.
Недостатки: неэффективное использование всего объема кэш-памяти - ведь вовсе не обязательно,
что данные будут занимать весь объем кэша, они могут занимать и 10%, но следующая порция
данных уничтожает предыдущую, таким образом, фактически имеем кэш с гораздо меньшим
объемом.
Наборно-ассоциативная кэш-память. Весь объем кэша делится на несколько равных сегментов,
кратных двойке в целой степени (2, 4, 8)
При такой организации, ОЗУ делится на страницы, равные по объему одному сегменту кэша
(одному кэш-банку). Страница ОЗУ пишется в первый кэш-банк; следующая страница - во второй
кэш-банк и т.д., пока все кэш-банки не будут заполнены. Дальнейшая запись информации идет в
тот кэш-банк, который не использовался дольше всего (содержит самую "старую" информацию).
Достоинства: повышается эффективность использования всего объема кэша - чем больше кэшбанков (выше ассоциативность), тем выше эффективность.
Недостатки: более сложная схема управления работой кэша; дополнительное время на анализ
информации.
Ассоциативная кэш-память. Это предельный случай предыдущего варианта, когда объем кэшбанка становится равным одной строке кэш-памяти (дальше делить уже некуда). При этом любая
строка ОЗУ может быть сохранена в любом месте кэш-памяти.
Запоминающий кэш-массив состоит из строк равной длины. Емкость такой строки равна размеру
пакета, считываемого из ОЗУ за 1 цикл. Строка загружается в кэш и извлекается только целиком.
Достоинства: максимальная эффективность использования пространства кэш-памяти.
Недостатки: наибольшие затраты времени на поиск информации.
16.2 Взаимоотношение между операционной системой, биос и схема физической адресации секторов
в контроллерах накопителей на жестких дисках.
Если программа хочет считать или записать информацию на диске, то она формирует запрос
(запрос файла), причём единицей информации на этом высшем уровне является файл (рис. 6.4).
OC в несколько обращений преобразует запрос файла в логические секторы или LBA, а КНЖД - в
конкретные кластеры или секторы:
1. Сначала драйвер устройства преобразует логические адреса (LBA) в логические адреса (LCHS). Для этого он привлекает параметры накопителя, которые «узнаёт» во время своей загрузки
из вызова
Int 13h-8;
2. Затем запрос передачи данных поступает в BIOS, которая, в свою очередь, посылает запрос в
схемы контроллера диска «приказ».
Вызов прерывания, который OС использует для передачи информации BIOS (Int 13h), имеет
несколько жёстких ограничений на величину чисел, допустимых для компонентов адреса.
Всё сверх этого может существовать, но невозможно через BIOS передать такую информацию
контроллеру диска. Если перемножить приведённые числа: 1024*16*63*512=528MB, т.е.
максимальная ёмкость физического накопителя, адресуемого посредством такой BIOS, составляет
528482304 байта или 504MB. Те места в BIOS, которые хранят максимальный номер головки,
допускают числа до 255. Если допустить, что число головок может быть 256, то максимальная
ёмкость диска составит не 504MB, а 8.4GB.
Download