Заметим, что для увеличения скорости блочных пересылок между основной памятью и кэш-памятью желательно, чтобы с увеличением размера блоков росла и разрядность шины данных между ОП и кэш-памятью. (В этом, например, заключается основной смысл введения 64-разрядной шины данных в 32-разрядных процессорах семейства Pentium).
Исследованиями виднейших специалистов в области систем программирования (в частности Д.Кнутом) было установлено, что линейные участки программ (т.е. участки, в которых отсутствуют команды переходов) обычно не превышают 3…5 команд, а значит, и нет особого смысла в использовании блоков, размер которых превышает эту величину. Поэтому типичный размер применяемых в современных компьютерах блоков составляет 16, 64, 128 и 256 байт. В персональных компьютерах, создаваемых на микропроцессорах типа i486 информация загружалась в кэш блоками по 16 байт, а в процессорах линии Pentium - по 32 байта. В современных процессорах микроархитектуры Nehalem размер блока принят равным 64 байт.
При каждом обращении к кэшируемой основной памяти контроллер кэш-памяти по каталогу признаков (тэгов) проверяет, есть ли действительная копия затребованных данных в кэш-памяти. Если она там есть, то это случай кэш-попадания (cachehit), и обращение за данными происходит только к кэш-памяти. Если действительной копии там нет, то это случай кэш-промаха (cachemiss), и данные берутся из основной памяти. При этом в соответствии с алгоритмом кэширования, блок данных, включающий запрашиваемые данные, считывается из основной памяти и замещает один из блоков кэш-памяти.
Обращение к основной памяти может начинаться одновременно с поиском в кэш-памяти, а в случае попадания (cache hit) – прерываться. Такая технология носит название технологии Look aside. При ее использовании время доступа к требуемой информации сокращается, но зато увеличивается энергопотребление.
Другая технология (Lookthrough) заключается в том, что обращение к основной памяти начинается только после обнаружения промаха (cache miss). При этом экономится энергопотребление, но увеличивается время доступа к требуемым данным (теряется, по крайней мере, один такт процессора).
2. Организация и функционирование.
Поскольку кэш-память по объему значительно меньше основной оперативной памяти (на 2-3 порядка и более) то встает вопрос о способах отображения кэшируемой оперативной памяти в буферную кэш-память. В зависимости от способа этого отображения различают следующие разновидности кэш-памятей.
· Кэш с прямым отображением (Direct-mappedcache).
· Полностью ассоциативный кэш (Fully associative cache).
· Наборно-ассоциативный кэш (Set-associativecache), часто называемый множественно-ассоциативным.
Кэш-память с прямым отображением.
По организации, кэш-память с прямым отображением является самым простым типом буферной памяти. Физический адрес однозначно определяет строку кэш-памяти, в которую будет помещен блок информации из оперативной памяти. При этом предполагается, что оперативная память разбита на блоки и каждому такому блоку в буферной кэш-памяти отводится всего одна строка (см. рис.IV.2).
Предположим, что в компьютере используется 32-разрядный физический адрес. Размер блока пусть будет равным 16 байтам, а емкость кэш-памяти – 8 Кбайт. В этом случае для формирования адреса в кэш-памяти достаточно 13 разрядов, из которых 4 младших разряда определяют один из 16 байт в блоке, а 9 старших разрядов адресуют один из 512 блоков (строк) кэш-памяти. В соответствии с этим, физический адрес, выдаваемый процессором, можно разбить на 3 поля: старшие 19 разрядов – признак или тэг (Tag), средние 9 разрядов – индекс (Index) или номер строки и младшие 4 разряда – смещение или номер байта в строке.
Тэг – определяет как бы страницу адресного пространства оперативной памяти, где находится требуемый блок данных, т.е. некоторый массив соседних ячеек оперативной памяти. Таких страниц во всем адресном пространстве оперативной памяти в случае нашего примера может быть до 219 , а каждая страница содержит по 232 : 219 = 213 =8 Кбайт.
Для пояснения понятия страницы, на стр. 80, приведена таблица адресов, которая иллюстрирует возможные разбиения адресного пространства на страницы. В приведенном выше перечне адресов адресного пространства, объемом 288 байт, можно выделить, например, 16 страниц 4 битовых адресов, или 8 страниц 5 битовых адресов, или 4 страницы 6 битовых адресов и т.д.
Рис.IV.2 Организация кэш-памяти объемом 8 Кбайт
с прямым отображением.
Индекс – определяет номер строки кэш-памяти, в которую заносится из оперативной памяти блок информации, размером 16 байт. Напомним, что размер блока в 16 байт характерен для процессоров типа i386 и i486. Размер блока в процессорах линии Pentium имеет значение 32 байта, а в современных процессорах микроархитектуры Nehalem размер блока принят равным 64 байт.
К понятию страниц в адресном пространстве памяти компьютера.
00000000 00110000 01100000 10010000 11000000 11110000
00000001 00110001 01100001 10010001 11000001 11110001
00000010 00110010 01100010 10010010 11000010 11110010
00000011 00110011 01100011 10010011 11000011 11110011
00000100 00110100 01100100 10010100 11000100 11110100
00000101 00110101 01100101 10010101 11000101 11110101
00000110 00110110 01100110 10010110 11000110 11110110
00000111 00110111 01100111 10010111 11000111 11110111
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.