Способ и устройство оптимизации ресурса памяти
Иллюстрации
Показать всеИзобретение относится к области использования ресурсов памяти. Техническим результатом является оптимизация использования ресурсов памяти. Способ оптимизации ресурса памяти содержит этапы, на которых: приобретают данные о производительности каждой программы в рабочем наборе; категоризируют каждую программу согласно данным о производительности каждой программы и частоте доступа к памяти каждой программы, полученной посредством сбора статистики, причем данные о производительности каждой программы являются изменением, которое генерируется, когда предварительно установленный индикатор производительности каждой программы изменяется в зависимости от емкости распределенного ресурса кэша последнего уровня LLC; выбирают с учетом категоризации каждой программы в рабочем наборе и предварительно установленной политики принятия решений основанную на подгонке страниц политику разделения, соответствующую рабочему набору, причем основанная на подгонке страниц политика разделения содержит основанную на подгонке страниц совместную политику разделения для выполнения основанного на подгонке страниц разделения и по отношению к LLC, и по отношению к банку динамической оперативной памяти, банку DRAM; и записывают основанную на подгонке страниц политику разделения, соответствующую рабочему набору, в ядро операционной системы, причем ядро операционной системы выполняет соответствующую обработку основанного на подгонке страниц разделения. 3 н. и 12 з.п. ф-лы, 6 ил.
Реферат
ОБЛАСТЬ ТЕХНИКИ
Настоящее изобретение относится к области техники, связанной с компьютерами, и в частности к способу и устройству оптимизации ресурса памяти.
УРОВЕНЬ ТЕХНИКИ
В настоящее время многоядерный компьютер высокой производительности (Multi-core High Performance Computer) применяется более широко. Кроме того, поскольку количество вычислительных блоков (ядер) в процессоре продолжает увеличиваться, явление конкуренции при доступе к памяти среди множества ядер дополнительно усложняет проблему. В любой период времени параллельного выполнения запросы доступа к памяти от различных ядер могут конкурировать за доступ к памяти к ресурсам глобальной памяти, дополнительно вызывая конфликт по ресурсам, таким как контроллер памяти (Memory Controller, MC), полоса пропускания (Bandwidth) и банк динамический оперативной памяти (Bank DRAM); в результате оказывается влияние на использование ресурса.
В качестве примера используется доступ к основной памяти. Обычно, один транзистор используется в качестве элемента запоминающего устройства, N*M элементов запоминающего устройства формируют матрицу запоминающего устройства, и несколько матриц запоминающего устройства составляют банк (Bank). Каждый банк имеет буфер строк (Row-Buffer); когда к данным нужно получить доступ, данные в целевой строке могут быть доступны только для чтения после того, как данные перемещены в буфер строк. Современная система DRAM обычно использует множество банков, и соответствующие запросы доступа к памяти обрабатываются независимо одновременно. Однако, если два запроса доступа к памяти, которые исходят от различных процессов или потоков, получают доступ к различным строкам того же самого банка DRAM, то может генерироваться конфликт (или называют конфликтом буфера строк) по отношению к банку DRAM, и задержка доступа к памяти увеличивается. Кэш (Cache) используется для уменьшения несоответствия между вычислительным блоком и основной памятью. Поскольку кэш находится ближе к вычислительному блоку, чем основная память, кэш более легко влияет на производительность вычислений. Существующие процессоры в основном используют структуру совместного использования кэша последнего уровня (Last Level Cache, LLC) множеством ядер. Однако за LLC также сильно конкурируют множество параллельных программ или потоков. Если не используется правильная политика управления, то это очень легко приводит к серьезному ухудшению производительности.
В предшествующем уровне техники LLC или банк DRAM разделяется с помощью использования подгонки страниц (Page-Coloring). Что касается основанного на подгонке страниц разделения LLC, ресурс кэша разделяется на несколько независимых частей методом выполнения подгонки страниц по отношению к индексным битам набора кэша (Cache Set) в физическом адресе, и эти части назначаются различным потокам отдельно. Поэтому исчезает конкуренция между потоками из-за совместного использования кэша. Подобно разделению LLC, индексные биты банка DRAM могут также отражаться в физическом адресе, и банк DRAM может также разделяться на несколько независимых групп с помощью выполнения подгонки согласно этим адресным битам; поэтому исчезает конкуренция между программами в банке DRAM. Для некоторых рабочих наборов может достигаться относительно хороший эффект улучшения производительности.
Однако когда обычная технология подгонки страниц используется для разделения ресурсов на одном уровне, это приводит к негативному воздействию на использование ресурса на другом уровне. Например, деятельность, относящаяся к разделению LLC, имеет ограничение по отношению к улучшению производительности ресурса банка DRAM; точно так же деятельность, относящаяся к разделению банка DRAM, также влияет на производительность ресурса LLC. Кроме того, из-за того, что функционирование современной компьютерной системы требует различных рабочих наборов, существующий основанный на подгонке страниц механизм разделения ресурсов на некотором уровне трудно соотносить с особенностями других рабочих наборов; в результате оптимальный эффект разделения не может достигаться, и полное улучшение производительности компьютера ограничено.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Варианты осуществления настоящего изобретения обеспечивают способ и устройство оптимизации ресурса памяти, обеспечивают совместную политику разделения между LLC и банком DRAM, причем политика объединяется с особенностью рабочего набора, и могут решить проблему, состоящую в том, что процессы или потоки взаимно влияют друг на друга, когда совместно используют ресурсы памяти, так что полная производительность компьютера улучшается.
Для достижения вышеуказанных целей следующие технические решения используются в варианте осуществления настоящего изобретения:
Согласно первому аспекту обеспечивается способ оптимизации ресурса памяти, причем упомянутый способ включает в себя этапы, на которых:
приобретают данные о производительности каждой программы в рабочем наборе и категоризируют каждую программу с помощью сравнения данных о производительности каждой программы и частоты доступа к памяти каждой программы, полученной посредством сбора статистики, с предварительно установленным пороговым значением, причем данные о производительности каждой программы являются изменением, которое генерируется, когда предварительно установленный индикатор производительности каждой программы изменяется в зависимости от емкости распределенного ресурса кэша последнего уровня LLC;
выбирают с учетом категоризации каждой программы в рабочем наборе и предварительно установленной политики принятия решений основанную на подгонке страниц политику разделения, соответствующую рабочему набору, причем основанная на подгонке страниц политика разделения включает в себя основанную на подгонке страниц совместную политику разделения для выполнения основанного на подгонке страниц разделения и по отношению к LLC, и по отношению к банку динамической оперативной памяти, банку DRAM; и
записывают основанную на подгонке страниц политику разделения, соответствующую рабочему набору, в ядро операционной системы, причем ядро операционной системы выполняет соответствующую обработку основанного на подгонке страниц разделения.
Со ссылкой на первый аспект, в первом методе воплощения приобретение данных о производительности каждой программы в рабочем наборе включает в себя:
разделение ресурса LLC на N частей с помощью использования технологии подгонки страниц, беря 1/N от максимальной емкости ресурса LLC в качестве одного уровня, распределение вначале максимальной емкости ресурса LLC каждой программе и уменьшение емкости ресурса LLC, распределенного каждой программе, на один уровень при каждой корректировке до тех пор, пока емкость не уменьшиться до 1/N от максимальной емкости ресурса LLC; и
контроль изменения, которое генерируется, когда предварительно установленный индикатор производительности каждой программы изменяется в зависимости от емкости распределенного ресурса LLC в процессе корректировки, и использование упомянутого изменения в качестве данных о производительности каждой программы, причем предварительно установленный индикатор производительности является коэффициентом ускорения каждой программы.
Со ссылкой на первый аспект или первый возможный метод воплощения первого аспекта, во втором возможном методе воплощения категоризация каждой программы с помощью сравнения данных о производительности каждой программы и частоты доступа к памяти каждой программы, полученной посредством сбора статистики, с предварительно установленным пороговым значением, включает в себя:
подсчет количества раз, когда каждая программа обращается к основной памяти на предварительно установленной стадии запущенного процесса, для получения частоты доступа к памяти каждой программы;
сравнение данных о производительности каждой программы и частоты доступа к памяти каждой программы, полученной посредством сбора статистики, с предварительно установленным пороговым значением, причем предварительно установленное пороговое значение включает в себя первое пороговое значение, второе пороговое значение и третье пороговое значение, первое пороговое значение и второе пороговое значение являются пороговыми значениями данных о производительности, а третье пороговое значение является пороговым значением частоты доступа к памяти; и
если данные о производительности программы больше, чем первое пороговое значение, то категоризируют программу как имеющую тип «с высокими требованиями»;
если данные о производительности программы меньше, чем первое пороговое значение, и больше, чем второе пороговое значение, то категоризируют программу как имеющую тип «со средними требованиями»; или
если данные о производительности программы меньше, чем второе пороговое значение, и частота доступа к памяти больше, чем третье пороговое значение, то категоризируют программу как имеющую тип «с низкими требованиями и интенсивный».
Со ссылкой на первый аспект, в третьем возможном методе воплощения предварительно установленная политика принятия решений является деревом принятия решений о политике разделения в ядре операционной системы, и данное дерево принятия решений о политике разделения воплощается в ядре операционной системы в форме алгоритма; и выбор с учетом категоризации каждой программы в рабочем наборе и предварительно установленной политики принятия решений основанной на подгонке страниц политики разделения, соответствующей рабочему набору, включает в себя:
ввод категоризации каждой программы в рабочем наборе в ядро операционной системы и поиск дерева принятия решений о политике разделения в ядре операционной системы для соответствующего узла с учетом категории каждой программы в рабочем наборе, для определения основанной на подгонке страниц политики разделения, соответствующей рабочему набору.
Со ссылкой на третий возможный метод воплощения первого аспекта, в четвертом возможном методе воплощения основанная на подгонке страниц политика разделения включает в себя основанную на подгонке страниц совместную политику разделения и основанную на подгонке страниц несовместную политику разделения;
основанная на подгонке страниц совместная политика разделения является политикой разделения, использующей перекрывающиеся индексные адресные биты O-биты в качестве индексных битов основанного на подгонке страниц разделения, и O-биты являются перекрывающимися адресными битами индексных битов LLC и индексных битов банка DRAM в физическом страничном кадре, и используются для индексирования основанного на подгонке страниц разделения и для LLC, и для банка DRAM; и
основанная на подгонке страниц совместная политика разделения включает в себя:
совместную политику разделения многоуровневой памяти A-MMCP категории A, в которой O-биты используются в качестве индексных битов разделения, и LLC и банк DRAM разделяются на одинаковое количество равных частей;
совместную политику разделения многоуровневой памяти B-MMCP категории B, в которой O-биты и индексный бит банка DRAM используются в качестве индексных битов разделения, LLC и банк DRAM разделяются на различные количества равных частей, и количество равных частей, на которое разделяется банк DRAM, больше, чем количество равных частей, на которое разделяется LLC; и
совместную политику разделения многоуровневой памяти C-MMCP категории C, в которой O-биты и индексный бит LLC используются в качестве индексных битов разделения, LLC и банк DRAM разделяются на различные количества равных частей, и количество равных частей, на которое разделяется банк DRAM, меньше, чем количество равных частей, на которое разделяется LLC; и
основанная на подгонке страниц несовместная политика разделения является политикой разделения, в которой O-биты не используются, и включает в себя:
политику «только кэш», в которой основанное на подгонке разделение выполняется по отношению к LLC с помощью использования индексного бита LLC, и основанное на подгонке разделение не выполняется по отношению к банку DRAM; и
политику «только банк», в которой основанное на подгонке разделение выполняется по отношению к банку DRAM с помощью использования индексного бита банка DRAM, и основанное на подгонке разделение не выполняется по отношению к LLC.
Со ссылкой на третий возможный метод воплощения первого аспекта или четвертый возможный метод воплощения первого аспекта, в пятом возможном методе воплощения поиск дерева принятия решений о политике разделения в ядре операционной системы для соответствующего узла с учетом категории каждой программы в рабочем наборе для определения основанной на подгонке страниц политики разделения, соответствующей рабочему набору, включает в себя:
если каждая категория, которой принадлежит каждая программа в рабочем наборе, имеет тип «с высокими требованиями», то выбирают политику «только банк»;
если есть тип «с низкими требованиями и интенсивный» в категории, которой принадлежит каждая программа в рабочем наборе, то дополнительно определяют количество программ в рабочем наборе; и если количество программ меньше или равно N, то выбирают A-MMCP; иначе выбирают C-MMCP, где N - количество ядер процессора; или
если есть тип «со средними требованиями» и нет типа «с низкими требованиями и интенсивного» в категории, которой принадлежит каждая программа в рабочем наборе, то дополнительно определяют количество программ в рабочем наборе; и если количество программ меньше или равно N, то выбирают A-MMCP; иначе выбирают B-MMCP, где N - количество ядер процессора.
Согласно второму аспекту обеспечивается устройство оптимизации ресурса памяти, причем данное устройство включает в себя:
входной блок, сконфигурированный для приобретения данных о производительности каждой программы в рабочем наборе и категоризации каждой программы с помощью сравнения данных о производительности каждой программы и частоты доступа к памяти каждой программы, полученной посредством сбора статистики, с предварительно установленным пороговым значением, причем данные о производительности каждой программы являются изменением, которое генерируется, когда предварительно установленный индикатор производительности каждой программы изменяется в зависимости от емкости распределенного ресурса кэша последнего уровня LLC;
блок принятия решений, сконфигурированный для выбора с учетом категоризации каждой программы в рабочем наборе и предварительно установленной политики принятия решений основанной на подгонке страниц политики разделения, соответствующей рабочему набору, причем основанная на подгонке страниц политика разделения включает в себя основанную на подгонке страниц совместную политику разделения для выполнения основанного на подгонке страниц разделения и по отношению к LLC, и по отношению к банку динамической оперативной памяти, банку DRAM; и
блок разделения, сконфигурированный для записи основанной на подгонке страниц политики разделения, соответствующей рабочему набору, в ядро операционной системы, причем ядро операционной системы выполняет соответствующую обработку основанного на подгонке страниц разделения.
Со ссылкой на второй аспект, в первом методе воплощения входной блок включает в себя блок сбора данных, причем блок сбора данных конкретно сконфигурирован для:
разделения ресурса LLC на N частей с помощью использования технологии подгонки страниц, беря 1/N от максимальной емкости ресурса LLC в качестве одного уровня, распределения вначале максимальной емкости ресурса LLC каждой программе и уменьшения емкости ресурса LLC, распределенного каждой программе, на один уровень при каждой корректировке до тех пор, пока емкость не уменьшится до 1/N от максимальной емкости ресурса LLC; и
контроля изменения, которое генерируется, когда предварительно установленный индикатор производительности каждой программы изменяется в зависимости от емкости распределенного ресурса LLC в процессе корректировки, и использования упомянутого изменения в качестве данных о производительности каждой программы, причем предварительно установленный индикатор производительности является коэффициентом ускорения каждой программы.
Со ссылкой на второй аспект или первый возможный метод воплощения второго аспекта, во втором возможном методе воплощения входной блок дополнительно включает в себя блок категоризации, причем блок категоризации конкретно сконфигурирован для:
подсчета количество раз, когда каждая программа обращается к основной памяти на предварительно установленной стадии запущенного процесса, для получения частоты доступа к памяти каждой программы;
сравнения данных о производительности каждой программы и частоты доступа к памяти каждой программы, полученной посредством сбора статистики, с предварительно установленным пороговым значением, причем предварительно установленное пороговое значение включает в себя первое пороговое значение, второе пороговое значение и третье пороговое значение, первое пороговое значение и второе пороговое значение являются пороговыми значениями данных о производительности, а третье пороговое значение является пороговым значением частоты доступа к памяти; и
если данные о производительности программы больше, чем первое пороговое значение, то категоризируют программу как имеющую тип «с высокими требованиями»;
если данные о производительности программы меньше, чем первое пороговое значение, и больше, чем второе пороговое значение, то категоризируют программу как имеющую тип «со средними требованиями»; или
если данные о производительности программы меньше, чем второе пороговое значение, и частота доступа к памяти больше, чем третье пороговое значение, то категоризируют программу как имеющую тип «с низкими требованиями и интенсивный».
Со ссылкой на второй аспект, в третьем возможном методе воплощения предварительно установленная политика принятия решений является деревом принятия решений о политике разделения в ядре операционной системы, и дерево принятия решений о политике разделения воплощается в ядре операционной системы в форме алгоритма, и блок принятия решений конкретно сконфигурирован для:
ввода категоризации каждой программы в рабочем наборе в ядро операционной системы и поиска дерева принятия решений о политике разделения в ядре операционной системы для соответствующего узла с учетом категории каждой программы в рабочем наборе для определения основанной на подгонке страниц политики разделения, соответствующей рабочему набору.
Со ссылкой на третий возможный метод воплощения второго аспекта, в четвертом возможном методе воплощения основанная на подгонке страниц политика разделения включает в себя основанную на подгонке страниц совместную политику разделения и основанную на подгонке страниц несовместную политику разделения;
основанная на подгонке страниц совместная политикой разделения является политикой разделения, использующей перекрывающиеся индексные адресные биты O-биты в качестве индексных битов основанного на подгонке страниц разделения, и O-биты являются перекрывающимися адресными битами индексных битов LLC и индексных битов банка DRAM в физическом страничном кадре, и используются для индексирования основанного на подгонке страниц разделения и для LLC, и для банка DRAM; и
основанная на подгонке страниц совместная политика разделения включает в себя:
совместную политику разделения многоуровневой памяти A-MMCP категории A, в которой O-биты используются в качестве индексных битов разделения, и LLC и банк DRAM разделяются на одинаковое количество равных частей;
совместную политику разделения многоуровневой памяти B-MMCP категории B, в которой O-биты и индексный бит банка DRAM используются в качестве индексных битов разделения, LLC и банк DRAM разделяются на различные количества равных частей, и количество равных частей, на которые разделяется банк DRAM, больше, чем количество равных частей, на которые разделяется LLC; и
совместную политику разделения многоуровневой памяти C-MMCP категории C, в которой O-биты и индексный бит LLC используются в качестве индексных битов разделения, LLC и банк DRAM разделяются на различные количества равных частей, и количество равных частей, на которые разделяется банк DRAM, меньше, чем количество равных частей, на которые разделяется LLC; и
основанная на подгонке страниц несовместная политика разделения является политикой разделения, в которой O-биты не используются, и включает в себя:
политику «только кэш», в которой основанное на подгонке разделение выполняется по отношению к LLC с помощью использования индексного бита LLC, и основанное на подгонке разделение не выполняется по отношению к банку DRAM; и
политику «только банк», в которой основанное на подгонке разделение выполняется по отношению к банку DRAM с помощью использования индексного бита банка DRAM, и основанное на подгонке разделение не выполняется по отношению к LLC.
Со ссылкой на третий возможный метод воплощения второго аспекта или на четвертый возможный метод воплощения второго аспекта, в пятом возможном методе воплощения блок принятия решений дополнительно конкретно сконфигурирован для:
если каждая категория, которой принадлежит каждая программа в рабочем наборе, имеет тип «с высокими требованиями», то выбирают политику «только банк»;
если есть тип «с низким требованием и интенсивный» в категории, которой принадлежит каждая программа в рабочем наборе, то дополнительно определяют количество программ в рабочем наборе; и если количество программ меньше или равно N, то выбирают A-MMCP; иначе выбирают C-MMCP, где N - количество ядер процессора; или
если есть тип «со средними требованиями» и нет типа «с низкими требованиями и интенсивного» в категории, которой принадлежит каждая программа в рабочем наборе, то дополнительно определяют количество программ в рабочем наборе; и если количество программ меньше или равно N, то выбирают A-MMCP; иначе выбирают B-MMCP, где N - количество ядер процессора.
Согласно способу и устройству оптимизации ресурса памяти, обеспеченному в вариантах осуществления настоящего изобретения, ресурс LLC разделяется с помощью использования технологии подгонки страниц, приобретаются данные о производительности каждой программы в рабочем наборе, категория каждой программы получается с учетом частоты доступа к памяти, основанная на подгонке страниц политика разделения, соответствующая рабочему набору, выбирается согласно категории каждой программы, и основанная на подгонке страниц политика разделения записывается в ядро операционной системы для завершения соответствующей обработки основанного на подгонке страниц разделения. Таким образом совместная политика разделения между LLC и банком DRAM воплощается с учетом особенности рабочего набора, и взаимное влияние процессов или потоков по отношению к ресурсу памяти могут уменьшаться и даже устраняться, таким образом улучшая полную производительность компьютера.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Для более ясного описания технических решений в вариантах осуществления настоящего изобретения или в предшествующем уровне техники, последующее кратко представляет сопроводительные чертежи, требуемые для описания вариантов осуществления или предшествующего уровня техники. Очевидно, что сопроводительные чертежи в последующем описании показывают просто некоторые варианты осуществления настоящего изобретения, и специалист может тем не менее извлекать другие чертежи из этих сопроводительных чертежей без творческих усилий.
Фиг. 1 - схематическая последовательность операций способа оптимизации ресурса памяти согласно варианту осуществления настоящего изобретения;
Фиг. 2 - схематическая последовательность операций другого способа оптимизации ресурса памяти согласно варианту осуществления настоящего изобретения;
Фиг. 3 - схематическая диаграмма влияния категоризации программы согласно варианту осуществления настоящего изобретения;
Фиг. 4 - схематическая структурная схема 1 устройства оптимизации ресурса памяти согласно варианту осуществления настоящего изобретения;
Фиг. 5 - схематическая структурная схема 2 устройства оптимизации ресурса памяти согласно варианту осуществления настоящего изобретения; и
Фиг. 6 - схематическая структурная схема 3 устройства оптимизации ресурса памяти согласно варианту осуществления настоящего изобретения.
ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ
Последующее ясно и полностью описывает технические решения в вариантах осуществления настоящего изобретения со ссылкой на сопроводительные чертежи в вариантах осуществления настоящего изобретения. Очевидно, что описанные варианты осуществления являются просто некоторыми, но не всеми вариантами осуществления настоящего изобретения. Все другие варианты осуществления, полученные специалистами, основываясь на вариантах осуществления настоящего изобретения без творческих усилий, должны находиться в пределах объема правовой охраны настоящего изобретения.
Вариант осуществления настоящего изобретения обеспечивает способ оптимизации ресурса памяти. Как показано на фиг. 1, способ включает в себя этапы, на которых:
S101: приобретают данные о производительности каждой программы в рабочем наборе и категоризируют каждую программу с помощью сравнения данных о производительности каждой программы и частоты доступа к памяти каждой программы, полученной посредством сбора статистики, с предварительно установленным пороговым значением, причем данные о производительности каждой программы являются изменением, которое генерируется, когда предварительно установленный индикатор производительности каждой программы изменяется в зависимости от емкости распределенного ресурса кэша последнего уровня LLC.
S102: выбирают с учетом категоризации каждой программы в рабочем наборе и предварительно установленной политики принятия решений основанную на подгонке страниц политику разделения, соответствующую рабочему набору, причем основанная на подгонке страниц политика разделения включает в себя основанную на подгонке страниц совместную политику разделения для выполнения основанного на подгонке страниц разделения и по отношению к LLC, и по отношению к банку динамической оперативной памяти, банку DRAM.
S103: записывают основанную на подгонке страниц политику разделения, соответствующую рабочему набору, в ядро операционной системы, причем ядро операционной системы выполняет соответствующую обработку основанного на подгонке страниц разделения.
Согласно способу оптимизации ресурса памяти, обеспеченному в этом варианте осуществления настоящего изобретения, приобретаются данные о производительности каждой программы в рабочем наборе, категория каждой программы получается с учетом частоты доступа к памяти, основанная на подгонке страниц политика разделения рабочего набора выбирается согласно категории каждой программы, и основанная на подгонке страниц политика разделения записывается в ядро операционной системы для завершения соответствующей обработки основанного на подгонке страниц разделения. Таким образом совместная политика разделения между LLC и банком DRAM воплощается с учетом особенности рабочего набора, и взаимное влияние процессов или потоков по отношению к ресурсу памяти может уменьшаться и даже устраняться, таким образом улучшая полную производительность компьютера.
Для предоставления возможности специалистам более ясно понять технические решения, обеспеченные с помощью вариантов осуществления настоящего изобретения, последующее подробно описывает другой способ оптимизации ресурса памяти, обеспеченный с помощью варианта осуществления настоящего изобретения с помощью использования конкретного примера. Как показано на фиг. 2, способ включает в себя этапы, на которых:
S201: приобретают данные о производительности каждой программы в рабочем наборе.
Более конкретно, ресурс LLC разделяется с помощью использования технологии подгонки страниц, ресурс LLC разделяется на N частей, и 1/N от максимальной емкости ресурса LLC берется в качестве одного уровня. Максимальная емкость ресурса LLC вначале распределяется каждой программе, и емкость ресурса LLC, распределенного каждой программе, уменьшается на один уровень при каждой корректировке до тех пор, пока емкость ресурса LLC, распределенного каждой программе, не уменьшится до 1/N от максимальной емкости ресурса LLC; контролируется изменение, которое генерируется, когда предварительно установленный индикатор производительности каждой программы изменяется в зависимости от емкости распределенного ресурса LLC в процессе корректировки, и данное изменение используется в качестве данных о производительности каждой программы.
Для примера, в четырехъядерном процессоре N может быть 8, 1/8 от максимальной емкости ресурса LLC берется в качестве одного уровня, корректируется емкость ресурса LLC, распределенного каждой программе в рабочем наборе, и емкость ресурса LLC, распределенного каждой программе в рабочем наборе, уменьшается на один уровень при каждой корректировке до тех пор, пока емкость ресурса LLC, распределенного каждой программе, не уменьшится до 1/8 от максимальной емкости ресурса LLC; контролируется изменение, которое генерируется, когда предварительно установленный индикатор производительности каждой программы изменяется в зависимости от емкости распределенного ресурса LLC в вышеуказанном процессе корректировки.
Предварительно установленный индикатор производительности каждой программы может быть нормализованным коэффициентом ускорения, получается изменение, которое генерируется, когда нормализованный коэффициент ускорения каждой программы изменяется в зависимости от емкости распределенного ресурса LLC во всем процессе корректировки, и данное изменение используется в качестве данных о производительности каждой программы.
S202: определяют категорию, которой принадлежит каждая программа, с учетом частоты доступа к памяти каждой программы, полученной посредством сбора статистики, в рабочем наборе.
Более конкретно, аппаратный счетчик производительности используется для подсчета количества раз, когда каждая программа обращается к основной памяти на предварительно установленной стадии или в период времени запущенного процесса, для получения частоты доступа к памяти каждой программы.
Затем категория, которой принадлежит каждая программа, определяется с учетом данных о производительности каждой программы и частоты доступа к памяти каждой программы и согласно предварительно установленному пороговому значению.
Предварительно установленное пороговое значение включает в себя первое пороговое значение, второе пороговое значение и третье пороговое значение, причем первое пороговое значение и второе пороговое значение являются пороговыми значениями данных о производительности, а третье пороговое значение является пороговым значением частоты доступа к памяти.
Для примера, данные о производительности являются изменением, которое генерируется, когда нормализованный коэффициент ускорения каждой программы изменяется в зависимости от емкости ресурса LLC, распределенного каждой программе. В процессе, в котором емкость LLC, распределенного каждой программе, корректируется и уменьшается от максимальной емкости LLC до 1/N от максимальной емкости LLC, беря четырехядерный компьютер в качестве примера, где N равно 8, как показано на фиг. 3, получается кривая, в которой нормализованный коэффициент ускорения каждой программы изменяется в зависимости от емкости ресурса LLC, распределенного каждой программе. Поэтому может устанавливаться, что основной способ категоризации является следующим:
если нормализованный коэффициент ускорения программы больше, чем первое пороговое значение, то можно иметь в виду, что ухудшение производительности такой программы является очень значительным, когда емкость ресурса LLC уменьшается, то есть на производительность такой программы очень сильно влияет емкость распределенного ресурса LLC, и такая программа категоризируется, как имеющая тип 031 «с высокими требованиями»;
если нормализованный коэффициент ускорения программы меньше, чем первое пороговое значение, и больше, чем второе пороговое значение, то можно иметь в виду, что ухудшение производительности такой программы является умеренным, когда емкость ресурса LLC уменьшается, то есть на производительность такой программы умеренно влияет емкость распределенного ресурса LLC, и такая программа категоризируется, как имеющая тип 032 «со средними требованиями»; или
если нормализованный коэффициент ускорения программы меньше, чем второе пороговое значение, и частота доступа к памяти больше, чем третье пороговое значение, то можно иметь в виду, что диапазон изменения производительности такой программы является очень небольшим, когда емкость ресурса LLC уменьшается, и что частота доступа к памяти программы является высокой, то есть на производительность такой программы относительно немного влияет емкость распределенного ресурса LLC, и программа имеет тип 033 «с низкими требованиями»; однако, из-за того, что на производительность такой программы очень сильно влияет емкость основной памяти, программа имеет тип с интенсивным доступом к памяти; поэтому такая программа категоризируется, как имеющая тип «с низкими требованиями и интенсивный».
Для примера, вышеуказанный тип 031 «с высокими требованиями» может дополнительно конкретно включать в себя заполняющие кэш последнего уровня (LLC Fitting, LLCF) и дружественные к кэшу последнего уровня (LLC Friendly, LLCFR); вышеуказанный тип 032 «со средними требованиями» может конкретно включать в себя меняющийся кэш последнего уровня (LLC Swing, LLCS); вышеуказанный тип 033 «с низкими требованиями» может конкретно включать в себя: заполняющие основной кэш (Core Cache Fitting, CCF) и переполняющие LLC (LLC Thrashing, LLCT).
S203: выбирают основанную на подгонке страниц политику разделения, соответствующую рабочему набору, согласно категории, которой принадлежит каждая программа в рабочем наборе.
Более конкретно, категория, которой принадлежит каждая программа в рабочем наборе, записывается в ядро операционной системы, и затем основанная на подгонке страниц политика разделения, соответствующая рабочему набору, выбирается согласно предварительно установленной политике принятия решений.
Категория, которой принадлежит каждая программа в рабочем наборе, может записываться в ядро операционной системы с помощью использования механизма /proc. Предварительно установленная политика принятия решений может быть деревом принятия решений о политике разделения в ядре операционной системы, и дерево принятия решений о политике разделения воплощается в ядре операционной системы в форме алгоритма.
Более конкретно, категоризация каждой программы в рабочем наборе записывается в ядро операционной системы, дерево принятия решений о политике разделения в ядре операционной системы ищется для соответствующего узла с учетом категории каждой программы в рабочем наборе для определения основанной на подгонке страниц политики разделения, соответствующей рабочему набору. Основанная на подгонке страниц политика разделения включает в себя основанную на подгонке страниц совместную политику разделения и основанную на подгонке страниц несовместную политику разделения.
Основанная на подгонке страниц совместная политика разделения является политикой разделения, использующей перекрывающиеся индексные адресные биты O-биты в качестве основанных на подгонке страниц индексных битов разделения, и O-биты являются перекрывающимися адресными битами индексных битов LLC и индексных битов банка DRAM в физическом страничном кадре, и используются для индексирования основанного на подгонке страниц разделения и для LLC, и для банка DRAM.
Основанная на подгонке страниц совместная политика разделения включает в себя:
совместную политику разделения многоуровневой памяти A-MMCP категории A, в которой O-биты используются в качестве индексных битов разделения, и LLC и банк DRAM ра