Способ и устройство оптимизации ресурса памяти



Способ и устройство оптимизации ресурса памяти
Способ и устройство оптимизации ресурса памяти
Способ и устройство оптимизации ресурса памяти
Способ и устройство оптимизации ресурса памяти
Способ и устройство оптимизации ресурса памяти

 


Владельцы патента RU 2631767:

ХУАВЭЙ ТЕКНОЛОДЖИЗ КО., ЛТД. (CN)

Изобретение относится к области использования ресурсов памяти. Техническим результатом является оптимизация использования ресурсов памяти. Способ оптимизации ресурса памяти содержит этапы, на которых: приобретают данные о производительности каждой программы в рабочем наборе; категоризируют каждую программу согласно данным о производительности каждой программы и частоте доступа к памяти каждой программы, полученной посредством сбора статистики, причем данные о производительности каждой программы являются изменением, которое генерируется, когда предварительно установленный индикатор производительности каждой программы изменяется в зависимости от емкости распределенного ресурса кэша последнего уровня 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 разделяются на одинаковое количество равных частей;

совместную политику разделения многоуровневой памяти 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.

Для примера, перекрывающиеся индексные адресные биты O-биты LLC и банка DRAM могут быть 14 и 15 битами в физическом страничном кадре, и четыре цвета, то есть 00, 01, 10 и 11, могут получаться посредством разделения с помощью использования двух индексных битов. Дополнительно, 16, 17 и 18 индексные биты LLC и 21 и 22 индексные биты банка DRAM также существуют в физическом страничном кадре.

В A-MMCP основанное на подгонке разделение выполняется только с помощью использования O-битов, то есть 14-го и 15-го битов, LLC может быть разделяться на 4 равные части, и банк DRAM может разделяться на 4 равные части.

В B-MMCP основанное на подгонке разделение выполняется с помощью использования O-битов и одного из индексных битов банка DRAM, то есть 14-го, 15-го и 21-го битов, LLC может разделяться на 4 равные части, и банк DRAM может разделяться на 8 равных частей.

В C-MMCP основанное на подгонке разделение выполняется с помощью использования O-битов и одного из индексных битов LLC, то есть 14-го, 15-го и 16-го битов, LLC может разделяться на 8 равных частей, и банк DRAM может разделяться на 4 равные части.

Более конкретно, то, что дерево принятия решений о политике разделения воплощается в ядре операционной системы в форме алгоритма, включает в себя:

если каждая категория, которой принадлежит каждая программа в рабочем наборе, имеет тип 031 «с высокими требованиями», то выбирается политика «только банк»;

если есть тип «с низкими требованиями и интенсивный» в категории, которой принадлежит каждая программа в рабочем наборе, то дополнительно определяют количество программ в рабочем наборе; и если количество программ меньше или равно N, то выбирают A-MMCP; иначе выбирают C-MMCP, где N - количество ядер процессора; или

если есть тип 032 «со средними требованиями» и нет типа «с низкими требованиями и интенсивного» в категории, которой принадлежит каждая программа в рабочем наборе, то дополнительно определяют количество программ в рабочем наборе; и если количество программ меньше или равно N, то выбирают A-MMCP, иначе выбирают B-MMCP, где N - количество ядер процессора.

S204: записывают основанную на подгонке страниц политику разделения, соответствующую рабочему набору, в ядро операционной системы, причем ядро операционной системы выполняет соответствующую обработку основанного на подгонке страниц разделения.

Более конкретно, выбранная основанная на подгонке страниц политика разделения может записываться в ядро операционной системы с помощью использования механизма /proc, и «метод близнецов» (Buddy System) в операционной системе корректирует механизм распределения памяти для завершения операции основанного на подгонке разделения.

Для примера, механизм управления и механизм поиска в «методе близнецов» могут завершать управление и поиск на странице, требуемой для подгонки; «метод близнецов» может корректировать механизм распределения памяти для предоставления возможности механизму распределения памяти переключаться между различными политиками разделения.

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

