Раскраска кеша - Cache coloring

В Информатика, раскраска кеша (также известный как раскраска страницы) - это процесс попытки выделить бесплатные страницы которые примыкают к Кеш процессора с точки зрения, чтобы максимально увеличить общее количество страниц, кэшируемых процессором. Раскраска кеша обычно используется низкоуровневыми распределение динамической памяти код в Операционная система, при отображении виртуальная память к физическая память. Подсистема виртуальной памяти, в которой отсутствует раскраска кэша, менее детерминирована в отношении производительности кеша, поскольку различия в распределении страниц от одного запуска программы к другому могут привести к большим различиям в производительности программы.

Подробности операций

Иллюстрация раскраски кеша. Слева виртуальная память пространств, центр - это пространство физической памяти, а справа - Кеш процессора.

Физически индексированный кэш ЦП разработан таким образом, что адреса в соседних блоках физической памяти занимают разные позиции («строки кэша») в кэше, но это не тот случай, когда дело доходит до виртуальной памяти; когда выделяются виртуально смежные, но не физически смежные блоки памяти, они потенциально могут занимать одинаковую позицию в кэше. Раскрашивание - это метод, реализованный в программном обеспечении для управления памятью, который решает эту проблему, выбирая страницы, которые не конкурируют с соседними страницами.

Страницы физической памяти «раскрашены», поэтому страницы с разными «цветами» занимают разные позиции в кэш-памяти ЦП. При выделении последовательных страниц в виртуальной памяти для процессов ядро ​​собирает страницы с разными «цветами» и отображает их в виртуальную память. Таким образом, последовательные страницы в виртуальной памяти не конкурируют за одну и ту же строку кэша.

Реализации

Этот код значительно усложняет подсистему распределения виртуальной памяти, но результат стоит затраченных усилий.[1] Раскраска страниц делает виртуальную память такой же детерминированной, как и физическая память, в отношении производительности кеша. Раскраска страниц используется в операционные системы Такие как Солярис,[2] FreeBSD,[1] NetBSD,[3] и Windows NT.[4]

Рекомендации

  1. ^ а б Мэтью Диллон. «Раскраска страницы». Элементы дизайна системы FreeBSD VM. Фонд FreeBSD. Получено 2007-01-13.
  2. ^ "Что нового в операционной системе Solaris". Маркетинговые материалы Solaris. Sun Microsystems, Inc. Получено 2007-01-13.
  3. ^ Мэтт Томас. «Улучшение NetBSD / mips» (PDF). Управление цветами страницы. Фонд NetBSD. Получено 2012-09-24.
  4. ^ Эдуард Бюньон; Дженнифер М. Андерсон; Тодд С. Моури *; Мендель Розенблюм; Моника С. Лам. «Раскраска страниц, управляемая компилятором для мультипроцессоров». Стэндфордский Университет. Получено 2009-10-06.

внешняя ссылка