2016-02-21 3 views
2

Я начал с Patterson & Книга Hennessy с базовыми определениями, а затем последовала за справочными документами по программированию Intel для получения дополнительной информации о TLB.Структура TLB в Intel

Из документов Intel я узнал о высоком уровне дизайна TLB. такие как размер строки, ассоциативность и уровни кэширования. Но в этом нуждается подробное объяснение того, как кэширование TLB работает в отношении промахов кэша и механизмов его замены в современном процессоре. Какие страницы перемещаются
в L2 TLB от L1 TLB? сколько страниц может содержать одну запись в адресе TLB? Сколько записей присутствует в TLB? (В частности, DTLB)

Любая информация или ссылки будут очень полезны для меня. (Если это не подходящий форум для этого вопроса, пожалуйста, предложите правильный вариант)

Спасибо.

+0

Возможно, вам понравится https://lwn.net/Articles/379748/, даже если он не отвечает на все поставленные вами вопросы. – Jeff

+0

TLB не имеет «строк», у него есть записи. Одна запись отображает одну виртуальную страницу на одну физическую страницу. Пропуски TLB отделяются от пропусков кэша L1. (Нет очевидной причины, по которой было бы невозможно, чтобы линия все еще была горячей в кеше L1 D, даже если перевод для этой строки был выведен из TLB.) –

+1

Запись Дэвида Кантера «Хасуэлл» [упоминает TLB] (http: //www.realworldtech.com/haswell-cpu/5/), но не входит в политику замены записей TLB. Я думаю, что L2 DTLB (8-way ассоциативный) является кэшем жертвы для записей, выведенных из L1 DTLB. В своем рецензировании SnB он сказал, что L1 DTLB был полностью ассоциативным, но теперь он говорит о 4-way? Записи перемещаются из L2 DTLB в L1 DTLB, когда есть миссия L1 DTLB, и она присутствует в L2 DTLB. Некоторые из ссылок на [x86 tag wiki] (http://stackoverflow.com/tags/x86/info) могут быть полезны, но проблема. только запись Хасуэлла Дэвида Кантера. –

ответ

2

TLB можно назвать кешем перевода, и, таким образом, его функционирование почти такое же, как и на кэшах на кристалле, например, компромиссы исключительной/инклюзивной иерархии, многоуровневые, одноуровневые, частные/общие, такие же, как в кэш. То же самое для ассоциативности, размера страницы и т. Д.

Одна запись в TLB отображает только одну виртуальную страницу на физическую страницу, но размер страницы может варьироваться, например, вместо 4kB процессор может использовать 2 МБ или 2 ГБ, что называется a superpage or hugepage. Или процессор может использовать несколько размеров страниц.

Поскольку вы просите ссылки, см. Мой survey paper on TLB, который отвечает на все эти вопросы и рассматривает более 85 работ. В частности, в разделе 2 документа приведены документы, в которых обсуждаются проекты TLB в коммерческих процессорах.

Смежные вопросы