Вариант осуществления настоящего изобретения обеспечивает устройство 00 оптимизации ресурса памяти. Как показано на фиг. 4, данное устройство включает в себя:

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

блок 002 принятия решений, сконфигурированный для выбора с учетом категоризации каждой программы в рабочем наборе и предварительно установленной политики принятия решений основанной на подгонке страниц политики разделения, соответствующей рабочему набору, причем основанная на подгонке страниц политика разделения включает в себя основанную на подгонке страниц совместную политику разделения для выполнения основанного на подгонке страниц разделения и по отношению к LLC, и по отношению к банку динамической оперативной памяти, банку DRAM; и

блок 003 разделения, сконфигурированный для записи основанной на подгонке страниц политики разделения, соответствующей рабочему набору, в ядро операционной системы, причем ядро операционной системы выполняет соответствующую основанную на подгонке страниц обработку разделения.

Как показано на фиг. 5, входной блок 001 может включать в себя блок 0011 сбора данных и блок 0012 категоризации.

В некоторых случаях блок 0011 сбора данных сконфигурирован для разделения ресурса LLC на N частей с помощью использования технологии подгонки страниц, беря 1/N от максимальной емкости ресурса LLC в качестве одного уровня, распределения вначале максимальной емкости ресурса LLC каждой программе и уменьшения емкости ресурса LLC, распределенного каждой программе, на один уровень при каждой корректировке до тех пор, пока емкость не уменьшится до 1/N от максимальной емкости ресурса LLC; и

контроля изменения, которое генерируется, когда предварительно установленный индикатор производительности каждой программы изменяется в зависимости от емкости распределенного ресурса LLC в процессе корректировки, и использования упомянутого изменения в качестве данных о производительности каждой программы, причем предварительно установленный индикатор производительности является коэффициентом ускорения каждой программы.

В некоторых случаях блок 0012 категоризации сконфигурирован для подсчета количества раз, когда каждая программа обращается к основной памяти на предварительно установленной стадии запущенного процесса, для получения частоты доступа к памяти каждой программы;

сравнения данных о производительности каждой программы и частоты доступа к памяти каждой программы, полученной посредством сбора статистики, с предварительно установленным пороговым значением, причем предварительно установленное пороговое значение включает в себя первое пороговое значение, второе пороговое значение и третье пороговое значение, первое пороговое значение и второе пороговое значение являются пороговыми значениями данных о производительности, а третье пороговое значение является пороговым значением частоты доступа к памяти; и

если данные о производительности программы больше, чем первое пороговое значение, то категоризируют программу как имеющую тип «с высокими требованиями»;

если данные о производительности программы меньше, чем первое пороговое значение, и больше, чем второе пороговое значение, то категоризируют программу как имеющую тип «со средними требованиями»; или

если данные о производительности программы меньше, чем второе пороговое значение, и частота доступа к памяти больше, чем третье пороговое значение, то категоризируют программу как имеющую тип «с низкими требованиями и интенсивный».

В некоторых случаях предварительно установленная политика принятия решений является деревом принятия решений о политике разделения в ядре операционной системы, и дерево принятия решений о политике разделения воплощается в ядре операционной системы в форме алгоритма; блок 002 принятия решений конкретно сконфигурирован для:

записи категоризации каждой программы в рабочем наборе в ядро операционной системы и поиска дерева принятия решений о политике разделения в ядре операционной системы для соответствующего узла с учетом категории каждой программы в рабочем наборе для определения основанной на подгонке страниц политики разделения, соответствующей рабочему набору.

В некоторых случаях основанная на подгонке страниц политика разделения включает в себя основанную на подгонке страниц совместную политику разделения и основанную на подгонке страниц несовместную политику разделения, причем, конкретно:

основанная на подгонке страниц совместная политика разделения является политой разделения, использующей перекрывающиеся индексные адресные биты 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.

В некоторых случаях блок 002 принятия решений дополнительно конкретно сконфигурирован для:

