ВОПЛОЩЕНИЕ КАЧЕСТВА ОБСЛУЖИВАНИЯ РЕСУРСОВ ПЛАТФОРМЫ
QUALITY OF SERVICE IMPLEMENTATION FOR PLATFORM RESOURCES

Область техники, к которой относится изобретение
Изобретение относится к качеству обслуживания ресурсов платформы.
Уровень техники
По мере все большего распространения многоядерных многопоточных процессоров в компьютерной отрасли возникает все большая потребность обеспечения для операционной системы и приложений лучшего управления над ресурсами, доступными в платформе. По мере того как большее количество ядер и вычислительной мощности добавляют компьютерным платформам, остальными ресурсами платформы, которые совместно используются приложениями, работающими в этих ядрах, требуется хорошо управлять для формирования сбалансированной системы. В настоящее время уровень дифференцирования услуг компьютерной системы, предоставляемый для приложений, работающих в центральном процессоре, ограничивается ядром процессора, использующим регистр приоритета задачи (TPR, РПЗ). По мере того как программное приложение проходит через различные уровни приоритета задачи, этот регистр устанавливается программным приложением для того, чтобы помечать текущий уровень приоритета процессора. Эта информация используется для исключения прерывания процессора событиями более низкого приоритета.
Аппаратные средства процессора обеспечивают принудительное соблюдение приоритета внутри ядра и, по существу, представляют собой механизм для управления доступными вычислительными ресурсами. Но когда речь идет о ресурсах, находящихся за пределами ядра, в настоящее время в программных средствах отсутствует механизм для передачи требований уровня обслуживания потенциальным механизмам качества обслуживания (QoS, КаО) на уровне платформы. Такой недостаток возможности тонкого регулирования ресурсов платформы и процессора может обостряться по мере воплощения все большего количества технологий виртуализации и объедения пользователями компьютеров своих серверов путем запуска множества отдельных приложений в одном устройстве. Для решения этой задачи механизмы КаО, расположенные за пределами ядра процессора, разрабатывают как на уровне компонента, так и на уровне платформы для обеспечения способов лучшего управления доступными ресурсами. Но без соответствующих механизмов раскрытия этих возможностей для КаО и приложений полный потенциал КаО платформы может не быть реализован.
Краткое описание чертежей
Настоящее изобретение иллюстрируется в качестве примера и не ограничивается фигурами прилагаемых чертежей, на которых одинаковыми номерами ссылочных позиций обозначены одинаковые элементы.
На фиг.1 показана блок-схема компьютерной системы, которую можно использовать с вариантами воплощения настоящего изобретения;
На фиг.2 - один вариант воплощения уровня механизма КаО на уровне платформы в платформе, в которой используется существующий РПЗ, для установки уровней приоритета ресурса платформы;
На фиг.3 - подробная версия одного варианта воплощения механизма КаО уровня платформы в платформе, в которой используется РКП, для установки уровней приоритета ресурса платформы;
На фиг.4 - один вариант воплощения существующих РПЗ и РУ8, используемых механизмом КаО, на уровне платформы по фиг.2;
На фиг.5 - один вариант воплощения РУ8, используемого механизмом КаО на уровне платформы, в котором РКП воплощен в соответствии с фиг.3;
На фиг.6 - один вариант воплощения формата записи таблицы страницы (РТЕ, ЗТС) памяти, в котором используют доступные биты для процесса установления приоритета ресурса платформы;
На фиг.7 - блок-схема последовательности операций одного варианта воплощения процесса назначения ресурсов платформы компьютера на основе уровней приоритета КаО;
На фиг.8 - блок-схема последовательности операций варианта воплощения процесса для установки тегов для запросов памяти, требующих доступа к ресурсам платформы за пределами ядра процессора, со значениями уровня приоритета КаО;
На фиг.9 - блок-схема последовательности операций варианта воплощения процесса заполнения записей таблицы страницы памяти значениями уровня приоритета КаО ресурса платформы.
Подробное описание изобретения
Описаны варианты воплощения способа, системы и считываемого компьютером носителя записи для воплощения управления уровнем приоритета обслуживания для ресурсов платформы. В следующем описании представлены различные конкретные детали. Однако следует понимать, что варианты выполнения можно воплощать на практике без этих конкретных деталей. В других случаях известные элементы, описания и протоколы не были подробно раскрыты для того, чтобы более ясно представить настоящее изобретение.
На фиг.1 показана блок-схема компьютерной системы, которую можно использовать с вариантами воплощения настоящего изобретения. Компьютерная система содержит межсоединение 100 процессор-память, предназначенное для связи между различными агентами, с межсоединением 100, например процессоры, мосты, запоминающие устройства и т.д. Межсоединение 100 процессор-память включает в себя конкретные линии взаимного соединения, по которым передают арбитраж, адреса, данные и информацию управления (не показана). В одном варианте воплощения центральный процессор 102 может быть соединен с межсоединением 100 процессор-память. В другом варианте воплощения возможно соединение множества центральных процессоров с межсоединением процессор-память (множество процессоров не показаны на этом чертеже).
В одном варианте воплощения центральный процессор 102 имеет одиночное ядро 104. В другом варианте воплощения центральный процессор 102 имеет множество ядер (множество ядер не показаны на этом чертеже). Ядро 104 соединено с памятью 106 кэш, которая также располагается в центральном процессоре 102. Кроме того, центральный процессор 102 может включать в себя усовершенствованный программируемый контроллер 108 прерываний (APIC, УПКП). УПКП 108 имеет множество регистров управления (CR, РУ) и других регистров, специфичных для процессора. В одном варианте воплощения регистр приоритета задачи (РПЗ) представляет собой регистр, расположенный в пределах УПКП 108.
Межсоединение 100 процессор-память предоставляет для центрального процессора 102 и других устройств доступ к системной памяти 110. Контроллер системной памяти управляет доступом к системной памяти 110. В одном варианте воплощения контроллер системной памяти расположен в северном мосту 114 набора 112 микросхем, который соединен с межсоединением 100 процессор-память. В другом варианте воплощения контроллер системной памяти расположен в той же микросхеме, что и центральный процессор 102. Информация, инструкции и другие данные могут быть сохранены в системной памяти 110 для использования центральным процессором 102, так же как и множество других потенциальных устройств. Устройства ввода/вывода, например устройства 118 и 122 ввода/вывода, соединены с южным мостом 116 набора 112 микросхем через одно или более межсоединений 120 и 124 ввода/вывода.
В одном варианте воплощения программное приложение, работающее с центральным процессором 102, может иметь уровень приоритета, который определяет важность его выполнения относительно любых других приложений. Уровень приоритета предоставляет программному приложению определенный приоритет при выполнении в центральном процессоре 102. В разных вариантах воплощения могут существовать один, два, четыре или множество уровней приоритета. В одном варианте воплощения центральный процессор 102 может быть выполнен с возможностью более частой обработки программ с определенным уровнем приоритета, чем программ с более низким уровнем приоритета. Кроме того, если центральный процессор 102 выполнен с возможностью обработки программных приложений с определенным уровнем приоритета, для любых внешних прерываний, которые находятся на более низком уровне приоритета, не будет разрешено прерывать текущее выполнение.
Программное приложение, работающее в центральном процессоре 102, может выполнять множество задач. В одном варианте воплощения задача представляет собой определенный участок выполнения программного приложения. Каждой задаче в пределах приложения может быть назначен определенный уровень приоритета. Программное приложение может устанавливать РПЗ для отметки текущего уровня приоритета ядра центрального процессора. Установка РПЗ процессора с определенным значением уровня приоритета сообщает центральному процессору 102 о необходимости блокировать прерывания с более низким приоритетом. Это может определить возможность работы в режиме прерывания при выполнении задач в центральном процессоре 102.
Различные приложения, выполняемые центральным процессором 102, а также различные задачи, выполняемые в каждом приложении, требуют различного количества и типов ресурсов от платформы компьютерной системы. Например, одна задача может интенсивно использовать объемы памяти, другая задача может активно использовать полосу пропускания взаимного соединения процессор-память, следующая может интенсивно использовать ресурсы ввода/вывода (I/O, В/В) и еще одна может интенсивно использовать кэш центрального процессорного устройства (ЦПУ). В общем, предпочтительно выделять такие разные ресурсы платформы в соответствии с потребностью задачи, работающей в компьютерной системе. Таким образом, в одном варианте воплощения компьютерная система, показанная на фиг.1, позволяет назначать независимые уровни приоритета для кэша, взаимного соединения, памяти, ввода/вывода и ресурсов питания системы. Возможность установки приоритетов для таких ресурсов представляет собой дополнение к возможности установки приоритетов ядра ЦПУ, выполняющего задачу.
В одном варианте воплощения компьютерная система по фиг.1 выполняет процесс, с помощью которого программные приложения, работающие в компьютерной системе, могут передавать требования приоритета приложения в платформу в отношении ресурсов, например памяти, ввода/вывода, взаимных соединений, кэша процессора и питания системы. В одном варианте воплощения регистр приоритета платформы (PQR, РКП - Регистр КаО платформы) определен и используется так же, как РПЗ. В данном варианте воплощения программное обеспечение, работающее в процессоре, устанавливает значения РКП, представляющие требование к приоритету платформы текущей выполняемой задачи в отношении ресурсов платформы. В других вариантах воплощения программное средство может устанавливать РКП для установки приоритета системной памяти, входа/выхода, взаимного соединения процессор-память, кэша процессора, системы снабжения электропитания платформы или комбинации двух или больше из таких ресурсов. В другом варианте воплощения доступностью дополнительных ресурсов платформы, помимо представленных выше, также манипулируют с помощью РКП.
Доступ со стороны программных приложений к памяти и входу/выходу, выходящим за пределы ядра процессора, затем помечают с помощью тега с информацией класса приоритета на основе текущего значения РКП. Механизмы принудительного выполнения КаО в платформе используют такой тег приоритета для выделения ресурсов платформы, соответствующих такому запросу. В других вариантах воплощения механизмы принудительного обеспечения КаО платформы могут включать в себя логические схемы ресурса, которые могут считывать информацию КаО, помеченную с помощью тега, из доступа к памяти и входу/выходу и регулировать взаимодействие ресурсов с соответствующим доступом, механизмы принудительного обеспечения КаО платформы также могут включать в себя программную логику операционной системы, которая может регулировать использование ресурса на основе помеченной с помощью тегов информации КаО, или любую другую логику регулировки степени использования ресурса, которая может быть воплощена в платформе. В одном варианте воплощения информация тега может включать в себя специфичные биты, которые добавлены к доступу к памяти/входу/выходу, который может использовать логика КаО для определения уровня приоритета специфичного доступа.
На фиг.2 представлен один вариант воплощения механизма КаО на уровне платформы для платформы, в которой используется существующий РПЗ, для установки уровней приоритета ресурса платформы. В этом варианте воплощения существующий РПЗ прозрачно используют для предоставления дифференциации услуги платформы поверх ее текущей работы, для обеспечения дифференциации услуги ядра процессора. В данном варианте воплощения программное приложение имеет задачу 200, работающую в компьютерной системе. Задача взаимодействует с операционной системой 202 путем предоставления в операционную систему уровня 204 приоритета текущей задачи. Операционная система 202 принимает уровень приоритета текущей задачи и передает его в РПЗ 206. По мере выполнения задачи 200 происходит ее доступ 208 к системной памяти.
Такой доступ помечают с помощью тегов, используя процедуру 210 назначения тегов КаО платформы с текущим значением РПЗ. Процедура 210 назначения тегов КаО платформы добавляет информацию КаО, принимаемую из РПЗ, в транзакцию доступа к памяти/ВВ. Таким образом, доступ к памяти/ВВ сопровождает дополнительная информация об уровне приоритета, равная РПЗ, с которым работает процессор. Если РПЗ устанавливает уровень приоритета для текущей задачи, который высок для процессора, тогда процедура 210 назначения тегов КаО платформы добавляет тег высокого приоритета к доступу к памяти за пределами ядра. Поэтому доступу к памяти/ВВ за пределами ядра будет назначен высокий приоритет любым ресурсом, активированным КаО платформы, таким как кэш, взаимное соединение процессор-память, системная память, вход/выход или распределение электропитания платформы. В одном варианте воплощения уровни приоритета могут быть низкими, средними и высокими. В этом варианте воплощения, если уровень приоритета является высоким в РПЗ, это требует, чтобы процессор также получал обработку с высоким приоритетом от платформы.
В другом варианте воплощения используют регистр 8 управления (РУ8) для сохранения уровня приоритета для ресурсов КаО платформы. РУ8 используют с 64-битными расширениями структуры IA-32 Intel Corporation. Доступы к памяти/ВВ, помеченные тегами, затем принимают одним или больше ресурсами 212, активируемыми КаО, и эти ресурсы соответствующим образом могут модифицировать свое взаимодействие с доступами к памяти/ВВ. Ресурсы, активированные КаО, могут считывать уровень приоритета в информации тега и определять, какой доступ к памяти/ВВ должен получить приоритет. Например, если один доступ к памяти/ВВ помечен тегом “высокий” приоритет, он получает преимущество со стороны ресурса, активируемого КаО, над другим доступом к памяти/ВВ, который помечен как имеющий “средний” приоритет.
Процесс применения тегов доступа памяти/ВВ с текущим значением РПЗ позволяет ресурсам платформы задавать тот же уровень приоритета, что и для ядра процессора. Хотя это позволяет задавать высокий приоритет задачам с высоким приоритетом во всей платформе, такой подход не позволяет дифференцировать уровни приоритета среди различных ресурсов платформы, а также проводить дифференциацию от уровня приоритета ядра процессора.
На фиг.3 представлена подробная версия одного варианта воплощения механизма КаО уровня платформы для платформы, в которой используется РКП, для установки уровней приоритета ресурса платформы. В этом варианте воплощения РКП устанавливают на основе приоритета платформы, необходимого для текущего работающего программного обеспечения. Задача 300 взаимодействует с операционной системой или диспетчером 302 виртуальной машины (OS/VMM, OC/MBM) путем информирования OC/MBM о ее текущем приоритете 304 платформы. OC/MBM 302 вводит информацию о приоритете платформы в РКП 306. Затем во время выполнения задачи OC/MBM 302 передает запросы на доступ 308 к памяти и В/В, затем устанавливает теги 310 на основе значения в РКП 306. Такие доступы затем обрабатывают соответствующим образом с помощью ресурсов платформы с учетом КаО, таким как кэш, взаимное соединение, память или В/В 312. Поскольку РКП представляет собой настраиваемый регистр, который обеспечивает возможность дифференциации установления приоритета среди различных ресурсов платформы, данный вариант воплощения, например, позволяет принудительно выделять больше пространства в кэш или в системной памяти, резервировать полосу пропускания во взаимном соединении процессор-память или обеспечивать предпочтительную обработку в В/В на основе политик КаО. В одном варианте воплощения процесс установления приоритета ресурсов платформы на основе РКП обеспечивается с помощью OC/MBM. В этом варианте воплощения OC/MBM может иметь интерфейс прикладного программирования (API, ИПП), который позволяет программным приложениям обращаться к РКП и к связанным приоритетам ресурса платформы. Кроме того, OC/MBM может потребоваться управлять относительными уровнями приоритета ресурса платформы среди множества процессов и потоков в системе.
На фиг.4 иллюстрируется один вариант воплощения существующего РПЗ и РУ8, используемых механизмом КаО, на уровне платформы по фиг.2. В этом варианте воплощения РПЗ использует значение приоритета задачи в местах расположения бита 7:4. В то время как в РУ8 значение приоритета задачи находится в местах расположения бита 3:0.
На фиг.5 иллюстрируется один вариант воплощения РУ8, используемого механизмом КаО на уровне платформы, в котором воплощен РКП, показанный на фиг.3. В этом варианте воплощения, в дополнение к использованию значения приоритета задачи в местах расположения бита 3:0, РУ8 имеет биты РКП в местах расположения бита 5:4. В данном конкретном варианте воплощения два бита РУ8 используются для определения уровня приоритета кэша, который позволяет использовать четыре отдельных уровня приоритета для кэша. Например, два бита РКП могут представлять собой 11, что обозначает наивысший приоритет, или 00, что обозначает самый низкий приоритет. В одном варианте воплощения различные уровни приоритета в кэше относятся к способности обращения к специфичной процентной части кэша. Например, наивысший уровень приоритета (приоритет 11) позволяет обращаться к 100% кэша, следующий наивысший уровень приоритета (10) может обеспечивать доступ к 50% кэша, следующий уровень приоритета (01) может разрешать доступ к 10% кэша и самый низкий приоритет (00) может не разрешать доступ к кэшу вообще. В другом варианте воплощения РУ8 может использовать дополнительные биты для отметки с помощью тега уровней приоритета для других ресурсов, кроме кэша (не показаны).
На фиг.6 представлен один вариант воплощения формата записи таблицы страницы (ЗТС) памяти, в котором используются доступные биты для процесса установления приоритета ресурса платформы. В данном варианте воплощения установление приоритетов ресурса платформы осуществляется путем модификации определенных свойств в каждом ЗТС памяти для ассоциирования ресурсов платформы со страницей памяти. ЗТС на фиг.4 иллюстрирует два отдельных места расположения в текущем формате ЗТС, которые доступны для использования как биты КаО платформы.
В одном варианте воплощения некоторые из битов 400, управляемых программными средствами (62:52), можно использовать как биты КаО платформы, если предусматривается битовая маска в другом специфичном для модели регистре (MSR, СМР) или РУ. В другом варианте воплощения, в зависимости от доступности зарезервированных битов 402 (51:40), некоторые из этих битов могут быть определены как биты КаО платформы. Конкретное использование определенных ресурсов платформы КаО может быть разрешено или нет, так же как и степень детализации при установлении приоритета зависит, в частности, от количества битов, которые возможно использовать.
В одном варианте воплощения, когда виртуальная память выделена в компьютерной системе, уровень приоритета каждой страницы памяти назначают и добавляют к ассоциированным ЗТС. Приоритет можно изменять позже через вызовы ОС или МВМ. Информацию о ЗТС, включающую в себя биты приоритета ресурса платформы, загружают в буфер ассоциативной трансляции. Последующие доступы к странице помечают с помощью тегов, используя такую информацию о приоритете платформы.
На фиг.7 показана блок-схема последовательности операций одного варианта воплощения процесса выделения ресурсов платформы компьютера на основе уровней приоритета КаО. Этот процесс выполняется с помощью логической схемы обработки, которая может содержать аппаратные средства (схему, специализированную логическую схему и т.д.), программные средства (такие, которые работают в компьютерной системе общего назначения или в специализированном устройстве) или комбинации обоих этих средств. Как показано на фиг.7, процесс начинается с обработки установки логической схемой значения уровня приоритета КаО для одного или больше ресурсов платформы компьютерной системы, кроме ядра центрального процессора, относящихся к задаче, выполняемой в данное время в компьютерной системе (блок 700 обработки). В одном варианте воплощения ресурсы платформы включают в себя кэш центрального процессора, системную память, взаимное соединение процессор-память и В/В. Затем логическая схема обработки определяет, будет ли выделен один или больше ресурсов платформы компьютерной системы для задачи на основе установления уровня приоритета КаО (блок 702 обработки), и процесс заканчивается.
На фиг.8 показана блок-схема последовательности операций варианта воплощения обработки присвоения тега запросам памяти, требующим доступа к ресурсам платформы, расположенным за пределами ядра процессора, со значениями уровня приоритета КаО. Этот процесс выполняют с помощью логической схемы обработки, которая может содержать аппаратные средства (схему, выделенную логическую схему и т.д.), программное средство (такое, которое работает в компьютерной системе общего назначения или в специализированном устройстве) или комбинацию обоих. Как показано на фиг.8, процесс начинается с установки логической схемой обработки в регистре КаО платформы (РКП) значения уровня приоритета для одного или больше ресурсов, относящихся к задаче, выполняемой в данный момент времени в компьютерной системе (блок 800 обработки). Затем логическая схема обработки принимает запрос ресурса памяти/ВВ (блок 802 обработки). Если запрос ресурса содержится в пределах ядра процессора, тогда логическая схема обработки не выполняет ничего, относящегося к запросу ресурса, и возвращается к приему другого запроса ресурса памяти/ВВ (блок 802 обработки). В противном случае, если запрос ресурса требует доступа к памяти/ВВ за пределами ядра процессора, тогда логическая схема обработки устанавливает теги для этого запроса через информацию использования ресурса платформы, ассоциированную со значением в РКП (блок 806 обработки), и процесс заканчивается. В одном варианте воплощения доступ к памяти/ВВ, помеченный тегом, затем обрабатывают с помощью одного или больше запущенных по КаО ресурсов платформы, которые используют информацию использования ресурса, помеченного тегом, для определения уровня приоритета, для применения доступа к ресурсу памяти/ВВ.
На фиг.9 показана блок-схема последовательности операций варианта воплощения обработки по заполнению записей таблицы страницы памяти значениями уровня приоритета КаО ресурса платформы. Этот процесс выполняют с помощью логической схемы обработки, которая может содержать аппаратные средства (схема, выделенная логическая схема и т.д.), программное средство (такое, которое работает в компьютерной системе общего назначения или в специализированном устройстве) или комбинацию обоих средств. Как показано на фиг.9, процесс начинается с того, что логическая схема обработки устанавливает во множестве записей таблицы страницы памяти значений уровня приоритета КаО для одного или больше ресурсов, относящихся к задаче, выполняемой в данный момент времени в компьютерной системе (блок 900 обработки). В одном варианте воплощения процесс выполняют, когда система загружается, и виртуальную память выделяют для процесса. В одном варианте воплощения процесс представляет собой программное приложение. В другом варианте воплощения операционная система или диспетчер виртуальной машины устанавливает значение уровня приоритета КаО в записях таблицы страницы позже, во время нормальной работы системы. Затем логическая схема обработки устанавливает приоритеты для доступа к местам расположения памяти на основе значений уровня приоритета КаО, установленного для каждой страницы памяти (блок 902 обработки), и процесс заканчивается.
Таким образом, описаны варианты воплощения способа, системы и считываемого компьютером носителя информации для воплощения управления уровнем приоритета качеством обслуживания для ресурсов платформы. Эти варианты воплощения были описаны со ссылкой на конкретные примерные их варианты воплощения. Для специалистов в данной области техники на основе данного раскрытия будет понятно, что различные модификации и изменения могут быть выполнены в этих вариантах воплощения без выхода за пределы широко понимаемых сущности и объема описанных здесь вариантов воплощения. Описание и чертежи, соответственно, следует рассматривать, скорее как иллюстрацию, а не как ограничение.