СПОСОБ, УСТРОЙСТВО И СИСТЕМА ДЛЯ ДИСПЕТЧЕРИЗАЦИИ ЯДРА ПРОЦЕССОРА В СИСТЕМЕ ЯДРА МУЛЬТИПРОЦЕССОРА
METHOD, APPARATUS AND SYSTEM FOR SCHEDULING PROCESSOR CORE IN MULTIPROCESSOR CORE SYSTEM

Перекрестная ссылка на родственные заявки
[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 не существует, и действие для получения информации описания критического пути APP пропускается.
[0103] Нижеследующий пример используется для описания вышеупомянутых этапов 401-406. После того как пакет поступает в систему ядра мультипроцессора, он может обрабатываться множеством функциональных модулей в ядре процессора. Например, после того, как пакет потока данных flow1 поступает в систему ядра мультипроцессора, он по очереди обрабатывается функциональными модулями, function1, function2 и function3. Соответственно, соответствующий путь обработки flow1 представляет собой: function1 - function2 - function3. В то же время, предполагается, что: соответствующий путь обработки flow2 представляет собой: function1 - function3; и соответствующий путь обработки flow3 представляет собой function1 - function2 - function3 - function4. Если заранее установленный порог длительности обработки равен 3, и заранее установленный порог частоты обработки равен 1, можно определить, что значение соответствующего счетчика обработки функции равно 3, когда функциональный модуль заканчивает обработку flow1. Это значение не превышает порог длительности обработки. Поэтому критического пути APP не существует; аналогично, flow2 также не имеет критического пути APP. После обработки Flow3 функциональными модулями его соответствующего пути обработки, значение соответствующего счетчика обработки функции равно 4. При этом счетчик частоты осуществляет операцию прибавления единицы, и значение равно 1, и счетчик обработки функции со значением 4 сбрасывается. Затем, если пакет flow3 повторно поступает в систему и, после его обработки функциональными модулями, значение счетчика частоты становится равным 2. При этом для flow3, значение счетчика частоты (значение равно 2) больше порога частоты обработки. Критический путь APP существует для flow3. Соответственно, соответствующая информация критического пути APP получается для flow3 в системе ядра мультипроцессора. Если пакет flow3 повторно не поступает в систему, и не обрабатывается функциональными модулями, и значение его счетчика частоты не превышает порог частоты обработки, критического пути APP не существует для flow3, и действие для получения соответствующей информации описания критического пути APP для flow3 пропускается.
[0104] Согласно варианту осуществления настоящего изобретения, потоки данных отличаются пятеркой (исходного адреса, целевого адреса, исходного порта, целевого порта и протокола передачи потока данных).
[0105] Ядром процессора в системе ядра мультипроцессора согласно варианту осуществления настоящего изобретения может быть CPU, MCU или DSP, и т.д. В системе ядра мультипроцессора, многочисленные ядра процессора одновременно переключают и диспетчеризуют свои собственные межъядерные и внутриядерные задачи.
[0106] Вариант осуществления настоящего изобретения предусматривает способ диспетчеризации ядра процессора в системе ядра мультипроцессора, где, путем получения первого параметра управления, второго параметра управления, третьего параметра управления и четвертого параметра управления в выполняющемся процессе системы ядра мультипроцессора, за счет реализации диспетчеризации нагрузки среди множества ядер процессора на основании первого параметра управления, второго параметра управления и третьего параметра управления, и за счет реализации переключения между режимом прерывания и режимом опроса единичного ядра процессора на основании четвертого параметра управления, можно удовлетворить потребность в обработке сетевого ввода/вывода в реальном времени в системе ядра мультипроцессора, что позволяет повысить эффективность всей системы ядра мультипроцессора. Диспетчеризация нагрузки, специально разработанная для среды ядра мультипроцессора, позволяет избежать проблемы, присущей традиционному режиму диспетчеризации конфигурации, приемлемый выбор диспетчеризации затруднен, что не позволяет полностью использовать эффективность и возможности ядра мультипроцессора. Кроме того, этот способ упрощает ручную конфигурацию сетевого ввода/вывода ядра мультипроцессора со стороны инженера или абонента, что повышает эффективность установки программного обеспечения на многоядерной платформе.
Вариант осуществления 3
[0107] Вариант осуществления настоящего изобретения предусматривает устройство для диспетчеризации ядра процессора в системе ядра мультипроцессора, как показано на фиг. 5, включающий в себя: блок 51 получения параметра управления, первый блок 52 обнаружения, блок 53 диспетчеризации переключения между ядрами и блок 54 диспетчеризации переключения внутри ядра.
[0108] Блок 51 получения параметра управления выполнен с возможностью получения, в выполняющемся процессе системы ядра мультипроцессора, первого параметра управления, второго параметра управления, третьего параметра управления и четвертого параметра управления.
[0109] Первый параметр управления относится к информации указания N потоков данных, и N потоков данных относятся к первым N потокам данных, полученным в первом цикле выборки путем сортировки потоков данных, которые содержат пакеты, обработанные системой ядра мультипроцессора, в порядке убывания, согласно количеству обработанных пакетов, содержащихся в каждом потоке данных, где N - положительное целое число. Информация указания N потоков данных может указывать, какие из N потоков данных указаны информацией указания.
[0110] Второй параметр управления относится к длительности внутренней передачи каждого потока данных в системе ядра мультипроцессора и длительности для обработки каждого потока данных ядром процессора в системе ядра мультипроцессора. Третий параметр управления относится к информации ядра процессора для ядра процессора с самым низким использованием. Четвертый параметр управления относится к информации описания критического пути APP каждого потока данных.
[0111] Первый блок 52 обнаружения выполнен с возможностью обнаружения, является ли поток данных, которому принадлежит текущий пакет, одним из N потоков данных на основании первого параметра управления.
[0112] Блок 53 диспетчеризации переключения между ядрами выполнен с возможностью: когда поток данных, которому принадлежит текущий пакет, не является одним из N потоков данных, перенос, на основании второго параметра управления и третьего параметра управления и согласно политике переключения между ядрами, пакета потока данных, который поступает в систему ядра мультипроцессора, на бездействующее ядро процессора для обработки.
[0113] Политика переключения между ядрами состоит в следующем: если длительность внутренней передачи пакета превышает длительность для обработки пакета ядром процессора, пакет обрабатывается ядром процессора с самым низким использованием, и если длительность для обработки пакета ядром процессора превышает длительность внутренней передачи пакета, пакет привязывается к назначенному ядру процессора для обработки.
[0114] Блок 54 диспетчеризации переключения внутри ядра выполнен с возможностью переключения ядра процессора, которое обрабатывает пакет в системе ядра мультипроцессора, между режимом прерывания и режимом опроса на основании четвертого параметра управления, и согласно политике переключения внутри ядра.
[0115] Политика переключения внутри ядра состоит в следующем: если общая служебная нагрузка опроса больше общей служебной нагрузки прерывания, ядро процессора входит в режим прерывания для обработки пакета, и если общая служебная нагрузка опроса меньше общей служебной нагрузки прерывания, ядро процессора входит в режим опроса для обработки пакета.
[0116] Бездействующее ядро процессора включает в себя ядро процессора с самым низким использованием и ядро процессора, использование ресурсов которого ниже определенного порога, где определенный порог может быть порогом, заранее установленным в системе, или динамически конфигурируемым порогом, по мере необходимости вводимым абонентом через интерфейс человеко-машинного взаимодействия.
[0117] Дополнительно, как показано на фиг. 6, блок 53 диспетчеризации переключения между ядрами, в частности, дополнительно включает в себя первый подблок 531 определения и первый подблок 532 диспетчеризации.
[0118] Первый подблок 531 определения выполнен с возможностью определения, на основании второго параметра управления, превышает ли длительность внутренней передачи потока данных, которому принадлежит текущий пакет в системе ядра мультипроцессора, длительность для обработки потока данных, которому принадлежит текущий пакет, ядром процессора в системе ядра мультипроцессора.
[0119] Первый подблок 532 диспетчеризации выполнен с возможностью распределения, на основании третьего параметра управления, текущего пакета на ядро процессора с самым низким использованием в системе ядра мультипроцессора, когда первый блок 52 обнаружения обнаруживает, что поток данных, которому принадлежит текущий пакет, не является одним из N потоков данных, и длительность внутренней передачи потока данных, которому принадлежит текущий пакет в системе ядра мультипроцессора, превышает длительность для обработки потока данных, которому принадлежит текущий пакет, ядром процессора в системе ядра мультипроцессора.
[0120] Дополнительно, как показано на фиг. 7, блок 53 диспетчеризации переключения между ядрами дополнительно включает в себя второй подблок 533 диспетчеризации, выполненный с возможностью передачи текущего пакета на ядро процессора, использование ресурсов которого ниже первого порога, и связывания потока данных, которому принадлежит текущий пакет, с ядром процессора, использование ресурсов которого ниже первого порога, когда первый блок 52 обнаружения обнаруживает, что поток данных, которому принадлежит текущий пакет, является одним из N потоков данных, или первый подблок 531 определения определяет, что длительность внутренней передачи потока данных, которому принадлежит текущий пакет в системе ядра мультипроцессора, не превышает длительность для обработки потока данных, которому принадлежит текущий пакет, ядром процессора в системе ядра мультипроцессора, так что, когда пакет потока данных, которому принадлежит текущий пакет, поступает в систему ядра мультипроцессора, он обрабатывается ядром процессора, использование ресурсов которого ниже первого порога.
[0121] Первый порог, согласно варианту осуществления настоящего изобретения, можно устанавливать на основании сценария фактического приложения.
[0122] Кроме того, как показано на фиг. 8, блок 54 диспетчеризации переключения внутри ядра дополнительно включает в себя: второй подблок 545 обнаружения, третий подблок 546 обнаружения, подблок 547 обнаружения опроса, подблок 548 получения служебной нагрузки опроса, подблок 549 получения служебной нагрузки прерывания, третий подблок 5410 диспетчеризации и четвертый подблок 5411 диспетчеризации.
[0123] Второй подблок 545 обнаружения выполнен с возможностью обнаружения, в ходе инициализации системы ядра мультипроцессора, служебной нагрузки единичного прерывания для обработки каждого потока данных в режиме прерывания и обнаружения служебной нагрузки единичного опроса для обработки каждого потока данных в режиме опроса.
[0124] Третий подблок 546 обнаружения выполнен с возможностью обнаружения, на основании информации описания критического пути APP каждого потока данных, имеет ли поток данных, которому принадлежит текущий пакет, соответствующий критический путь APP.
[0125] Подблок 547 обнаружения опроса выполнен с возможностью обнаружения времен опроса в первом цикле измерения, когда поток данных, которому принадлежит текущий пакет, имеет соответствующий критический путь APP, и ядро процессора, которое обрабатывает текущий пакет, находится в режиме опроса;
[0126] Первый цикл измерений заранее устанавливается по мере необходимости. Следует убедиться в том, что в первом цикле измерения частота обработки пакетов ядром процессора находится в сравнительно стабильном состоянии.
[0127] Подблок 548 получения служебной нагрузки опроса выполнен с возможностью получения общей служебной нагрузки опроса на основании времен опроса и служебной нагрузки единичного опроса.
[0128] Подблок 549 получения служебной нагрузки прерывания выполнен с возможностью получения общей служебной нагрузки прерывания на основании прогнозируемого порога времен прерывания и служебной нагрузки единичного прерывания.
[0129] Третий подблок 5410 диспетчеризации выполнен с возможностью переключения ядра процессора, которое обрабатывает текущий пакет, из режима опроса в режим прерывания, когда общая служебная нагрузка опроса больше общей служебной нагрузки прерывания.
[0130] Четвертый подблок 5411 диспетчеризации выполнен с возможностью поддержания режима опроса ядра процессора, которое обрабатывает текущий пакет, когда общая служебная нагрузка опроса не превышает общей служебной нагрузки прерывания.
[0131] Дополнительно, как показано на фиг. 9, блок 54 диспетчеризации переключения внутри ядра дополнительно включает в себя: подблок 5412 обнаружения прерывания, выполненный с возможностью обнаружения времен прерывания во втором цикле измерения, когда поток данных, которому принадлежит текущий пакет, имеет соответствующий критический путь APP, и ядро процессора, которое обрабатывает текущий пакет, находится в режиме прерывания.
[0132] Второй цикл измерений заранее устанавливается по мере необходимости. Следует убедиться в том, что во втором цикле измерения частота обработки пакетов ядром процессора находится в сравнительно стабильном состоянии. Длительность второго цикла измерений может быть такой же, как у первого цикла измерений.
[0133] Подблок 549 получения служебной нагрузки прерывания дополнительно выполнен с возможностью получения общей служебной нагрузки прерывания на основании времен прерывания и служебной нагрузки единичного прерывания.
[0134] Подблок 548 получения служебной нагрузки опроса дополнительно выполнен с возможностью получения общей служебной нагрузки опроса на основании прогнозируемого порога времен опроса и служебной нагрузки единичного опроса.
[0135] Четвертый подблок 5411 диспетчеризации дополнительно выполнен с возможностью переключения ядра процессора, которое обрабатывает текущий пакет, из режима прерывания в режим опроса, когда общая служебная нагрузка прерывания больше общей служебной нагрузки опроса.
[0136] Третий подблок 5410 диспетчеризации дополнительно выполнен с возможностью поддержания режима прерывания ядра процессора, которое обрабатывает текущий пакет, когда общая служебная нагрузка прерывания не превышает общей служебной нагрузки опроса.
[0137] Вариант осуществления 2 настоящего изобретения демонстрирует, как устанавливать критический путь APP, который не описан здесь повторно.
[0138] Кроме того, как показано на фиг. 10, блок 51 получения параметра управления включает в себя: блок 55 получения первого параметра управления, блок 56 получения второго параметра управления, блок 57 получения третьего параметра управления и блок 58 получения четвертого параметра управления.
[0139] Блок 55 получения первого параметра управления выполнен с возможностью получения пакета, обработанного системой ядра мультипроцессора в первом цикле выборки; сортировки количества пакетов, обработанных системой ядра мультипроцессора, в порядке убывания и определения, на основании соотношения между пакетом, обработанным системой ядра мультипроцессора, и потоком данных, которому принадлежит пакет, потоков данных, содержащих первые N пакетов, согласно вышеупомянутой последовательности.
[0140] Блок 56 получения второго параметра управления выполнен с возможностью получения, в выполняющемся процессе системы ядра мультипроцессора, второго параметра управления, где второй параметр управления относится к длительности внутренней передачи каждого потока данных в системе ядра мультипроцессора и длительности для обработки каждого потока данных ядром процессора в системе ядра мультипроцессора.
[0141] Получение второго параметра управления может включать в себя следующие этапы: для пакетов разных потоков данных, установку временных меток, когда пакет поступает в систему ядра мультипроцессора и когда он покидает систему ядра мультипроцессора, для получения длительности внутренней передачи пакета в системе ядра мультипроцессора; с другой стороны, запись времени, когда ядро процессора начинает обработку и заканчивает обработку пакета, для получения длительности обработки пакета ядром процессора. В фактическом приложении, соответственно, получаются длительности внутренней передачи множества пакетов потока данных и длительности соответствующей обработки множества пакетов ядром процессора. Средние арифметические длительностей внутренней передачи и длительностей обработки множества пакетов ядром процессора вычисляются, соответственно, как длительность внутренней передачи каждого потока данных в системе ядра мультипроцессора и длительность для обработки каждого потока данных ядром процессора. Потоки данных, требующие больше времени на обработку ядром процессора, привязываются к ядру процессора. Это позволяет избегать чрезмерных переключений между ядрами и позволяет полностью использовать вычислительные возможности ядра процессора для повышения эффективности обработки. Потоки данных с увеличенными длительностями внутренней передачи распределяются на ядро процессора с низким использованием для ослабления давления сетевой обработки.
[0142] Блок 57 получения третьего параметра управления выполнен с возможностью получения, в выполняющемся процессе системы ядра мультипроцессора, третьего параметра управления, где третий параметр управления относится к информации ядра процессора для ядра процессора с самым низким использованием.
[0143] Получение третьего параметра управления может включать в себя следующие этапы: постановку только такой задачи, уровень приоритета которой выше, чем уровень приоритета состояния бездействия в системе ядра мультипроцессора, и регулярную проверку, в каком ядре процессора находится эта задача, и это ядро процессора рассматривается как ядро процессора с самым низким использованием.
[0144] Блок 58 получения четвертого параметра управления выполнен с возможностью получения информации описания критического пути APP потока данных, который должен быть обнаружен, когда длительность обработки и частота обработки пакета потока данных, который должен быть обнаружен в системе ядра мультипроцессора превышают порог длительности обработки и порог частоты обработки.
[0145] Дополнительно, как показано на фиг. 11a, блок 55 получения первого параметра управления включает в себя: подблок 551 получения информации пакета, подблок 552 определения потока данных и подблок 553 получения первого параметра управления.
[0146] Подблок 551 получения информации пакета выполнен с возможностью получения информации на пакете, обработанном в системе ядра мультипроцессора в первом цикле выборки.
[0147] Подблок 552 определения потока данных выполнен с возможностью определения соотношения между пакетом, обработанным системой ядра мультипроцессора, и потоком данных, которому принадлежит пакет.
[0148] Подблок 553 получения первого параметра управления выполнен с возможностью сортировки количества пакетов, обработанных системой ядра мультипроцессора, в порядке убывания и определения, на основании соотношения между пакетом, обработанным системой ядра мультипроцессора, и потоком данных, которому принадлежит пакет, потоков данных, содержащих первые N пакетов, согласно вышеупомянутой последовательности.
[0149] Кроме того, как показано на фиг. 11b, блок 58 получения четвертого параметра управления включает в себя: подблок 584 обнаружения порога и подблок 585 получения четвертого параметра управления.
[0150] Подблок 584 обнаружения порога выполнен с возможностью обнаружения, в первом цикле обнаружения, превышают ли длительность обработки и частота обработки пакета потока данных, который должен быть обнаружен, порог длительности обработки и порог частоты обработки.
[0151] Подблок 585 получения четвертого параметра управления выполнен с возможностью получения информации описания критического пути APP потока данных, который должен быть обнаружен, когда длительность обработки и частота обработки пакета потока данных, который должен быть обнаружен в системе ядра мультипроцессора, превышают порог длительности обработки и порог частоты обработки, где информация описания критического пути APP указывает, что поток данных, который должен быть обнаружен, имеет критический путь APP.
[0152] Согласно варианту осуществления настоящего изобретения, потоки данных отличаются пятеркой (исходного адреса, целевого адреса, исходного порта, целевого порта и протокола передачи потока данных).
[0153] Ядром процессора в системе ядра мультипроцессора согласно варианту осуществления настоящего изобретения может быть CPU, MCU или DSP, и т.д. В системе ядра мультипроцессора, многочисленные ядра процессора одновременно переключают и диспетчеризуют свои собственные межъядерные и внутриядерные задачи.
[0154] Следует отметить, что детали реализации устройства для диспетчеризации ядра процессора в системе ядра мультипроцессора согласно варианту осуществления настоящего изобретения можно найти в описании вышеупомянутых вариантов осуществления, которые не описаны здесь повторно.
[0155] Вариант осуществления настоящего изобретения предусматривает устройство для диспетчеризации ядра процессора в системе ядра мультипроцессора, где, путем получения первого параметра управления, второго параметра управления, третьего параметра управления и четвертого параметра управления в выполняющемся процессе системы ядра мультипроцессора, за счет реализации диспетчеризации нагрузки среди множества ядер процессора на основании первого параметра управления, второго параметра управления и третьего параметра управления, и за счет реализации переключения между режимом прерывания и режимом опроса единичного ядра процессора на основании четвертого параметра управления, можно удовлетворить потребность в обработке сетевого ввода/вывода в реальном времени в системе ядра мультипроцессора, что позволяет повысить эффективность всей системы ядра мультипроцессора. Диспетчеризация нагрузки, специально разработанная для среды ядра мультипроцессора, позволяет избежать проблемы, присущей традиционному режиму диспетчеризации конфигурации, приемлемый выбор диспетчеризации затруднен, что не позволяет полностью использовать эффективность и возможности ядра мультипроцессора. Кроме того, этот способ упрощает ручную конфигурацию сетевого ввода/вывода ядра мультипроцессора со стороны инженера или абонента, что повышает эффективность установки программного обеспечения на многоядерной платформе.
Вариант осуществления 4
[0156] Вариант осуществления настоящего изобретения также предусматривает компьютерную систему, показанную на фиг. 12, включающую в себя:
шину 1201;
ядро мультипроцессора, соединенное с шиной 1202; и
память, соединенную с шиной 1203, где
ядро 1202 мультипроцессора включает в себя любое из устройств согласно варианту осуществления 3.
[0157] Согласно фиг. 12, ядро 1202 мультипроцессора включает в себя блок 1204 получения параметра управления, первый блок 1205 обнаружения, блок 1206 диспетчеризации переключения между ядрами и блок 1207 диспетчеризации переключения внутри ядра.
[0158] Вариант осуществления настоящего изобретения предусматривает компьютерную систему, где, путем получения первого параметра управления, второго параметра управления, третьего параметра управления и четвертого параметра управления в выполняющемся процессе компьютерной системы, сформированной ядром мультипроцессора, за счет реализации диспетчеризации нагрузки среди множества ядер процессора на основании первого параметра управления, второго параметра управления и третьего параметра управления, и за счет реализации переключения между режимом прерывания и режимом опроса единичного ядра процессора на основании четвертого параметра управления, можно удовлетворить потребность в обработке сетевого ввода/вывода в реальном времени в системе ядра мультипроцессора, таким образом, можно повысить эффективность всей компьютерной системы. Диспетчеризация нагрузки, специально разработанная для среды ядра мультипроцессора, позволяет избежать проблемы, присущей традиционному режиму диспетчеризации конфигурации, приемлемый выбор диспетчеризации затруднен, что не позволяет полностью использовать эффективность и возможности ядра мультипроцессора. Кроме того, этот способ упрощает ручную конфигурацию сетевого ввода/вывода ядра мультипроцессора со стороны инженера или абонента, что повышает эффективность установки программного обеспечения на многоядерной платформе.
Вариант осуществления 5
[0159] Вариант осуществления настоящего изобретения предусматривает компьютерную систему, показанную на фиг. 13, включающую в себя:
шину;
ядро мультипроцессора, соединенное с шиной; и
память, соединенную с шиной, где
вызывая выполнение инструкции в памяти 1303 через шину 1301, ядро 1302 мультипроцессора выполнено с возможностью: получения первого параметра управления, второго параметра управления, третьего параметра управления и четвертого параметра управления на основании данных, вызванных из памяти 1303, и память 1303 может представлять собой память, устройство жесткого диска или флэш-память (флэш-память), где первый параметр управления относится к информации указания N потоков данных, и N потоков данных относятся к первым N потокам данных, полученным в первом цикле выборки путем сортировки потоков данных, которые содержат пакеты, обработанные системой ядра мультипроцессора, в порядке убывания, согласно количеству обработанных пакетов, содержащихся в каждом потоке данных, где N - положительное целое число; второй параметр управления относится к длительности внутренней передачи каждого потока данных в системе ядра мультипроцессора и длительности для обработки каждого потока данных ядром процессора в системе ядра мультипроцессора; третий параметр управления относится к информации ядра процессора для ядра процессора с самым низким использованием; и четвертый параметр управления относится к информации описания критического пути APP каждого потока данных.
[0160] Ядро 1302 мультипроцессора дополнительно выполнено с возможностью обнаружения, является ли поток данных, которому принадлежит текущий пакет, одним из N потоков данных на основании первого параметра управления.
[0161] Ядро 1302 мультипроцессора дополнительно выполнено с возможностью: когда поток данных, которому принадлежит текущий пакет, не является одним из N потоков данных, переноса, на основании второго параметра управления и третьего параметра управления и согласно политике переключения между ядрами, пакета потока данных, который поступает в систему ядра мультипроцессора, на бездействующее ядро процессора для обработки, где политика переключения между ядрами состоит в следующем: если длительность внутренней передачи пакета превышает длительность для обработки пакета ядром процессора, пакет обрабатывается ядром процессора с самым низким использованием, и если длительность для обработки пакета ядром процессора превышает длительность внутренней передачи пакета, пакет привязывается к назначенному ядру процессора для обработки.
[0162] Ядро 1302 мультипроцессора дополнительно выполнено с возможностью переключения ядра процессора, которое обрабатывает пакет в компьютерной системе, сформированной ядром 1302 мультипроцессора, между режимом прерывания и режимом опроса на основании четвертого параметра управления и согласно политике переключения внутри ядра, где политика переключения внутри ядра состоит в следующем: если общая служебная нагрузка опроса больше общей служебной нагрузки прерывания, ядро процессора входит в режим прерывания для обработки пакета, и если общая служебная нагрузка опроса меньше общей служебной нагрузки прерывания, ядро процессора входит в режим опроса для обработки пакета.
[0163] Ядро мультипроцессора согласно варианту осуществления настоящего изобретения может представлять собой ядро процессора в одноядерном процессоре или ядро процессора в многоядерном процессоре. Например, ядра множества процессоров могут быть инкапсулированы в структуру инкапсуляции, как показано на фиг. 13. В вышеупомянутой компьютерной системе, может быть множество структур инкапсуляции, и каждая структура инкапсуляция инкапсулирована множеством ядер процессора.
[0164] Вариант осуществления настоящего изобретения предусматривает компьютерную систему, где, путем получения первого параметра управления, второго параметра управления, третьего параметра управления и четвертого параметра управления в выполняющемся процессе компьютерной системы, сформированной ядром мультипроцессора, за счет реализации диспетчеризации нагрузки среди множества ядер процессора на основании первого параметра управления, второго параметра управления и третьего параметра управления, и за счет реализации переключения между режимом прерывания и режимом опроса единичного ядра процессора на основании четвертого параметра управления, можно удовлетворить потребность в обработке сетевого ввода/вывода в реальном времени в компьютерной системе, сформированной ядром мультипроцессора, таким образом, можно повысить эффективность всей компьютерной системы. Диспетчеризация нагрузки, специально разработанная для среды ядра мультипроцессора, позволяет избежать проблемы, присущей традиционному режиму диспетчеризации конфигурации, приемлемый выбор диспетчеризации затруднен, что не позволяет полностью использовать эффективность и возможности ядра мультипроцессора. Кроме того, этот способ упрощает ручную конфигурацию сетевого ввода/вывода ядра мультипроцессора со стороны инженера или абонента, что повышает эффективность установки программного обеспечения на многоядерной платформе.
[0165] Специалисты в данной области техники должны понять, что все или часть этапов способа согласно вариантам осуществления настоящего изобретения можно реализовать посредством программы, управляющей соответствующим оборудованием. Вышеупомянутая программа может храниться на считываемом компьютером носителе данных. При выполнении программы осуществляются предыдущие этапы, включенные в варианты осуществления способа; и вышеупомянутый носитель данных может быть любым носителем, где можно хранить программные коды, например, ПЗУ, ОЗУ, магнитный диск или оптический диск.
[0166] Следует отметить, что выражения "первый", "второй", "третий" и "четвертый", используемые в описании вариантов осуществления не призваны ограничивать последовательность. Напротив, они используются только для различения.
[0167] Вышеупомянутые описания являются лишь конкретными вариантами осуществления настоящего изобретения, но не призваны ограничивать объем защиты настоящего изобретения. Специалист в данной области техники без труда сможет внести любые изменения и замены в технический объем, раскрытый в настоящем изобретении, в пределах объема защиты настоящего изобретения. Поэтому объем защиты настоящего изобретения определяется объемом защиты формулы изобретения.