если каждая категория, которой принадлежит каждая программа в рабочем наборе, имеет тип «с высокими требованиями», то выбирают политику «только банк»;

если есть тип «с низкими требованиями и интенсивный» в категории, которой принадлежит каждая программа в рабочем наборе, то дополнительно определяют количество программ в рабочем наборе; и если количество программ меньше или равно N, то выбирают A-MMCP; иначе выбирают C-MMCP, где N - количество ядер процессора; или

если есть тип «со средними требованиями» и нет типа «с низкими требованиями и интенсивного» в категории, которой принадлежит каждая программа в рабочем наборе, то дополнительно определяют количество программ в рабочем наборе; и если количество программ меньше или равно N, то выбирают A-MMCP; иначе выбирают B-MMCP, где N - количество ядер процессора.

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

Вариант осуществления настоящего изобретения дополнительно обеспечивает устройство 01 оптимизации ресурса памяти. Как показано на фиг. 6, устройство 01 оптимизации ресурса памяти включает в себя:

шину 011 и процессор 012, память 013 и интерфейс 014, соединенный с шиной 011, причем интерфейс 014 сконфигурирован для обеспечения связи с внешним устройством.

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

Процессор 012 выполняет команду и дополнительно сконфигурирован для выбора с учетом категоризации каждой программы в рабочем наборе и предварительно установленной политики принятия решений основанной на подгонке страниц политики разделения, соответствующей рабочему набору, причем основанная на подгонке страниц политика разделения включает в себя основанную на подгонке страниц совместную политику разделения для выполнения основанного на подгонке страниц разделение и по отношению к LLC, и по отношению к банку динамической оперативной памяти, банку DRAM.

Процессор 012 выполняет команду и дополнительно сконфигурирован для записи основанной на подгонке страниц политики разделения, соответствующей рабочему набору, в ядро операционной системы, причем ядро операционной системы выполняет соответствующую обработку основанного на подгонке страниц разделения.

В этом варианте осуществления настоящего изобретения в некоторых случаях процессор 012 выполняет команду и может конкретно конфигурироваться для: разделения ресурса LLC на N частей с помощью использования технологии подгонки страниц, беря 1/N от максимальной емкости ресурса LLC в качестве одного уровня, распределения вначале максимальной емкости ресурса LLC каждой программе и уменьшения емкости ресурса LLC, распределенного каждой программе, на один уровень при каждой корректировке до тех пор, пока емкость не уменьшится до 1/N от максимальной емкости ресурса LLC; и

контроля изменения, которое генерируется, когда предварительно установленный индикатор производительности каждой программы изменяется в зависимости от емкости распределенного ресурса LLC в процессе корректировки, и использования упомянутого изменения в качестве данных о производительности каждой программы, причем предварительно установленный индикатор производительности является коэффициентом ускорения каждой программы.

В этом варианте осуществления настоящего изобретения в некоторых случаях процессор 012 выполняет команду и может конкретно конфигурироваться для: подсчета количества раз, когда каждая программа обращается к основной памяти на предварительно установленной стадии запущенного процесса, для получения частоты доступа к памяти каждой программы;

сравнения данных о производительности каждой программы и частоты доступа к памяти каждой программы, полученной посредством сбора статистики, с предварительно установленным пороговым значением, причем предварительно установленное пороговое значение включает в себя первое пороговое значение, второе пороговое значение и третье пороговое значение, первое пороговое значение и второе пороговое значение являются пороговыми значениями данных о производительности, а третье пороговое значение является пороговым значением частоты доступа к памяти; и

если данные о производительности программы больше, чем первое пороговое значение, то категоризируют программу как имеющую тип «с высокими требованиями»;

если данные о производительности программы меньше, чем первое пороговое значение, и больше, чем второе пороговое значение, то категоризируют программу как имеющую тип «со средними требованиями»; или

