stringtranslate.com

Раскраска кэша

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

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

Иллюстрация раскраски кэша. Слева — виртуальные области памяти, в центре — физическая область памяти, справа — кэш ЦП .

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

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

Реализации

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

Ссылки

  1. ^ ab Matthew Dillon . "Page Coloring". Элементы дизайна системы FreeBSD VM . FreeBSD Foundation . Получено 2007-01-13 .
  2. ^ "Solaris Operating System What's New". Маркетинговые материалы Solaris . Sun Microsystems, Inc. Получено 13.01.2007 .
  3. ^ Мэтт Томас. "Улучшение NetBSD/mips" (PDF) . Управление цветами страниц . NetBSD Foundation . Получено 24.09.2012 .
  4. ^ Эдуард Бюньон; Дженнифер М. Андерсон; Тодд К. Моури*; Мендель Розенблюм; Моника С. Лэм. «Раскраска страниц, управляемая компилятором, для многопроцессорных систем». Стэнфордский университет . Получено 06.10.2009 .

Внешние ссылки