Раскраска кэша
В информатике , раскраска кэша (также известная как раскраска страниц ) — это процесс попытки выделить свободные страницы которые являются смежными с точки зрения кэша ЦП , чтобы максимизировать общее количество страниц, кэшируемых процессором. Раскраска кэша обычно используется низкоуровневым кодом динамического распределения памяти в операционной системе при сопоставлении виртуальной памяти с физической памятью . Подсистема виртуальной памяти, в которой отсутствует раскраска кэша, менее детерминирована в отношении производительности кэша, поскольку различия в распределении страниц при запуске одной программы в другую могут привести к большим различиям в производительности программы.
Подробности операций
[ редактировать ]
Физически индексированный кеш ЦП спроектирован таким образом, что адреса в соседних блоках физической памяти занимают разные позиции («строки кеша») в кеше, но это не тот случай, когда речь идет о виртуальной памяти; когда выделяются виртуально соседние, но не физически соседние блоки памяти, они потенциально могут оба занять одну и ту же позицию в кэше. Раскраска — это метод, реализованный в программном обеспечении управления памятью, который решает эту проблему путем выбора страниц, которые не конкурируют с соседними страницами.
Страницы физической памяти «цветные», поэтому страницы с разными «цветами» занимают разные позиции в кэш-памяти ЦП. При выделении последовательных страниц в виртуальной памяти для процессов ядро собирает страницы разных «цветов» и отображает их в виртуальную память. Таким образом, последовательные страницы в виртуальной памяти не конкурируют за одну и ту же строку кэша.
Реализации
[ редактировать ]Этот код значительно усложняет подсистему распределения виртуальной памяти, но результат стоит затраченных усилий. [1] Раскраска страниц делает виртуальную память такой же детерминированной, как и физическая память, в отношении производительности кэша. Раскраска страниц используется в таких операционных системах , как Solaris , [2] FreeBSD , [1] НетБСД , [3] и Windows NT . [4]
Ссылки
[ редактировать ]- ^ Перейти обратно: а б Мэтью Диллон . «Раскраска страниц» . Элементы дизайна системы FreeBSD VM . Фонд FreeBSD . Проверено 13 января 2007 г.
- ^ «Новости операционной системы Solaris» . Маркетинговые материалы Solaris . Сан Микросистемс, Инк . Проверено 13 января 2007 г.
- ^ Мэтт Томас . «Улучшение NetBSD/mips» (PDF) . Управление цветами страницы . Фонд NetBSD . Проверено 24 сентября 2012 г.
- ^ Эдуард Бюньон; Дженнифер М. Андерсон; Тодд К. Моури*; Мендель Розенблюм; Моника С. Лам. «Раскраска страниц для многопроцессорных процессоров, управляемая компилятором» . Стэнфордский университет . Проверено 6 октября 2009 г.
Внешние ссылки
[ редактировать ]- « Алгоритмы размещения страниц для больших кэшей с реальным индексом », Р. Э. Кесслер, Марк Д. Хилл, Университет Висконсина, 1992.
- « Раскрашиваемая память », Йохен Лидтке , IBM TJ Watson Center, ноябрь 1996 г.
- « Технология затенения кэша », Марай, технологический блог CSDN, 2008 г.