если данные о производительности программы меньше, чем второе пороговое значение, и частота доступа к памяти больше, чем третье пороговое значение, то категоризируют программу как имеющую тип «с низкими требованиями и интенсивный».

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

записи категоризации каждой программы в рабочем наборе в ядро операционной системы и поиска дерева принятия решений о политике разделения в ядре операционной системы для соответствующего узла с учетом категории каждой программы в рабочем наборе для определения основанной на подгонке страниц политики разделения, соответствующей рабочему набору.

В этом варианте осуществления настоящего изобретения в некоторых случаях основанная на подгонке страниц политика разделения включает в себя основанную на подгонке страниц совместную политику разделения и основанную на подгонке страниц несовместную политику разделения, причем, конкретно:

основанная на подгонке страниц совместная политика разделения является политикой разделения, использующей перекрывающиеся индексные адресные биты 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.

В данном варианте осуществления настоящего изобретения в некоторых случаях процессор 012 выполняет команду и может конкретно конфигурироваться для:

если каждая категория, которой принадлежит каждая программа в рабочем наборе, имеет тип «с высокими требованиями», то выбирают политику «только банк»;

если есть тип «с низкими требованиями и интенсивный» в категории, которой принадлежит каждая программа в рабочем наборе, то дополнительно определяют количество программ в рабочем наборе; и если количество программ меньше или равно N, то выбирают A-MMCP; иначе выбирают C-MMCP, где N - количество ядер процессора; или

если есть тип «со средними требованиями» и нет типа «с низкими требованиями и интенсивного» в категории, которой принадлежит каждая программа в рабочем наборе, то дополнительно определяют количество программ в рабочем наборе; и если количество программ меньше или равно N, то выбирают A-MMCP; иначе выбирают B-MMCP, где N - количество ядер процессора.

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

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

Модули могут быть или могут не быть физически отдельными, и могут быть или могут не быть физическими блоками. Некоторые или все модули могут выбираться согласно фактическим требованиям для достижения целей решений вариантов осуществления.

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

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

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

1. Способ оптимизации ресурса памяти, причем упомянутый способ содержит этапы, на которых:

приобретают данные о производительности каждой программы в рабочем наборе;

категоризируют каждую программу согласно данным о производительности каждой программы и частоте доступа к памяти каждой программы, полученной посредством сбора статистики, причем данные о производительности каждой программы являются изменением, которое генерируется, когда предварительно установленный индикатор производительности каждой программы изменяется в зависимости от емкости распределенного ресурса кэша последнего уровня LLC;

выбирают с учетом категоризации каждой программы в рабочем наборе и предварительно установленной политики принятия решений основанную на подгонке страниц политику разделения, соответствующую рабочему набору, причем основанная на подгонке страниц политика разделения содержит основанную на подгонке страниц совместную политику разделения для выполнения основанного на подгонке страниц разделения и по отношению к LLC, и по отношению к банку динамической оперативной памяти, банку DRAM; и

записывают основанную на подгонке страниц политику разделения, соответствующую рабочему набору, в ядро операционной системы, причем ядро операционной системы выполняет соответствующую обработку основанного на подгонке страниц разделения.

2. Способ по п. 1, в котором приобретение данных о производительности каждой программы в рабочем наборе содержит этапы, на которых:

разделяют ресурс LLC на N частей, беря 1/N от максимальной емкости ресурса LLC в качестве одного уровня, распределяют вначале максимальную емкость ресурса LLC каждой программе и уменьшают емкость ресурса LLC, распределенного каждой программе, на один уровень при каждой корректировке до тех пор, пока емкость не уменьшится до 1/N от максимальной емкости ресурса LLC; и

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

3. Способ по п. 1, в котором основанная на подгонке страниц совместная политика разделения является политикой разделения, использующей перекрывающиеся индексные адресные биты 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.

4. Способ по п. 3, в котором категоризация каждой программы согласно данным о производительности каждой программы и частоте доступа к памяти каждой программы, полученной посредством сбора статистики, содержит этапы, на которых:

