Эссе Оралова
(Новая страница: «== '''Буфер ассоциативной трансляции''' == Буфер ассоциативной трансляции (англ. Translation lookasid…») |
|||
(не показаны 3 промежуточные версии 1 участника) | |||
Строка 4: | Строка 4: | ||
− | == '''Обзор | + | == '''Обзор''' == |
TLB используется всеми современными процессорами с поддержкой страничной организации памяти. TLB содержит фиксированный набор записей (от 8 до 4096) и является ассоциативной памятью. Каждая запись содержит соответствие адреса страницы виртуальной памяти адресу физической памяти. Если адрес отсутствует в TLB, процессор обходит таблицы страниц и сохраняет полученный адрес в TLB, что занимает в 10 — 60 раз больше времени, чем получение адреса из записи, уже закэшированной TLB. Вероятность промаха TLB невысока и составляет в среднем от 0,01 % до 1 %. | TLB используется всеми современными процессорами с поддержкой страничной организации памяти. TLB содержит фиксированный набор записей (от 8 до 4096) и является ассоциативной памятью. Каждая запись содержит соответствие адреса страницы виртуальной памяти адресу физической памяти. Если адрес отсутствует в TLB, процессор обходит таблицы страниц и сохраняет полученный адрес в TLB, что занимает в 10 — 60 раз больше времени, чем получение адреса из записи, уже закэшированной TLB. Вероятность промаха TLB невысока и составляет в среднем от 0,01 % до 1 %. | ||
Строка 28: | Строка 28: | ||
Типичные характеристики для процессоров в 2009 году: | Типичные характеристики для процессоров в 2009 году: | ||
− | 1)Размер: 12 бит — 4096 записей | + | 1)Размер: 12 бит — 4096 записей |
− | 2)Время запроса данных, хранящихся в TLB (Hit time): 0,5 — 1 такт | + | 2)Время запроса данных, хранящихся в TLB (Hit time): 0,5 — 1 такт |
− | 3)Время при «промахе» (Miss penalty): 10 — 100 тактов | + | 3)Время при «промахе» (Miss penalty): 10 — 100 тактов |
− | 4)Интенсивность промахов: 0,01 — 1 % | + | 4)Интенсивность промахов: 0,01 — 1 % |
− | == ''' | + | == '''TLB и большие страницы''' == |
− | + | Многие современные процессоры поддерживают 2 типа страниц, обычные и большие (Huge Page). Например, процессоры x86 обычно работают со страницами размера 4 кб, но допускают использование 4 МБ страниц при помощи PSE. Для процессоров x86-64 доступны большие страницы размером 2 МБ (и 1 ГБ для некоторых моделей). | |
+ | |||
+ | Записи трансляции для больших таблиц также хранятся в TLB, но на некоторых процессорах для них используется отдельный TLB в 4 — 8 записей. |
Текущая версия на 20:19, 13 января 2021
Содержание[убрать] |
[править] Буфер ассоциативной трансляции
Буфер ассоциативной трансляции (англ. Translation lookaside buffer, TLB) — это специализированный кэш центрального процессора, используемый для ускорения трансляции адреса виртуальной памяти в адрес физической памяти.
[править] Обзор
TLB используется всеми современными процессорами с поддержкой страничной организации памяти. TLB содержит фиксированный набор записей (от 8 до 4096) и является ассоциативной памятью. Каждая запись содержит соответствие адреса страницы виртуальной памяти адресу физической памяти. Если адрес отсутствует в TLB, процессор обходит таблицы страниц и сохраняет полученный адрес в TLB, что занимает в 10 — 60 раз больше времени, чем получение адреса из записи, уже закэшированной TLB. Вероятность промаха TLB невысока и составляет в среднем от 0,01 % до 1 %.
[править] Переключение задач
Если целевая задача при переключении контекста использует отличный от предыдущего контекст памяти (каталог страниц и таблицы страницы), происходит очистка TLB, таким образом при последующих обращениях в память снижается производительность процессора (необходима подгрузка записей таблицы страниц в пустой TLB). Существует несколько стратегий борьбы с очисткой:
1)сохранение TLB в оперативной памяти 2)спецификация принадлежности записи TLB к определённому адресному пространству
[править] Многоуровневые TLB
В современных процессорах может быть реализовано несколько уровней TLB с разной скоростью работы и размером. Самый верхний уровень TLB будет содержать небольшое количество записей, но будет работать с очень высокой скоростью, вплоть до нескольких тактов. Последующие уровни становятся медленнее, но вместе с тем и больше.
Иногда верхний уровень TLB разделяется на 2 буфера, один для страниц, содержащих исполняемый код, и другой — для обрабатываемых данных.
[править] Характеристики
Типичные характеристики для процессоров в 2009 году:
1)Размер: 12 бит — 4096 записей 2)Время запроса данных, хранящихся в TLB (Hit time): 0,5 — 1 такт 3)Время при «промахе» (Miss penalty): 10 — 100 тактов 4)Интенсивность промахов: 0,01 — 1 %
[править] TLB и большие страницы
Многие современные процессоры поддерживают 2 типа страниц, обычные и большие (Huge Page). Например, процессоры x86 обычно работают со страницами размера 4 кб, но допускают использование 4 МБ страниц при помощи PSE. Для процессоров x86-64 доступны большие страницы размером 2 МБ (и 1 ГБ для некоторых моделей).
Записи трансляции для больших таблиц также хранятся в TLB, но на некоторых процессорах для них используется отдельный TLB в 4 — 8 записей.