LINUX.ORG.RU

История изменений

Исправление mv, (текущая версия) :

А почему именно man TLB, можно поинтересоваться? То есть, понятно что будет проседание по производительности из-за pointer chasing'а, но в чем специфика TLB, а не кеш-миссов в целом?

1. Размер TLB существенно меньше, чем строк в кэше. Случайный доступ в массив размером 64мб вытирал TLB у Nehalem полностью

2. Для восполнения промаха в кэше нужен один доступ в память (плюс вытеснение одной строки из кэша), для TLB - 3 или 4 для обхода таблицы страниц, в зависимости от процессора и режима его работы, с вытеснением такого же количества строк из кэша

3. У кэша есть префетчер и спекулятивный доступ, обычно успешно подтягивающий данные до того, как они будут нужны, у TLB этого нет

4. Транслятор адресов может параллельно делать всего две трансляции для чтения и одну для записи. И это нужно делать для каждой кэш-строчки.

5. Большие страницы для sparse-массива - это огромный перерасход памяти, а на микроархитектурах до Haswell ещё и тормоза из-за отдельного и крохотного TLB для больших страниц (на SnB было 32).

Исходная версия mv, :

А почему именно man TLB, можно поинтересоваться? То есть, понятно что будет проседание по производительности из-за pointer chasing'а, но в чем специфика TLB, а не кеш-миссов в целом?

1. Размер TLB существенно меньше, чем строк в кэше. Случайный доступ в массив размером 64мб вытирал TLB у Nehalem полностью

2. Для восполнения промаха в кэше нужен один доступ в память (плюс вытеснение одной строки из кэша), для TLB - 3 или 4 для обходма таблицы страниц, в зависимости от процессора и режима его работы, с вытеснением такого же количества строк из кэша

3. У кэша есть префетчер и спекулятивный доступ, обычно успешно подтягивающий данные до того, как они будут нужны, у TLB этого нет

4. Транслятор адресов может параллельно делать всего две трансляции для чтения и одну для записи. И это нужно делать для каждой кэш-строчки.

5. Большие страницы для sparse-массива - это огромный перерасход памяти, а на микроархитектурах до Haswell ещё и тормоза из-за отдельного и крохотного TLB для больших страниц (на SnB было 32).