подсчитывают количества раз, когда каждая программа обращается к основной памяти на предварительно установленной стадии запущенного процесса, для получения частоты доступа к памяти каждой программы;

сравнивают данные о производительности каждой программы с предварительно установленным пороговым значением данных о производительности, причем пороговое значение данных о производительности содержит первое пороговое значение и второе пороговое значение, и первое пороговое значение больше, чем второе пороговое значение; и

если данные о производительности программы больше, чем первое пороговое значение, то категоризируют программу как имеющую тип «с высокими требованиями»;

если данные о производительности программы меньше, чем первое пороговое значение, и больше, чем второе пороговое значение, то категоризируют программу как имеющую тип «со средними требованиями»; или

если данные о производительности программы меньше, чем второе пороговое значение, и частота доступа к памяти программы больше, чем предварительно установленное пороговое значение частоты доступа к памяти, то категоризируют программу как имеющую тип «с низкими требованиями и интенсивный».

5. Способ по п. 4, в котором выбор с учетом категоризации каждой программы в рабочем наборе и предварительно установленной политики принятия решений основанной на подгонке страниц политики разделения, соответствующей рабочему набору, содержит:

если есть тип «с низкими требованиями и интенсивный» в категории, которой принадлежит каждая программа в рабочем наборе, то дополнительно определяют количество программ в рабочем наборе; и если количество программ меньше или равно N, то выбирают A-MMCP; иначе выбирают C-MMCP, причем N - количество ядер процессора; или

если есть тип «со средними требованиями» и нет типа «с низкими требованиями и интенсивного» в категории, которой принадлежит каждая программа в рабочем наборе, то дополнительно определяют количество программ в рабочем наборе; и если количество программ меньше или равно N, то выбирают A-MMCP; иначе выбирают B-MMCP, причем N - количество ядер процессора.

6. Способ по п. 3, в котором основанная на подгонке страниц политика разделения дополнительно содержит основанную на подгонке страниц несовместную политику разделения, основанная на подгонке страниц несовместная политика разделения является политикой разделения, в которой O-биты не используются, и упомянутая основанная на подгонке страниц несовместная политика разделения содержит:

политику «только кэш», в которой основанное на подгонке страниц разделение выполняется по отношению к LLC с помощью использования индексного бита LLC, и основанное на подгонке разделение не выполняется по отношению к банку DRAM; и

политику «только банк», в которой основанное на подгонке разделение выполняется по отношению к банку DRAM с помощью использования индексного бита банка DRAM, и основанное на подгонке разделение не выполняется по отношению к LLC; и

выбор, с учетом категоризации каждой программы в рабочем наборе и предварительно установленной политики принятия решений основанной на подгонке страниц политики разделения, соответствующей рабочему набору, дополнительно содержит:

если каждая категория, которой принадлежит каждая программа в рабочем наборе, является типом «с высокими требованиями», то выбирают политику «только банк».

7. Способ по п. 1, в котором предварительно установленная политика принятия решений является деревом принятия решений о политике разделения в ядре операционной системы, и дерево принятия решений о политике разделения воплощается в ядре операционной системы в форме алгоритма; и

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

вводят категоризации каждой программы в рабочем наборе в ядро операционной системы и ищут дерево принятия решений о политике разделения в ядре операционной системы для соответствующего узла с учетом категории каждой программы в рабочем наборе для определения основанной на подгонке страниц политики разделения, соответствующей рабочему набору.

8. Устройство оптимизации ресурса памяти, причем упомянутое устройство содержит:

блок сбора данных, сконфигурированный для приобретения данных о производительности каждой программы в рабочем наборе;

блок категоризации, сконфигурированный для категоризации каждой программы согласно данным о производительности каждой программы и частоте доступа к памяти каждой программы, полученной посредством сбора статистики, причем данные о производительности каждой программы являются изменением, которое генерируется, когда предварительно установленный индикатор производительности каждой программы изменяется в зависимости от емкости распределенного ресурса кэша последнего уровня LLC;

