Способ, устройство и система для диспетчеризации ядра процессора в системе ядра мультипроцессора
Иллюстрации
Показать всеИзобретение относится к области системы ядра мультипроцессора. Техническим результатом является эффективная диспетчеризация ядра процессора в системе ядра мультипроцессора. Раскрыты способ, устройство и система для диспетчеризации ядра процессора в системе ядра мультипроцессора, которые относятся к области систем ядра мультипроцессора и могут удовлетворять потребность в обработке сетевого ввода/вывода в реальном времени, таким образом, повышая эффективность системы ядра мультипроцессора. Способ диспетчеризации ядра процессора в системе ядра мультипроцессора включает в себя этапы, на которых: получают, в выполняющемся процессе системы ядра мультипроцессора, первый параметр управления, второй параметр управления, третий параметр управления и четвертый параметр управления; переносят пакет потока данных, который поступает в систему ядра мультипроцессора, на бездействующее ядро процессора для обработки на основании первого параметра управления, второго параметра управления и третьего параметра управления; и переключают ядро процессора в системе ядра мультипроцессора между режимом прерывания и режимом опроса на основании четвертого параметра управления. 3 н. и 14 з.п. ф-лы, 15 ил.
Реферат
Перекрестная ссылка на родственные заявки
[0001] Данная заявка является продолжением международной заявки № PCT/CN2013/071272, поданной 01 февраля 2013 г., которая испрашивает приоритет китайской патентной заявки № 201210217579.8, поданной 28 июня 2012 г., которые обе, таким образом, включены посредством ссылки в полном объеме.
Область техники
[0002] Настоящее изобретение относится к области системы ядра мультипроцессора и, в частности, к способу, устройству и системе для диспетчеризации ядра процессора в системе ядра мультипроцессора.
Уровень техники
[0003] В настоящее время, службы, встроенные в систему ядра мультипроцессора постепенно увеличиваются, и запросы сетевого ввода/вывода (ввода/вывода) также увеличиваются. Возможности обработки данных системы ядра мультипроцессора по запросам сетевого ввода/вывода играет ключевую роль в обеспечении работы системы на полную мощность. В уровне техники один способ обработки запросов сетевого ввода/вывода включает в себя: на основании режима обработки статической конфигурации, связывание задачи с назначенным ядром процессора, где задача осуществляется на назначенном ядре процессора, или назначение задач на бездействующих ядрах процессора сбалансированным образом, где задачи осуществляются на бездействующих ядрах процессора; другой способ обработки запросов сетевого ввода/вывода включает в себя: на основании правила переключения статической конфигурации, переключение ядра процессора между режимом прерывания и режимом опроса для повышения эффективности обработки системы по запросам сетевого ввода/вывода.
[0004] В ходе реализации вышеупомянутого технического решения, автор изобретения обнаружил, что уровень техники сталкивается, по меньшей мере, со следующими проблемами: статическая конфигурация относится к ручной конфигурации для выполнения процесса системы, и в ходе фактического выполнения процесса системы, поскольку ядро процессора диспетчеризуется на основании решения статической конфигурации, невозможно удовлетворить потребность в обработке сетевого ввода/вывода в реальном времени, и невозможно обеспечить приемлемое решение диспетчеризации ядра процессора, что препятствует повышению эффективности всей системы ядра мультипроцессора.
Сущность изобретения
[0005] Варианты осуществления настоящего изобретения предусматривают способ, устройство и систему для диспетчеризации ядра процессора в системе ядра мультипроцессора, которые могут удовлетворять потребность в обработке сетевого ввода/вывода в реальном времени, таким образом, повышая эффективность всей системы ядра мультипроцессора.
[0006] Варианты осуществления настоящего изобретения опираются на следующие технические решения.
[0007] Способ диспетчеризации ядра процессора в системе ядра мультипроцессора включает в себя:
получение, в выполняющемся процессе системы ядра мультипроцессора, первого параметра управления, второго параметра управления, третьего параметра управления и четвертого параметра управления, где первый параметр управления относится к информации указания N потоков данных, и N потоков данных относятся к первым N потокам данных, полученным в первом цикле выборки путем сортировки потоков данных, которые содержат пакеты, обработанные системой ядра мультипроцессора, в порядке убывания, согласно количеству обработанных пакетов, содержащихся в каждом потоке данных, где N - положительное целое число; второй параметр управления относится к длительности внутренней передачи каждого потока данных в системе ядра мультипроцессора и длительности для обработки каждого потока данных ядром процессора в системе ядра мультипроцессора; третий параметр управления относится к информации ядра процессора для ядра процессора с самым низким использованием; и четвертый параметр управления относится к информации описания критического пути приложения (APP) каждого потока данных;
обнаружение, является ли поток данных, которому принадлежит текущий пакет, одним из N потоков данных на основании первого параметра управления;
когда поток данных, которому принадлежит текущий пакет, не является одним из N потоков данных, перенос, на основании второго параметра управления и третьего параметра управления и согласно политике переключения между ядрами, пакета потока данных, который поступает в систему ядра мультипроцессора, на бездействующее ядро процессора для обработки, где политика переключения между ядрами состоит в следующем: если длительность внутренней передачи превышает длительность для обработки пакета ядром процессора, пакет обрабатывается ядром процессора с самым низким использованием, и если длительность для обработки пакета ядром процессора превышает длительность внутренней передачи, пакет привязывается к назначенному ядру процессора для обработки; и
переключение ядра процессора, которое обрабатывает пакет в системе ядра мультипроцессора, между режимом прерывания и режимом опроса на основании четвертого параметра управления, и согласно политике переключения внутри ядра, где политика переключения внутри ядра состоит в следующем: если общая служебная нагрузка опроса больше общей служебной нагрузки прерывания, ядро процессора входит в режим прерывания для обработки пакета, и если общая служебная нагрузка опроса меньше общей служебной нагрузки прерывания, ядро процессора входит в режим опроса для обработки пакета.
[0008] Компьютерная система включает в себя:
шину;
ядро мультипроцессора, соединенное с шиной; и
память, соединенную с шиной, где
посредством вызова инструкции исполнения в памяти через шину, ядро мультипроцессора выполнено с возможностью: получения первого параметра управления, второго параметра управления, третьего параметра управления и четвертого параметра управления на основании данных, вызванных из памяти, где первый параметр управления относится к информации указания N потоков данных, и N потоков данных относятся к первым N потокам данных, полученным в первом цикле выборки путем сортировки потоков данных, которые содержат пакеты, обработанные системой ядра мультипроцессора, в порядке убывания, согласно количеству обработанных пакетов, содержащихся в каждом потоке данных, где N - положительное целое число; второй параметр управления относится к длительности внутренней передачи каждого потока данных в системе ядра мультипроцессора и длительности для обработки каждого потока данных ядром процессора в системе ядра мультипроцессора; третий параметр управления относится к информации ядра процессора для ядра процессора с самым низким использованием; и четвертый параметр управления относится к информации описания критического пути приложения (APP) каждого потока данных;
ядро мультипроцессора дополнительно выполнено с возможностью обнаружения, является ли поток данных, которому принадлежит текущий пакет, одним из N потоков данных на основании первого параметра управления;
ядро мультипроцессора дополнительно выполнено с возможностью: когда поток данных, которому принадлежит текущий пакет, не является одним из N потоков данных, переноса, на основании второго параметра управления и третьего параметра управления и согласно политике переключения между ядрами, пакета потока данных, который поступает в систему ядра мультипроцессора, на бездействующее ядро процессора для обработки, где политика переключения между ядрами состоит в следующем: если длительность внутренней передачи превышает длительность для обработки пакета ядром процессора, пакет обрабатывается ядром процессора с самым низким использованием, и если длительность для обработки пакета ядром процессора превышает длительность внутренней передачи, пакет привязывается к назначенному ядру процессора для обработки; и
ядро мультипроцессора дополнительно выполнено с возможностью переключения ядра процессора, которое обрабатывает пакет в системе ядра мультипроцессора, между режимом прерывания и режимом опроса на основании четвертого параметра управления, и согласно политике переключения внутри ядра, где политика переключения внутри ядра состоит в следующем: если общая служебная нагрузка опроса больше общей служебной нагрузки прерывания, ядро процессора входит в режим прерывания для обработки пакета, и если общая служебная нагрузка опроса меньше общей служебной нагрузки прерывания, ядро процессора входит в режим опроса для обработки пакета.
[0009] В способе, устройстве и системе для диспетчеризации ядра процессора в системе ядра мультипроцессора, которые предусмотрены вариантами осуществления настоящего изобретения, путем получения первого параметра управления, второго параметра управления, третьего параметра управления и четвертого параметра управления в выполняющемся процессе системы ядра мультипроцессора и путем диспетчеризации ядра процессора на основании параметров управления, можно удовлетворить потребность в обработке сетевого ввода/вывода в реальном времени в системе ядра мультипроцессора, что позволяет повысить эффективность всей системы ядра мультипроцессора.
Краткое описание чертежей
[0010] Для более наглядной иллюстрации технических решений в вариантах осуществления настоящего изобретения или в уровне техники, ниже приведен краткий перечень прилагаемых чертежей, необходимых для описания вариантов осуществления или уровня техники. Очевидно, прилагаемые чертежи в нижеследующем описании демонстрируют лишь некоторые варианты осуществления настоящего изобретения, и специалист в данной области техники может получить другие чертежи из этих прилагаемых чертежей без применения творческих способностей.
[0011] Фиг. 1 - блок-схема операций способа диспетчеризации ядра процессора в системе ядра мультипроцессора согласно варианту осуществления 1 настоящего изобретения;
[0012] фиг. 2 - блок-схема операций способа диспетчеризации ядра процессора в системе ядра мультипроцессора согласно варианту осуществления 2 настоящего изобретения;
[0013] фиг. 3a - блок-схема операций другого способа диспетчеризации ядра процессора в системе ядра мультипроцессора согласно варианту осуществления 2 настоящего изобретения;
[0014] фиг. 3b - блок-схема операций другого способа диспетчеризации ядра процессора в системе ядра мультипроцессора согласно варианту осуществления 2 настоящего изобретения;
[0015] фиг. 4 - блок-схема операций получения информации описания критического пути APP согласно варианту осуществления 2 настоящего изобретения;
[0016] фиг. 5 - блок-схема устройства для диспетчеризации ядра процессора в системе ядра мультипроцессора согласно варианту осуществления 3 настоящего изобретения;
[0017] фиг. 6 - блок-схема блока диспетчеризации переключения между ядрами согласно варианту осуществления 3 настоящего изобретения;
[0018] фиг. 7 - блок-схема другого блока диспетчеризации переключения между ядрами согласно варианту осуществления 3 настоящего изобретения;
[0019] фиг. 8 - блок-схема блока диспетчеризации переключения внутри ядра согласно варианту осуществления 3 настоящего изобретения;
[0020] фиг. 9 - блок-схема другого блока диспетчеризации переключения внутри ядра согласно варианту осуществления 3 настоящего изобретения;
[0021] фиг. 10 - блок-схема блока получения параметра управления согласно варианту осуществления 3 настоящего изобретения;
[0022] фиг. 11a - блок-схема блока получения первого параметра управления согласно варианту осуществления 3 настоящего изобретения;
[0023] фиг. 11b - блок-схема блока получения четвертого параметра управления согласно варианту осуществления 3 настоящего изобретения;
[0024] фиг. 12 - схема компьютерной системы согласно варианту осуществления 4 настоящего изобретения; и
[0025] фиг. 13 - схема компьютерной системы согласно варианту осуществления 5 настоящего изобретения.
Описание вариантов осуществления
[0026] Ниже приведено наглядное описание технических решений в вариантах осуществления настоящего изобретения со ссылкой на прилагаемые чертежи в вариантах осуществления настоящего изобретения. Очевидно, описанные варианты осуществления составляют лишь часть всех вариантов осуществления настоящего изобретения. Все остальные варианты осуществления, полученные специалистом в данной области техники на основании вариантов осуществления настоящего изобретения без применения творческих способностей, вписываются в объем защиты настоящего изобретения.
Вариант осуществления 1
[0027] Вариант осуществления настоящего изобретения предусматривает способ диспетчеризации ядра процессора в системе ядра мультипроцессора, показанный на фиг. 1, который включает в себя следующие этапы.
[0028] 101. Получение, в выполняющемся процессе системы ядра мультипроцессора, первого параметра управления, второго параметра управления, третьего параметра управления и четвертого параметра управления.
[0029] Первый параметр управления относится к информации указания N потоков данных, и N потоков данных относятся к первым N потокам данных, полученным в первом цикле выборки путем сортировки потоков данных, которые содержат пакеты, обработанные системой ядра мультипроцессора, в порядке убывания, согласно количеству обработанных пакетов, содержащихся в каждом потоке данных, где N - положительное целое число. Информация указания N потоков данных может указывать, какие из N потоков данных указаны информацией указания.
[0030] Второй параметр управления относится к длительности внутренней передачи каждого потока данных в системе ядра мультипроцессора и длительности для обработки каждого потока данных ядром процессора в системе ядра мультипроцессора. Третий параметр управления относится к информации ядра процессора для ядра процессора с самым низким использованием. Четвертый параметр управления относится к информации описания критического пути APP (приложения) каждого потока данных.
[0031] Первый цикл выборки может быть заранее установленным циклом выборки или динамически получаемым циклом выборки. Например, это может быть цикл выборки, динамически конфигурируемый абонентом, который получается через интерфейс человеко-машинного взаимодействия, или может быть соответствующий цикл выборки, хранящийся в базе данных, доступ к которой осуществляется через интерфейс связи.
[0032] 102. Обнаружение, является ли поток данных, которому принадлежит текущий пакет, одним из N потоков данных на основании первого параметра управления.
[0033] 103. Когда поток данных, которому принадлежит текущий пакет, не является одним из N потоков данных, перенос, на основании второго параметра управления и третьего параметра управления и согласно политике переключения между ядрами, пакета потока данных, который поступает в систему ядра мультипроцессора, на бездействующее ядро процессора для обработки.
[0034] Бездействующее ядро процессора включает в себя ядро процессора с самым низким использованием и ядро процессора, использование ресурсов которого ниже определенного порога, где определенный порог может быть порогом, заранее установленным в системе, или динамически конфигурируемым порогом, по мере необходимости вводимым абонентом через интерфейс человеко-машинного взаимодействия.
[0035] В частности, прежде всего, является ли поток данных, которому принадлежит текущий пакет, одним из N потоков данных обнаруживается на основании первого параметра управления; когда поток данных, которому принадлежит текущий пакет, не является одним из N потоков данных, на основании второго параметра управления и третьего параметра управления и согласно политике переключения между ядрами, пакет потока данных, который поступает в систему ядра мультипроцессора переносится на бездействующее ядро процессора для обработки.
[0036] 104. Переключение ядра процессора в системе ядра мультипроцессора между режимом прерывания и режимом опроса на основании четвертого параметра управления, и согласно политике переключения внутри ядра.
[0037] Для пакета каждого потока данных, который поступает в систему ядра мультипроцессора, этапы 102 и 103 осуществляются для назначения ядра процессора каждому пакету; на этапе 104 осуществляется переключение внутриядерного режима обработки для единичного ядра процессора. В фактическом приложении, вышеупомянутые этапы 102 и 103 являются независимыми действиями этапа 104, которые могут осуществляться одновременно или по отдельности.
[0038] Согласно варианту осуществления настоящего изобретения, перенос, на основании второго параметра управления и третьего параметра управления, пакета потока данных, который поступает в систему ядра мультипроцессора, на бездействующее ядро процессора для обработки, в частности, является переносом, согласно политике переключения между ядрами, пакета потока данных, который поступает в систему ядра мультипроцессора, на бездействующее ядро процессора для обработки. Политика переключения между ядрами состоит в следующем: если длительность внутренней передачи пакета превышает длительность для обработки пакета ядром процессора, пакет обрабатывается ядром процессора с самым низким использованием, и если длительность для обработки пакета ядром процессора превышает длительность внутренней передачи пакета, пакет привязывается к назначенному ядру процессора для обработки;
[0039] Кроме того, переключение между режимом прерывания и режимом опроса ядра процессора в системе ядра мультипроцессора на основании четвертого параметра управления согласно варианту осуществления настоящего изобретения, в частности, относится к переключению между режимом прерывания и режимом опроса ядра процессора в системе ядра мультипроцессора согласно политике переключения внутри ядра. Политика переключения внутри ядра состоит в следующем: если общая служебная нагрузка опроса больше общей служебной нагрузки прерывания, ядро процессора входит в режим прерывания для обработки пакета, и если общая служебная нагрузка опроса меньше общей служебной нагрузки прерывания, ядро процессора входит в режим опроса для обработки пакета.
[0040] Согласно варианту осуществления настоящего изобретения, разные потоки данных сетевого ввода/вывода отличаются пятеркой (исходного адреса, целевого адреса, исходного порта, целевого порта и протокола передачи потока данных).
[0041] Вариант осуществления настоящего изобретения предусматривает способ диспетчеризации ядра процессора в системе ядра мультипроцессора, где, путем получения первого параметра управления, второго параметра управления, третьего параметра управления и четвертого параметра управления в выполняющемся процессе системы ядра мультипроцессора и путем диспетчеризации ядра процессора на основании параметров управления, можно удовлетворить потребность в обработке сетевого ввода/вывода в реальном времени в системе ядра мультипроцессора, что позволяет повысить эффективность всей системы ядра мультипроцессора.
Вариант осуществления 2
[0042] Вариант осуществления настоящего изобретения предусматривает способ диспетчеризации ядра процессора в системе ядра мультипроцессора, показанный на фиг. 2, способ включает в себя.
[0043] 201. Получение, в выполняющемся процессе системы ядра мультипроцессора, первого параметра управления, второго параметра управления, третьего параметра управления и четвертого параметра управления.
[0044] Первый параметр управления относится к информации указания N потоков данных, и N потоков данных относятся к первым N потокам данных, полученным в первом цикле выборки путем сортировки потоков данных, которые содержат пакеты, обработанные системой ядра мультипроцессора, в порядке убывания, согласно количеству обработанных пакетов, содержащихся в каждом потоке данных, где N - положительное целое число. Информация указания N потоков данных может указывать, какие из N потоков данных указаны информацией указания. Например, когда значение N равно 3, информация указания N потоков данных представляет собой: (flow1, flow5, flow6), откуда следует, что информация указания указывает три потока данных, и этими тремя потоками данных являются flow1, flow5 и flow6.
[0045] Второй параметр управления относится к длительности внутренней передачи каждого потока данных в системе ядра мультипроцессора и длительности для обработки каждого потока данных ядром процессора в системе ядра мультипроцессора. Третий параметр управления относится к информации ядра процессора для ядра процессора с самым низким использованием. Четвертый параметр управления относится к информации описания критического пути APP каждого потока данных.
[0046] 202. После того как текущий пакет потока данных поступает в систему ядра мультипроцессора, обнаружение, является ли поток данных, которому принадлежит текущий пакет, одним из N потоков данных на основании первого параметра управления.
[0047] После того как текущий пакет потока данных поступает в систему ядра мультипроцессора, является ли поток данных, которому принадлежит текущий пакет, одним из N потоков данных, указанных информацией указания N потоков данных, обнаруживается на основании первого параметра управления. Если поток данных, которому принадлежит текущий пакет, является одним из N потоков данных, осуществляется этап 205. В противном случае, осуществляется этап 203.
[0048] Первый цикл выборки может быть заранее установленным циклом выборки или динамически получаемым циклом выборки. Например, это может быть цикл выборки, динамически конфигурируемый абонентом, который получается через интерфейс человеко-машинного взаимодействия, или может быть соответствующий цикл выборки, хранящийся в базе данных, доступ к которой осуществляется через интерфейс связи.
[0049] Действия для получения первого параметра управления могут включать в себя: во-первых, получение пакета, обработанного системой ядра мультипроцессора в первом цикле выборки; затем, определение соотношения между пакетом, обработанным системой ядра мультипроцессора, и потоком данных, которому принадлежит пакет; сортировку количества пакетов, обработанных системой ядра мультипроцессора, в порядке убывания, и определение потоков данных, содержащих первые N пакетов, согласно вышеупомянутой последовательности, на основании соотношения между пакетом, обработанным системой ядра мультипроцессора, и потоком данных, которому принадлежит пакет.
[0050] Нижеследующий пример описывает, как получать первый параметр управления. Предполагается, что существуют потоки данных, включающие в себя flow1, flow2, flow3, flow4 и flow5. N=3. Когда пакет каждого потока данных поступает в систему ядра мультипроцессора, обработанный пакет записывается в первом цикле выборки. Затем определяется соотношение между пакетом, обработанным системой ядра мультипроцессора, и потоком данных, которому принадлежит пакет, и количество пакетов, обработанных системой ядра мультипроцессора, сортируется в порядке убывания. Если записанный результат сортировки таков: пакет flow1, который поступает в систему, обрабатывается в течение наибольшей части времени, пакет flow2 обрабатывается в течение второго после наибольшего времени, и пакет flow3 обрабатывается в течение наименьшей части времени. Соответственно, записи первого параметра управления flow1, flow2 и flow3.
[0051] 203. Определение, на основании второго параметра управления, превышает ли длительность внутренней передачи потока данных, которому принадлежит текущий пакет в системе ядра мультипроцессора, длительность для обработки потока данных, которому принадлежит текущий пакет, ядром процессора в системе ядра мультипроцессора.
[0052] Если длительность внутренней передачи потока данных, которому принадлежит текущий пакет в системе ядра мультипроцессора, превышает длительность для обработки потока данных, которому принадлежит текущий пакет, ядром процессора в системе ядра мультипроцессора, осуществляется этап 204. В противном случае, осуществляется этап 205.
[0053] 204. Распределение, на основании третьего параметра управления, текущего пакета на ядро процессора с самым низким использованием.
[0054] 205. Передачу текущего пакета на ядро процессора, использование ресурсов которого ниже первого порога, и связывания потока данных, которому принадлежит текущий пакет, с ядром процессора, использование ресурсов которого ниже первого порога.
[0055] Поток данных, которому принадлежит текущий пакет, привязывается к ядру процессора, использование ресурсов которого ниже первого порога, так что, когда пакет потока данных, которому принадлежит текущий пакет, поступает в систему ядра мультипроцессора, он обрабатывается ядром процессора, использование ресурсов которого ниже первого порога.
[0056] Первый порог, согласно варианту осуществления настоящего изобретения, можно устанавливать на основании сценария фактического приложения.
[0057] Вышеупомянутые этапы 201-205 являются вариантом осуществления политики переключения между ядрами, который реализует диспетчеризацию нагрузки среди множества ядер процессора, таким образом, снижая расходование ресурсов ядер процессора и повышая эффективность и возможности ядра мультипроцессора.
[0058] Получение второго параметра управления может включать в себя следующие этапы: для пакетов разных потоков данных, установку временных меток, когда пакет поступает в систему ядра мультипроцессора и когда он покидает систему ядра мультипроцессора, для получения длительности внутренней передачи пакета в системе ядра мультипроцессора; с другой стороны, запись времени, когда ядро процессора начинает обработку и заканчивает обработку пакета, для получения длительности обработки пакета ядром процессора. В фактическом приложении, соответственно, получаются длительности внутренней передачи множества пакетов потока данных и длительности соответствующей обработки множества пакетов ядром процессора. Средние арифметические длительностей внутренней передачи и длительностей обработки множества пакетов ядром процессора вычисляются, соответственно, как длительность внутренней передачи каждого потока данных в системе ядра мультипроцессора и длительность для обработки каждого потока данных ядром процессора. Потоки данных, требующие больше времени на обработку ядром процессора, привязываются к ядру процессора. Это позволяет избегать чрезмерных переключений между ядрами и позволяет полностью использовать вычислительные возможности ядра процессора для повышения эффективности обработки. Потоки данных с увеличенными длительностями внутренней передачи распределяются на ядро процессора с низким использованием для ослабления давления сетевой обработки.
[0059] Получение третьего параметра управления может включать в себя следующие этапы: постановку только такой задачи, уровень приоритета которой выше, чем уровень приоритета состояния бездействия в системе ядра мультипроцессора, и регулярную проверку, в каком ядре процессора находится эта задача, и это ядро процессора рассматривается как ядро процессора с самым низким использованием.
[0060] Следует отметить, что, помимо вышеупомянутого подхода согласно варианту осуществления настоящего изобретения, другие подходы, известные в технике, также можно использовать для получения длительности внутренней передачи каждого потока данных в системе ядра мультипроцессора и длительности для обработки каждого потока данных ядром процессора, и для получения информации ядра процессора для ядра процессора с самым низким использованием, которые не описаны здесь повторно.
[0061] С другой стороны, на основании полученного четвертого параметра управления, вариант осуществления настоящего изобретения дополнительно предусматривает способ диспетчеризации ядра процессора в системе ядра мультипроцессора, показанный на фиг. 3a, включающий в себя.
[0062] 301. Обнаружение служебной нагрузки единичного прерывания для обработки каждого потока данных в режиме прерывания и обнаружение служебной нагрузки единичного опроса для обработки каждого потока данных в режиме опроса.
[0063] В ходе инициализации системы ядра мультипроцессора, соответственно, обнаруживаются единичная служебная нагрузка прерывания для обработки каждого потока данных в режиме прерывания и единичная служебная нагрузка опроса для обработки каждого потока данных в режиме опроса. В частности, для служебной нагрузки прерывания, счетчик выполнен с возможностью обнаружения длительности прерывания всякий раз, когда действие прерывания происходит на ядре процессора; для служебной нагрузки опроса, счетчик выполнен с возможностью обнаружения длительности непригодного действия опроса. Затем, на основании обнаруженных времен прерывания в секунду и непригодных времен опроса в секунду, можно соответственно вычислять длительности служебной нагрузки прерывания и служебной нагрузки опроса за одну секунду.
[0064] 302. Обнаружение, на основании информации описания критического пути APP каждого потока данных, имеет ли поток данных, которому принадлежит текущий пакет, соответствующий критический путь APP.
[0065] Четвертым параметром управления является информация описания критического пути APP каждого потока данных. Каждая информация описания критического пути APP указывает, что ее соответствующий поток данных имеет критический путь APP. Например, информация описания критического пути APP может быть представлена переменной APP_flag. Если соответствующее значение APP_flag потока данных flow1 не равно нулю, это указывает, что поток данных flow1 имеет критический путь APP.
[0066] Если поток данных, которому принадлежит текущий пакет, не имеет критического пути APP, статус обработки ядра процессора, которое обрабатывает текущий пакет, поддерживается.
[0067] Если поток данных текущего пакета имеет соответствующий критический путь APP, вариант осуществления настоящего изобретения имеет разные процедуры реализации в зависимости от того, находится ли ядро процессора, которое обрабатывает текущий пакет, в режиме опроса или в режиме прерывания. Следующие этапы 303-308 используют, в порядке примера, ядро процессора в режиме опроса.
[0068] 303. Обнаружение времен опроса в первом цикле измерения.
[0069] Первый цикл измерений заранее устанавливается по мере необходимости. Следует убедиться в том, что в первом цикле измерения частота обработки пакетов ядром процессора находится в сравнительно стабильном состоянии.
[0070] 304. Получение общей служебной нагрузки опроса на основании времен опроса и служебной нагрузки единичного опроса.
[0071] Времена опроса и единичная служебная нагрузка опроса умножаются для получения общей служебной нагрузки опроса.
[0072] 305. Получение общей служебной нагрузки прерывания на основании прогнозируемого порога времен прерывания и служебной нагрузки единичного прерывания.
[0073] Прогнозируемый порог времен прерывания является заранее установленным значением, и прогнозируемый порог времен прерывания прогнозирует времена прерывания в первом цикле измерения и умножается на служебную нагрузку единичного прерывания для получения общей служебной нагрузки прерывания.
[0074] Следует отметить, что этап 304 и этап 305 можно выполнять в обратном порядке.
[0075] 306. Определение, превышает ли общая служебная нагрузка опроса общую служебную нагрузку прерывания.
[0076] Если общая служебная нагрузка опроса больше общей служебной нагрузки прерывания, осуществляется этап 307. В противном случае, осуществляется этап 308.
[0077] 307. Переключение ядра процессора, которое обрабатывает текущий пакет, из режима опроса в режим прерывания.
[0078] 308. Поддержание режима опроса ядра процессора, которое обрабатывает текущий пакет.
[0079] Вышеупомянутые этапы 303-308 используют, в порядке примера, ядро процессора в режиме опроса. Для ядра процессора в режиме прерывания, операции аналогичны этапам 303-308. В частности, если ядро процессора, которое обрабатывает текущий пакет, находится в режиме прерывания, как показано на фиг. 3b, процесс осуществляется следующим образом.
[0080] 303b. Обнаружение времен прерывания во втором цикле измерения.
[0081] Второй цикл измерений заранее устанавливается по мере необходимости. Следует убедиться в том, что во втором цикле измерения частота обработки пакетов ядром процессора находится в сравнительно стабильном состоянии. Длительность второго цикла измерений может быть такой же, как у первого цикла измерений.
[0082] 304b. Получение общей служебной нагрузки прерывания на основании времен прерывания и служебной нагрузки единичного прерывания.
[0083] 305b. Получение общей служебной нагрузки опроса на основании прогнозируемого порога времен опроса и служебной нагрузки единичного опроса.
[0084] Прогнозируемый порог времен опроса является заранее установленным значением, и прогнозируемый порог времен опроса прогнозирует времена опроса во втором цикле измерения и умножается на служебную нагрузку единичного опроса для получения общей служебной нагрузки опроса.
[0085] Следует отметить, что этап 304b и этап 305b можно выполнять в обратном порядке.
[0086] 306b. Определение, превышает ли общая служебная нагрузка прерывания общую служебную нагрузку опроса.
[0087] Если общая служебная нагрузка прерывания больше общей служебной нагрузки опроса, осуществляется этап 307b. В противном случае, осуществляется этап 308b.
[0088] 307b. Переключение ядра процессора, которое обрабатывает текущий пакет, в режим опроса.
[0089] 308b. Поддержание режима прерывания ядра процессора, которое обрабатывает текущий пакет.
[0090] Вышеупомянутые этапы 301-308 и этапы 303b-308b являются конкретной реализацией политики переключения внутри ядра, и переключение ядра процессора между режимом прерывания и режимом опроса снижает расходование ресурсов ядер процессора и повышает эффективность и возможности ядра мультипроцессора.
[0091] Фиг. 4 иллюстрирует определение, имеет ли поток данных критический путь APP, и получение информации описания критического пути APP, а именно.
[0092] 401. Активацию счетчика обработки функции и счетчика частоты.
[0093] До активации системы ядра мультипроцессора, для счетчика обработки функции и счетчика частоты вручную устанавливаются пороги: порог длительности обработки и порог частоты обработки. Порог длительности обработки и порог частоты обработки устанавливают правило для задания критического пути APP.
[0094] 402. Прибавление единицы к значению счетчика обработки функции всякий раз, когда пакет потока данных, который должен быть обнаружен, обрабатывается текущим функциональным модулем.
[0095] 403. Обнаружение, превышает ли значение счетчика обработки функции порог длительности обработки.
[0096] Когда значение счетчика обработки функции больше порога длительности обработки, осуществляется этап 404. Когда значение счетчика обработки функции не превышает порог длительности обработки, обнаружение продолжается, если обработка потока данных, который должен быть обнаружен, не закончена, и значения счетчика обработки функции накапливаются.
[0097] 404. Прибавление единицы к значению счетчика частоты; сброс счетчика обработки функции.
[0098] 405. Обнаружение, превышает ли значение счетчика частоты порог частоты обработки.
[0100] Когда значение счетчика частоты больше порога частоты обработки, осуществляется этап 406. Когда значение счетчика частоты не превышает порог частоты обработки, обнаружение продолжается, если обработка потока данных, который должен быть обнаружен, не закончена.
[0101] 406. Получение информации описания критического пути APP для потока данных, которому принадлежит пакет, который соответствует значению счетчика частоты, где значение счетчика частоты больше порога частоты обработки.
[0102] Если значение счетчика обработки функции не превышает порог длительности обработки, или значение счетчика частоты не превышает порог частоты обработки, когда обработка потока данных, который должен быть обнаружен заканчивается, или если значение счетчика обработки функции не превышает порог длительности обработки, или значение счетчика частоты не превышает порог частоты обработки, когда заканчивается первый цикл обнаружения, можно считать, что критического пути APP не существует, и действ