блок принятия решений, сконфигурированный для выбора с учетом категоризации каждой программы в рабочем наборе и предварительно установленной политики принятия решений основанной на подгонке страниц политики разделения, соответствующей рабочему набору, причем основанная на подгонке страниц политика разделения содержит основанную на подгонке страниц совместную политику разделения для выполнения основанного на подгонке страниц разделения и по отношению к LLC, и по отношению к банку динамической оперативной памяти, банку DRAM; и

блок разделения, сконфигурированный для записи основанной на подгонке страниц политики разделения, соответствующей рабочему набору, в ядро операционной системы, причем ядро операционной системы выполняет соответствующую обработку основанного на подгонке страниц разделения.

9. Устройство по п. 8, в котором блок сбора данных конкретно сконфигурирован для:

разделения ресурса LLC на N частей, беря 1/N от максимальной емкости ресурса LLC в качестве одного уровня, распределения вначале максимальной емкости ресурса LLC каждой программе и уменьшения емкости ресурса LLC, распределенного каждой программе, на один уровень при каждой корректировке до тех пор, пока емкость не уменьшится до 1/N от максимальной емкости ресурса LLC; и

контроля изменения, которое генерируется, когда предварительно установленный индикатор производительности каждой программы изменяется в зависимости от емкости распределенного ресурса LLC в процессе корректировки, и использования упомянутого изменения в качестве данных о производительности каждой программы, причем предварительно установленный индикатор производительности является коэффициентом ускорения каждой программы.

10. Устройство по п. 8, в котором основанная на подгонке страниц совместная политика разделения является политикой разделения, использующей перекрывающиеся индексные адресные биты 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.

11. Устройство по п. 10, в котором блок категоризации конкретно сконфигурирован для:

подсчета количества раз, когда каждая программа обращается к основной памяти на предварительно установленной стадии запущенного процесса, для получения частоты доступа к памяти каждой программы;

сравнения данных о производительности каждой программы с предварительно установленным пороговым значением данных о производительности, причем пороговое значение данных о производительности содержит первое пороговое значение и второе пороговое значение, и первое пороговое значение больше, чем второе пороговое значение; и

если данные о производительности программы больше, чем первое пороговое значение, то категоризируют программу как имеющую тип «с высокими требованиями»;

если данные о производительности программы меньше, чем первое пороговое значение, и больше, чем второе пороговое значение, то категоризируют программу как имеющую тип «со средними требованиями»; или

если данные о производительности программы меньше, чем второе пороговое значение, и частота доступа к памяти программы больше, чем предварительно установленное пороговое значение частоты доступа к памяти, то категоризируют программу как имеющую тип «с низкими требованиями и интенсивный».

12. Устройство по п. 11, в котором блок принятия решений конкретно сконфигурирован для:

если есть тип «с низкими требованиями и интенсивный» в категории, которой принадлежит каждая программа в рабочем наборе, то дополнительно определяют количество программ в рабочем наборе; и если количество программ меньше или равно N, то выбирают A-MMCP; иначе выбирают C-MMCP, причем N - количество ядер процессора; или

если есть тип «со средними требованиями» и нет типа «с низкими требованиями и интенсивного» в категории, которой принадлежит каждая программа в рабочем наборе, то дополнительно определяют количество программ в рабочем наборе; и если количество программ меньше или равно N, то выбирают A-MMCP; иначе выбирают B-MMCP, причем N - количество ядер процессора.

13. Устройство по п. 10, в котором основанная на подгонке страниц политика разделения дополнительно содержит основанную на подгонке страниц несовместную политику разделения, причем основанная на подгонке страниц несовместная политика разделения является политикой разделения, в которой O-биты не используются, и упомянутая основанная на подгонке страниц несовместная политика разделения содержит:

политику «только кэш», в которой основанное на подгонке разделение выполняется по отношению к LLC с помощью использования индексного бита LLC, и основанное на подгонке разделение не выполняется по отношению к банку DRAM; и

политику «только банк», в которой основанное на подгонке разделение выполняется по отношению к банку DRAM с помощью использования индексного бита банка DRAM, и основанное на подгонке разделение не выполняется по отношению к LLC; и

блок принятия решений дополнительно сконфигурирован для: если каждая категория, которой принадлежит каждая программа в рабочем наборе, имеет тип «с высокими требованиями», то выбирают политику «только банк».

14. Устройство по п. 8, в котором предварительно установленная политика принятия решений является деревом принятия решений о политике разделения в ядре операционной системы, и дерево принятия решений о политике разделении воплощается в ядре операционной системы в форме алгоритма; и

блок принятия решений конкретно сконфигурирован для:

ввода категоризации каждой программы в рабочем наборе в ядро операционной системы и поиска дерева принятия решений о политике разделения в ядре операционной системы для соответствующего узла с учетом категории каждой программы в рабочем наборе для определения основанной на подгонке страниц политики разделения, соответствующей рабочему набору.

15. Считываемый компьютером носитель записи, на котором записывается программа, причем упомянутая программа, когда она выполняется, предоставляет возможность компьютеру выполнять способ согласно любому из пп. 1-7.



 

Похожие патенты:

Изобретение относится к защите от несанкционированного доступа к информации. Технический результат - обеспечение одновременной обработки информации с разными уровнями конфиденциальности в двух соответствующих ЭВМ с использованием одного набора устройств для взаимодействия с пользователем и для доступа к разделяемым внешним носителям.

Изобретение относится к области компьютерной техники, в частности к дублированию хранилища данных. Технический результат заключается в обеспечении корректности и исключении ошибок при сохранении дублированных данных.

Группа изобретений относится к области электроники и может быть использована для управления временем обращения к памяти. Техническим результатом является уменьшение времени обращения к памяти.

Изобретение относится к средству подкачки страниц. Технический результат заключается в повышении скорости загрузки страниц.

Изобретение относится к средствам динамического выбора уровня хранилища из множества уровней хранилища с целью сохранения объекта. Технический результат заключается в обеспечении наиболее оптимального места (уровня) сохранения объекта.

Изобретение относится к области информатики, а более конкретно - к системе и способу предоставления информации и услуг пользователям. Технический результат заключается в обеспечении изоляции вычислительных процессов.

Изобретение предназначено для выполнения запросов процессов к файловой системе. Технический результат – оптимизация работы файловой системы с запросами процессов.

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

Изобретение относится к вычислительной технике. Технический результат заключается в оптимизации модификации разрешений на доступ к защищенному анклаву памяти.

Изобретение относится к вычислительной технике. Технический результат заключается в оптимизации управления кэш-памятью.

Изобретение относится к вычислительной технике. Технический результат заключается в сглаживании «пиксельного перепрыгивания» по частям линейной памяти в момент считывания пиксельных данных. Способ сохранения в памяти пиксельных данных, связанных с графическим объектом, отображаемым на устройстве вывода электронного устройства, пиксельные данные предназначены для отрисовки графического объекта, в котором: получают доступ к первой части разметки виртуальной памяти для получения пиксельных данных, связанных с множеством пикселей графического объекта, хранящегося в первой части разметки виртуальной памяти; идентифицируют в первом ряду, окончания первого ряда и начала второго ряда таким образом, что окончание первого ряда включает в себя первый пиксель, а начало второго ряда включает в себя второй пиксель; преобразуют первый массив во второй массив, причем второй массив хранится во второй части разметки виртуальной памяти; получают запрос на создание дубликата по меньшей мере части графического объекта; идентифицируют соответствующие части второго массива, причем соответствующие части являются рядами, на которых расположены третий и четвертый пиксели; и изменяют идентифицированные соответствующие части для выполнения выбора подмножества из множества пикселей. 2 н. и 13 з.п. ф-лы, 7 ил.
Наверх