RU2495533C2 - Способ и система для планирования выбора данных для передачи в сети передачи данных - Google Patents
Способ и система для планирования выбора данных для передачи в сети передачи данных Download PDFInfo
- Publication number
- RU2495533C2 RU2495533C2 RU2011119226/08A RU2011119226A RU2495533C2 RU 2495533 C2 RU2495533 C2 RU 2495533C2 RU 2011119226/08 A RU2011119226/08 A RU 2011119226/08A RU 2011119226 A RU2011119226 A RU 2011119226A RU 2495533 C2 RU2495533 C2 RU 2495533C2
- Authority
- RU
- Russia
- Prior art keywords
- queue
- child
- loans
- credit
- transfer
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/629—Ensuring fair share of resources, e.g. weighted fair queuing [WFQ]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/52—Queue scheduling by attributing bandwidth to queues
- H04L47/527—Quantum based scheduling, e.g. credit or deficit based scheduling or token bank
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/622—Queue service order
- H04L47/623—Weighted service order
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Computer And Data Communications (AREA)
Abstract
Изобретение относится к планированию выбора данных для передачи в сети передачи данных. Техническим результатом является улучшение организации очередей с использованием весовых коэффициентов на основе обратного управления кредитами, которые могут использоваться при наличии трафика с регулируемой скоростью обмена. Система для планирования выбора данных для передачи в сети передачи данных включает в себя множество дочерних элементов, а также распределитель кредитов и селектор передачи. Селектор передачи коммуникативно связан с распределителем кредитов, при этом каждый кредит может использоваться для передачи данных. Распределитель кредитов работает с целью предоставления кредитов одному из допустимых дочерних элементов и дочерних элементов, имеющих отрицательный счетчик кредита. Распределитель кредитов, кроме того, работает с целью поддерживать кредитный баланс, представляющий имеющийся суммарный объем нераспределенных кредитов, и вычитает предоставленные кредиты из кредитного баланса. Селектор передачи работает с целью выбрать один допустимый и работоспособный дочерний элемент для извлечения из очереди и добавлять кредиты к кредитному балансу в соответствии с объемом данных, выбранным для извлечения из очереди. 3 н. и 16 з.п. ф-лы, 13 ил.
Description
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Настоящее изобретение в общем относится к способу и системе для справедливой организации очередей с использованием весовых коэффициентов при наличии трафика с регулируемой скоростью обмена и, более конкретно, к способу и системе, обеспечивающим справедливую организацию очередей с использованием весовых коэффициентов для трафика, управляемого на основе кадров, и позволяющим включать ограничения скорости обмена и гарантированную скорость обмена для дочерних элементов, конкурирующих в планировщике справедливой организации очередей с использованием весовых коэффициентов.
ПРЕДПОСЫЛКИ СОЗДАНИЯ ИЗОБРЕТЕНИЯ
Каждый компьютер и каждая сеть передачи данных, осуществляющие передачу пакетов данных, должны предусматривать планирование, чтобы обеспечить продвижение трафика по сети с определенной скоростью. В любой заданный момент времени в сети могут существовать сотни тысяч и даже миллионы соединений, содержащих очереди данных, которые ожидают передачи по сети. Требуется некоторый механизм планирования, позволяющий элементам сети обрабатывать эти очереди данных справедливым и своевременным образом.
Обычно планировщики взаимодействуют с очередями данных для планирования передачи данных по сети. Планировщики могут быть иерархическими - выбранный дочерний элемент может также представлять собой планировщик, который должен осуществлять выбор среди своих дочерних элементов. Планировщик определяет передачу данных из допустимых очередей данных или от других допустимых дочерних планировщиков, располагающих доступными данными. В общем случае отдельный процесс помещает данные в очередь, однако упомянутый отдельный процесс связан с планированием в том смысле, что он объявляет о доступности данных или допустимости дочернего элемента. Планировщики периодически или по запросу выбирают дочерний процесс с доступными данными, из которых следует осуществлять передачу данных. Ииерархический планировщик организует передачу данных из выбранной очереди.
На ФИГ.1 показана система передачи данных 10, соответствующая традиционной технологии, система, которая включает в себя процесс планирования 12, где маршрут передачи данных содержит ряд очередей 14а, 14b, 14с, 14d и 14е (которые все вместе обозначены как очередь данных 14) и мультиплексоры 16а, 16b (которые все вместе обозначены как мультиплексор 16). Несмотря на то, что мультиплексор показан на ФИГ.1 в виде физического устройства, в обычной масштабируемой реализации мультиплексоры физически не существуют, а подразумеваются выбором планировщика очереди данных 14 для передачи. Процесс планирования 12 может выбирать из любой очереди данных 14, располагающей доступными данными ("DA" - «ДД»); однако в силу иерархического характера реализации процесс планирования 12 должен запрашивать у дочернего планировщика 18 для выбора из очереди данных 14d и очереди данных 14е. Затем дочерний планировщик 18 выбирает подходящую очередь данных 14d, 14е. В этом примере процесс планирования 12 может выбрать очереди данных 14а, 14b и 14с непосредственно.
Один из процессов справедливой организации очередей с использованием весовых коэффициентов раскрыт в патенте США №7.373.420, выданном Lyon (далее «патент 420»), полное содержание которого включено здесь по ссылке. На ФИГ.2 показан процесс справедливой организации очередей с использованием весовых коэффициентов в соответствии с «патентом 420», который включает в себя систему обратного управления кредитами, где для определения очереди, которую следует «кредитовать», используются назначенные весовые коэффициенты. В принципе, планировщик 20 для справедливой организации очередей с использованием весовых коэффициентов на основе обратного управления кредитами ("WFQ-ICM") включает в себя два дополняющих друг друга процесса: распределитель кредитов WFQ 22 и селектор передачи 24. Селектор передачи 24 обычно функционирует циклическим образом, где каждый дочерний процесс, располагающий данными и имеющий положительный кредит, получает право на передачу данных по очереди.
Процесс кредитования 22 предоставляет кредиты дочерним элементам, текущие кредиты которых меньше, чем объем доступных данных ("ADA") для этого дочернего элемента. Объем кредитов, которые каждый дочерний элемент набрал в любой заданный момент, отслеживается в базе данных кредитного состояния дочерних элементов 26. Объем кредитов каждого дочернего элемента никогда не превышает ADA этого дочернего элемента. В любой момент времени дочерний элемент обладает кредитом меньшим, чем его ADA, и включается в распределитель кредитов 22, когда конкурирует за дополнительный кредит.
Селектор передачи 24 выбирает для передачи данных дочерние элементы с положительным счетчиком кредита. Когда дочерний элемент передает данные, кредиты вычитаются из его текущего объема кредита в базе данных кредитного состояния дочерних элементов 26 и возвращаются в распределитель кредитов 22 для повторного распределения другим дочерним элементам, обладающим ADA большим, чем количество кредитов. Распределитель кредитов 22 предоставляет кредиты с той же скоростью, с какой дочерние элементы тратят кредиты (то есть, остаток отсутствует), следовательно, ключевым требованием планировщика WFQ-ICM 20 является то, что системе требуется точно знать в каждый момент времени объем данных каждого дочернего элемента, доступный для передачи. Это требование предотвращает ситуации, когда дочерний элемент лишается права передавать данные, хотя они у него имеются, реализуя процессы перекрытия для определения права на передачу на основе практически возможной скорости передачи. В принципе, ограничения на скорость передачи могут заставить дочерний процесс прекратить передачу или оказаться без данных, доступных для родительского планировщика. Это ограничение также ведет к значительному повышению нагрузки на иерархические планировщики, когда ADA включает в себя все последующие очереди вне зависимости от количества уровней иерархии - требуется эффективное связывание процессов планирования между уровнями планирования.
Таким образом, необходимы способ, система и устройство для справедливой организации очередей с использованием весовых коэффициентов на основе обратного управления кредитами, которые могут использоваться при наличии графика с регулируемой скоростью обмена.
КРАТКОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
Настоящее изобретение предоставляет способ и систему для передачи в сети передачи данных на основе допустимости дочерних элементов и распределения кредитов. В общем случае планировщик для справедливой организации очередей с использованием весовых коэффициентов на основе обратного управления кредитами может использоваться при наличии трафика с регулируемой скоростью обмена, позволяя включать ограничения скорости обмена и гарантированную скорость обмена для дочерних элементов, конкурирующих в планировщике справедливой организации очередей с использованием весовых коэффициентов.
В соответствии с одним из аспектов настоящего изобретения, система для планирования передачи данных в сети передачи данных включает в себя распределитель кредитов и селектор передачи. Сеть передачи данных включает в себя множество дочерних элементов. Селектор передачи связан с распределителем кредитов. Распределитель кредитов функционирует с целью предоставления кредитов, по меньшей мере, одному допустимому дочернему элементу и дочернему элементу, имеющему отрицательный счетчик кредита. Каждый кредит может использоваться для передачи данных. Кроме того, распределитель кредитов функционирует с целью поддержания кредитного баланса, представляющего собой суммарный объем нераспределенных кредитов, поддерживает справедливое соотношение предоставленных кредитов между дочерними элементами и вычитает предоставленные кредиты из кредитного баланса. Селектор передачи функционирует с целью выбора, по меньшей мере, одного допустимого и работоспособного дочернего элемента для извлечения из очереди, настройки выбора допустимого и работоспособного дочернего элемента на выбор допустимого и работоспособного дочернего элемента с положительной величиной кредита и добавления кредитов к кредитному балансу в соответствии с объемом данных, выбранным для извлечения из очереди.
В соответствии с еще одним аспектом настоящего изобретения, предоставляется способ распределения кредитов дочерним элементам в сети передачи данных. Каждый кредит может быть использован для передачи данных. Кредиты предоставляются, по меньшей мере, одному допустимому, работоспособному дочернему элементу и дочернему элементу, имеющему отрицательный счетчик кредитов. Поддерживается кредитный баланс, представляющий суммарный объем нераспределенных кредитов, а предоставленные кредиты вычитаются из кредитного баланса.
В соответствии с еще одним аспектом настоящего изобретения, предоставляется способ планирования передачи данных в сети передачи данных. Сеть передачи данных включает в себя множество дочерних элементов. Создается множество очередей управления передачей данных. Каждая очередь управления передачей данных способна содержать, по меньшей мере, один идентификатор соответствующего допустимого дочернего элемента и обладает уровнем приоритета, который определяется в соответствии с требованиями управления кредитами. Каждый допустимый дочерний элемент связан с одной из множества очередей управления передачей данных. Каждый допустимый дочерний элемент обладает состоянием кредита, которое отвечает требованию к счетчику кредита для связанной с ним очереди управления передачей данных. По меньшей мере, один допустимый дочерний элемент выбирается для извлечения из очереди согласно уровню приоритета очереди управления передачей данных, соответствующей упомянутому допустимому дочернему элементу. К кредитному балансу добавляются кредиты, соответствующие объему данных, извлекаемому из очереди. Каждый допустимый и работоспособный дочерний элемент представлен в одной из очередей управления передачей данных.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Более полное понимание настоящего изобретения, его преимуществ и свойств, может быть достигнуто с использованием нижеследующего подробного описания, которое рассматривается вместе с прилагаемыми чертежами, где:
На ФИГ.1 показана блок-схема примерного процесса планирования передачи данных в соответствии с традиционной технологией;
На ФИГ.2 показана блок-схема примерного процесса планирования передачи данных на основе справедливой организации очередей с использованием весовых коэффициентов и обратного управления кредитами;
На ФИГ.3 показана блок-схема примерного процесса планирования передачи данных на основе справедливой организации очередей с использованием весовых коэффициентов и обратного управления кредитами, сконструированного в соответствии с принципами настоящего изобретения;
На ФИГ.4 показана блок-схема примерного распределителя кредитов, сконструированного в соответствии с принципами настоящего изобретения;
На ФИГ.5 показана функциональная схема примерного процесса работы распределителя кредитов в соответствии с принципами настоящего изобретения;
На ФИГ.6 показана функциональная схема примерного процесса кредитования в ответ на изменения допустимости дочерних элементов в соответствии с принципами настоящего изобретения;
На ФИГ.7 показана блок-схема примерного одномерного циклического процесса планирования с использованием весовых коэффициентов и чередования для дочерних элементов с большими весами в соответствии с традиционной технологией;
На ФИГ.8 показана блок-схема примерного двумерного циклического процесса планирования с использованием весовых коэффициентов и чередования для дочерних элементов с большими весами, сконструированного в соответствии с принципами настоящего изобретения;
На ФИГ.9 показана блок-схема примерного двумерного циклического процесса планирования с использованием весовых коэффициентов и чередования, имеющего четыре уровня приоритетов, сконструированного в соответствии с принципами настоящего изобретения;
На ФИГ.10 показана блок-схема примерного базового селектора передачи, сконструированного в соответствии с принципами настоящего изобретения;
На ФИГ.11 показана блок-схема примерного усовершенствованного селектора передачи, сконструированного в соответствии с принципами настоящего изобретения;
На ФИГ.12 показана функциональная схема примерного процесса выбора дочерних элементов при справедливой организации очередей с использованием весовых коэффициентов в соответствии с принципами настоящего изобретения; и
На ФИГ.13 показана функциональная схема примерного процесса выбора в ответ на увеличение кредита и изменения допустимости дочерних элементов в соответствии с принципами настоящего изобретения.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
Прежде, чем подробно описывать примерные варианты осуществления, соответствующие настоящему изобретению, отметим, что варианты осуществления состоят прежде всего в сочетании аппаратных компонентов и этапов обработки, связанных с реализацией системы и способа для обеспечения справедливой организации очередей в условиях трафик, управляемого на основе кадров, которые обеспечивают включение ограничения скорости обмена и гарантированную скорость обмена для дочерних элементов, конкурирующих в планировщике справедливой организации очередей с использованием весовых коэффициентов. Соответственно, компоненты системы и способа там, где это обоснованно, представлены на чертежах принятыми обозначениями, при этом показаны только те подробности, которые важны для понимания вариантов осуществления настоящего изобретения, чтобы не загромождать описание подробностями, которые и так понятны рядовым специалистам в области, к которой относится изобретение.
Такие связанные между собой термины, как «первый» и «второй», «нижний» и «верхний», и т.п., могут использоваться здесь исключительно для того, чтобы отличить одну сущность или элемент от другой сущности или элемента, не требуя и не подразумевая обязательного наличия между такими сущностями или элементами физического либо логического соотношения или порядка. «Корневой» узел обозначает узел высшего уровня в «дереве» справедливой организации очередей или узел высшего уровня в иерархическом «дереве» справедливой организации очередей. «Наследник» определенного узла представляет собой любой узел, находящийся ниже и связанный с этим определенным узлом. Аналогично, «предок» определенного узла представляет собой любой узел, находящийся выше и связанный с этим определенным узлом.. Термины «дочерний элемент», «дочерний узел» или «дочерние элементы» относятся к любым прямым наследникам узла в «дереве» планирования. В общем случае, при обсуждении отношений с определенным узлом термин «дочерний элемент» относится к узлу (узлу или очереди планировщика), расположенному на один уровень ниже рассматриваемого узла. Кроме того, любой узел, являющийся наследником узла более высокого уровня, может называться «дочерним узлом» или «дочерним элементом».
Один из вариантов осуществления настоящего изобретения предоставляет систему, способ и устройство для справедливой организации очередей с обратным управлением кредитами, которые могут использоваться при наличии трафика с регулируемой скоростью обмена. Система и способ обеспечивают включение ограничения скорости обмена и гарантированную скорость обмена для дочерних элементов для дочерних элементов, конкурирующих в планировщике справедливой организации очередей с использованием весовых коэффициентов. Механизм кредитного баланса обеспечивает сохранение кредитов в случае, когда дочерние элементы возвращают неиспользованные кредиты. До этого неиспользованные кредиты предоставлялись системой распределения кредитов без информации о том, как долго этот дочерний элемент мог бы оставаться в пределах своих ограничений скорости обмена и продолжать обладать данными для передачи.
Кроме того, в отличие от традиционной технологии, варианты осуществления настоящего изобретения позволяют дочерним элементам менять свое состояние допустимости, тем самым, обеспечивая простое включение дочерних элементов с ограничениями скорости обмена.
На ФИГ.3 показаны примерный планировщик справедливой организации очередей 28 с усовершенствованным обратным управлением кредитами ("WFQ-ICM-Plus"), сконструированный в соответствии с принципами настоящего изобретения, который включает в себя селектор передачи 30, распределитель кредитов 32 и базу данных кредитного состояния дочерних элементов 34. Селектор передачи 30 выбирает дочерний элемент среди допустимых дочерних элементов для передачи данных. Отдельный процесс определения допустимости 36 решает, допустимо ли выбрать дочерний элемент для передачи данных. Подробное описание функционирования процесса определения допустимости 36 находится за рамками настоящего изобретения; к нему имеет отношение только то, что процесс определения допустимости 36 решает, какие дочерние элементы допустимо выбирать. В простейшем виде процесс определения допустимости представляет собой данные, присутствующие в дочернем элементе. В более сложном виде имеющиеся данные могут содержать ограничения скорости обмена на различных уровнях иерархии. Это приводит к отличиям в поведении от традиционной технологии, состоящим в том, что дочерние элементы с отрицательными кредитами могут быть выбраны для передачи селектором передачи 30. Кроме того, в вариантах осуществления изобретения становится возможным «отключение» ранее допустимого дочернего элемента другим процессом, что также невозможно в рамках традиционной технологии.
Распределитель кредитов 32 включает в себя кредитный баланс ("СВ") 38, который содержит все избыточные кредиты для системы. Распределитель кредитов 32 представляет собой процесс справедливого распределения с использованием весовых коэффициентов, который предоставляет кредиты из кредитного баланса 38 всем допустимым дочерним элементам и всем дочерним элементам, имеющим отрицательные кредиты. Распределитель кредитов 32 в каждый момент времени отслеживает объем кредитов, выданных каждому дочернему элементу, в базе данных кредитного состояния дочерних элементов 34.
В отличие от предшествовавших планировщиков WFQ-ICM, варианты осуществления настоящего изобретения имеют то преимущество, что они не требуют от системы точно знать, сколько имеется данных. Вместо этого распределитель кредитов 32 должен знать то, что дочерний элемент является «допустимым». Распределитель кредитов 32 может распределять кредиты любому допустимому дочернему элементу. Таким образом, вместе с вариантами осуществления настоящего изобретения могут свободно функционировать взаимовлияющие процессы, например, формирователь сигнала скорости обмена (rate shaper). Теоретически дочерний элемент может получить намного больший объем кредитов, чем объем данных, которым в настоящее время располагает дочерний элемент или который сможет передать в ближайшее время. Однако, если дочерний элемент переходит из «допустимых» в «недопустимые», все кредиты, которые этот дочерний элемент приобрел, снимаются и возвращаются в кредитный баланс 38.
Селектор передачи 30 выбирает допустимые дочерние элементы для передачи данных. В общем случае, выбор дочерних элементов предпочитает дочерние элементы с большими значениями счетчиков кредитов. Таким образом, более вероятно, что для передачи будет выбран дочерний элемент с большим положительным счетчиком кредита, чем дочерний элемент, имеющим малое положительное или даже отрицательное значение счетчика кредита. Когда дочерний элемент передает данные, кредиты вычитаются из его текущего объема кредита в базе данных кредитного состояния дочерних элементов 34 и возвращаются в кредитный баланс 38 для перераспределения другим допустимым дочерним элементам и дочерним элементам, имеющим отрицательный баланс.
Существующие планировщики WFQ-ICM не позволяют осуществлять передачу дочерним элементам с отрицательным счетчиком кредита, кроме случаев, когда надо завершить передачу кадра, начатую при положительном счетчике кредита. Однако традиционная технология не позволяет «отключать» или делать недопустимыми для передачи дочерние элементы после получения кредитов, она не нуждается в этой возможности.
На ФИГ.4 показана упрощенная реализация примерного распределителя кредитов 32. В общем случае циклический распределитель кредитов 40 распределяет кредиты допустимым и имеющим отрицательный кредит дочерним элементам с той же скоростью, с которой из планировщика 28 выходят передачи данных. Другими словами, возможности передачи из селектора передачи 30 инициируют возможности распределения кредитов для распределителя кредитов 32.
В течение цикла распределения кредитов каждый допустимый дочерний элемент и дочерний элемент с отрицательным кредитом получают несколько входов в цикле в соответствии со своими весовыми коэффициентами. Каждый дочерний элемент в цикле получает один кредит, когда достигает начала циклической ("RR") очереди распределения 42. Другими словами, один цикл RR предоставляет каждому дочернему элементу один «кредит». Таким образом, в течение полного цикла кредитования каждому дочернему элементу "i" (обозначаемому childi) предоставляется wi кредитов, где "wi" представляет собой значение весового коэффициента для childi. Количество циклов RR, необходимое для распределения W; кредитов каждому дочернему элементуi, равно wi. Цикл кредитования завершается, когда каждый дочерний элемент childi получает wi кредитов. Таким образом, длительность цикла кредитования задается дочерним элементом с наибольшим wi. Когда дочерний элемент получает полную величину своего веса в этом цикле, он временно помещается в очередь превышения весовых коэффициентов 44 для ожидания, и ему не распределяются кредиты до следующего цикла кредитования.
В существовавших до этого планировщиках WFQ-ICM распределение кредитов проходит точно на той же скорости, что и передача, поэтому никогда не бывает остатка кредитного баланса 38. Доступны для распределения те кредиты, которые возвращены из селектора передачи 30.
Напротив, варианты осуществления настоящего изобретения позволяют распределителю кредитов 32 поддерживать в случае надобности положительный кредитный баланс 32. Кредитный баланс 32 может стать очень большим из-за того, что ранее допустимые дочерние элементы, имея положительные кредиты, становятся недопустимыми. Чтобы компенсировать этот потенциально большой кредитный баланс кредитный баланс, распределителю кредитов 32 не требуется раздавать точно такое же количество кредитных байтов, приходящих от селектора передачи 30 (обозначенного как "N"), как байты, предоставляемые дочерним элементам (обозначенным как "М"). Таким образом, когда кредитный баланс 38 содержит излишние кредиты (то есть, СВ>0), распределитель кредитов 32 ускоряет распределение кредитов простым увеличением количества кредитов, предоставляемых за один полный цикл очереди распределения RR 42, так, что M>N. Другими словами, в течение цикла RR распределитель кредитов 32 распределяет М байтов кредита каждому дочернему элементу в порядке очереди. Все излишние кредиты могут переноситься на следующий цикл RR. С другой стороны, если кредитный баланс 38 при увеличении М обнуляется, частота распределения ("F") может быть увеличена так, чтобы M*F=N, тем самым, сохраняется возможность предоставления М байтов кредита каждому дочернему элементу до достижения конца цикла RR. Увеличение количества кредитов, предоставляемых в течение всего цикла RR, обеспечивает поддержание справедливости между дочерними элементами. Следует отметить несколько исключений в распределении увеличенного количества М байтов кредита: дочерние элементы, которые превысили бы свой вес после предоставления М байтов кредита, получают только остаток своего веса, а дочерним элементам, которые не являются допустимыми для передачи, но собирают кредит, чтобы вернуть его к нулевому значению, никогда не предоставляется больше кредитов, чем необходимо для возврата к нулевому значению кредита. Другие варианты осуществления распределителя кредитов - на основе управляющей очереди, вектора или других способов - также могут ускорить распределение кредитов путем увеличения «нормальной» скорости распределения кредитов принципиально аналогично описанному здесь способу.
На ФИГ.5 показана примерная функциональная схема, описывающая действия, выполняемые распределителем кредитов 32 в ответ на возможность распределить кредит. На ФИГ.5 распределитель кредитов 32 включается селектором передачи 30 один раз за N байтов переданных данных (этап S100), однако в другом варианте осуществления может присутствовать периодический триггер, решающий ту же задачу. Важно отметить, что в альтернативных вариантах осуществления настоящего изобретения распределитель кредитов 32 может обладать реальной информацией о суммарном количестве переданных байтов, чтобы кредиты могли распределяться группами или секциями по N байтов. Следует также отметить, что следующий процесс еще не учитывает изменений допустимости, однако вопросы допустимости принимаются в расчет ниже, см. ФИГ.5.
Если распределитель кредитов 32 находится не в начале цикла RR (этап S102), то есть, кредиты уже были распределены некоторым дочерним элементам в текущей очереди RR, процесс выбирает дочерний элемент childi в начале текущей очереди RR для того, чтобы распределять ему кредиты (этап S104). В этом случае используется предшествующее состояние величины предоставляемого кредита М. Однако, если распределитель кредитов 32 готов начать новый цикл RR (этап S102), то есть, предыдущий цикл RR был завершен, распределитель кредитов 32 принимает решение, нужно ли продолжать цикл распределения кредитов, либо следует начать совершенно новый цикл кредитования (этап S106). Если это начало цикла кредитования, то для планирования выбирается очередь RR (этап S108). До настоящего момента рассматривался только процесс планирования, поддерживающий лишь одну очередь RR, поэтому этап S108 только сбрасывает параметры планирования и снова начинает обработку всех дочерних элементов для очереди RR. Однако, в соответствии с нижеприведенным описанием для ФИГ.8, примерный вариант осуществления настоящего изобретения поддерживает несколько очередей RR, отражающих различные приоритеты дочерних элементов, в этом случае этап S108 мог бы выбрать для обработки другую очередь RR. Если это не начало цикла кредитования, то новой очереди RR не требуется.
Возвращаемся к блоку принятия решений S106, если цикл кредитования только начинается, распределитель кредитов 32 определяет, существует ли избыточный кредитный баланс (этап S110), в этом случае - больше кредитов, чем может произвести событие одной передачи (N). Если существует избыточный кредитный баланс, распределитель кредитов 32 входит в цикл ускоренного распределение кредитов (этап S112), где объем распределения кредитов (М) во время этого события распределение кредитов и оставшихся событий распределения кредитов в текущем цикле RR превышает кредиты, переданные между событиями распределения кредитов (N), то есть, M>N. В противном случае, если остаток кредитного баланса отсутствует (этап S114), объем кредитов, который должен быть распределен в течение этого события распределения кредитов и в течение остатка цикла RR, устанавливается равным объему кредитов, обычно передаваемому между событиями распределения кредитов, то есть, M=N (этап S114). Отметим, что другие варианты осуществления настоящего изобретения могут использовать другие пороги для N в блоке принятия решения S110, например, СВ>x байтов, где x - статическое или динамическое число, применяемое для введения гистерезиса в решение для ускорения распределения кредитов.
Распределение кредитов начинается с выбора дочернего элемента childi в начале текущей очереди RR (этап S104). Если кредитный баланс превышает или равен количеству кредитов, которое должно быть предоставлено каждому дочернему элементу за текущий цикл RR (этап S116), то есть, СВ>=М, дочернему элементу childi предоставляется наименьшее из его остаточного веса в цикле кредитования и количеству кредитов, которое должно быть предоставлено за цикл RR (этап S118), М. Объем кредитов, предоставленных дочернему элементу childi, вычитается из кредитного баланса (этап S120), а цикл RR переходит к следующему дочернему элементу в очереди RR (этап S122).
Возвращаемся к блоку принятия решений S116, если кредитный баланс превышает остаточный вес для дочернего элемента childi (этап S124), то дочернему элементу childi предоставляется его остаточный кредитный вес (этап S126). Объем кредитов, предоставленных дочернему элементу childi, вычитается из кредитного баланса (этап S120), и цикл RR переходит к следующему дочернему элементу в очереди RR (этап S122). Однако, если остаточный вес для дочернего элемента childi превышает кредитный баланс (этап S124), то кредиты не распределяются, и текущее событие распределения кредитов завершается, при этом дочерний элемент childi остается в начале очереди RR в ожидании следующего события распределения кредитов.
На ФИГ.6 показана примерная функциональная схема, описывающая действия, выполняемые распределителем кредитов 32 в ответ на изменения состояния допустимости дочернего элемента. Распределитель кредитов 32 обнаруживает изменение состояния допустимости дочернего элемента childi (этап S128). Изменения состояния допустимости могут объявляться отдельным процессом (внутри или вне планировщика), например, путем установки или очистки флага соответствующего дочернего элемента, передачи события или передачи сообщения. Если дочерний элемент childi перешел из недопустимого состояния в допустимое (этап S130, ветка «ДА»), при этом дочерний элемент childi уже находится в кредитной системе (этап S132, ветка «ДА»), распределитель кредитов 32 просто очищает флаг ожидания удаления для дочернего элемента childi (этап S134). Как описано ниже в связи с этапом S150, этот флаг ожидания удаления был установлен для запроса удаления дочернего элемента из распределителя кредитов 32, когда он возвращается в нормальное состояние. Дочерний элемент childi сохраняет способность получать кредиты в зависимости от своего веса и порядкового места в очереди RR. Однако, если дочерний элемент childi в настоящий момент находится вне кредитной системы (этап S132, ветка «НЕТ»), и он еще не получил кредитов, превышающих его вес weighti в цикле кредитования (этап S136, ветка «НЕТ»), то дочерний элемент childi помещается в конец очереди RR (этап S138) и будет получать кредиты в свою очередь в нынешнем цикле кредитования. Если дочерний элемент childi уже превысил свой вес weighti в текущем цикле кредитования (этап S136, ветка «ДА»), то дочерний элемент childi помещается в конец очереди превышения весов (этап S140) и не получит кредитов снова до начала следующего цикла кредитования.
Возвращаемся к блоку принятия решений S130, если осуществляющий переход дочерний элемент не является вновь допустимым дочерним элементом, то дочерний элемент переходит в состояние недопустимости. Если вновь недопустимый дочерний элемент childi в настоящий момент обладает положительным кредитом или не обладает кредитами (этап S142), то есть, creditsi>=0, все излишние кредиты возвращаются в кредитный баланс (этап S144), а счетчик кредита for дочернего элемента childi обнуляется (этап S146). Затем дочерний элемент childi удаляется из кредитной системы (этап S148). Следует отметить, что удаление из кредитной системы проще всего достигается, если дождаться продвижения дочернего элемента в начало очереди RR и удалить этот дочерний элемент вместо того, чтобы давать ему кредит. Такой способ является одним из потенциальных вариантов использования флага удаления. Однако в других вариантах осуществления вновь недопустимый дочерний элемент childi может удаляться из системы немедленно после возвращения его кредитов в кредитный баланс.
Возвращаемся к блоку принятия решений S142; если вновь недопустимый дочерний элемент обладает отрицательным кредитом, то есть, creditsi<0, просто устанавливается его флаг удаления, и он готов к удалению. Однако следует отметить, что все вновь недопустимые дочерние элементы с отрицательным кредитным балансом не удаляются из кредитной системы, пока не восстановят свой дефицит кредита кредитного баланса, то есть, дочерний элемент childi не удаляется, пока не достигнет creditsi=0.
На ФИГ.7 блок-схема примерного одномерного циклического процесса планирования 46 ("WIRR") с использованием весовых коэффициентов и чередования для дочерних элементов с большими весами в соответствии с традиционной технологией. Процесс планирования WIRR 46 использует две очереди: циклическую ("RR") очередь 48 и очередь превышения веса 50. Все дочерние элементы, которые должны получать кредиты в цикле кредитования, начинают в очереди RR 48. При начальных условиях, показанных на ФИГ.7, где в очереди RR присутствуют четыре дочерних элемента (например, А, В, С и D), где А имеет вес 10, В имеет вес 4, а С и D имеют веса по 2. Поскольку количество циклов RR в одном цикле кредитования диктуется дочерним элементом с наибольшим весом, а дочерний элемент А имеет вес 10, один цикл кредитования может включать в себя до десяти циклов RR.
Во время первого цикла RR кредит выдается D, дочернему элементу, находящемуся в начале очереди RR 48, а затем D перемещается в конец очереди RR 48. Аналогичным образом, кредит выдается С, В и А, при этом каждый из дочерних элементов перемещается в конец очереди RR 48, таким образом, D возвращается в начало очереди. В течение цикла RR 2 кредит выдается D, при этом сумма кредитов, распределенных для D в этом цикле кредитования, больше или равна его весу, то есть, creditD>=текущий RR. Таким образом, D перемещается в очередь превышения веса 50 до окончания этого цикла кредитования. Аналогичным образом, кредит выдается С, который затем перемещается в конец очереди превышения веса 50. Наконец, кредит выдается В и А, которые затем перемещаются в конец очереди RR 48. В течение цикла 3 один кредит выдается В, и один кредит выдается А. В течение цикла 4 один кредит также выдается В, и один кредит выдается А; однако, получив свой вес в виде кредитов за цикл кредитования, дочерний элемент В перемещается в конец очереди превышения веса 50, оставляя в очереди RR только А 48. В течение оставшихся циклов RR, например, циклов 5-10, дочернему элементу А предоставляется один кредит за цикл.
Эффективная последовательность распределения кредитов для этого одномерного WIRR выглядит так:
DCBA, DCBA, ВА, ВА, А, А, А, А, А, А.
Таким образом, в течение одного сегмента последовательности распределения кредитов осуществляется пакет последовательных распределений дочернему элементу А. Эта последовательность представляет собой потенциальную угрозу устойчивости системы, если у дочернего элемента А заканчиваются данные, тогда как накапливать кредиты он может очень быстро.
Вариант осуществления настоящего изобретения улучшает процесс планирования WIRR, вводя новый двумерный планировщик WIRR, чтобы планировщик мог равномерно распределять кредиты дочерним элементам с большими весами. На ФИГ.8 показана блок-схема примерного двумерного планировщика WIRR 52, сконструированного в соответствии с принципами настоящего изобретения. Двумерный планировщик WIRR 52 реализует вместо одной очереди RR несколько очередей RR, представляющих пропускную способность или категории весов. Первое измерение планирования находится в пределах категории пропускной способности, где циклы кредитования WIRR обеспечивают справедливость между дочерними элементами в рамках одной категории пропускной способности. Второе измерение планирования - между категориями пропускной способности, где взвешенное чередование между очередями RR на обслуживание планировщиком первого измерения реализует множитель пропускной способности, связанный с категориями пропускной способности.
Двумерный планировщик WIRR 52 может включать в себя, по меньшей мере, два набора очередей RR, с которыми связаны очередь превышения веса, где каждая очередь "i" конфигурируется в качестве категории пропускной способности в виде множителя пропускной способности "ni". Дочерние элементы чередуются в очереди RR на основе нормированных весов (позднее) в цикле WIRR и между очередями RR по порядку обслуживания очередей между полными циклами WIRR. В планировщике второго измерения очередь RRi, имеющая множитель ni, выполняется ni раз столько полных циклов WIRR, сколько очередь при 1 (обозначено х1). Например, в двумерном планировщике WIRR 52 (ФИГ.8) присутствует высокоприоритетная ("HP") очередь RR 54, имеющая множитель 4, высокоприоритетная очередь превышения веса 56, низкоприоритетная ("LP") очередь RR 58, имеющая множитель 1, и низкоприоритетная очередь превышения веса 60. Цикл кредитования WIRR высокоприоритетной очереди 54 выполняется 4 раза для каждого выполнения цикла кредитования WIRR низкоприоритетной очереди.
Фиксированный шаблон для работы с очередями RR является приемлемым, если позволяет экономить трудозатраты, что значит, полезные решения по планированию могут приниматься даже в том случае, когда некоторые из очередей RR не содержат допустимых дочерних элементов. Например, для двумерного планировщика WIRR 52, имеющего HP очередь 54 с множителем х4 и LP очередь 58 с множителем х1, шаблон распределения кредитов выглядит так: HP, HP, HP, HP, LP, повтор. Веса, используемые для цикла кредитования WIRR, масштабируются множителем второго измерения, где нормированный вес равен полному весу, деленному на ni.
Например, при использовании тех же весов и дочерних элементов, что использовались выше в связи с ФИГ.7, в двумерном планировщике WIRR 52 (ФИГ.8) дочерние элементы располагаются таким образом, что А и В находятся в HP очереди 54, а С и D находятся в LP очереди 58. Дочерний элемент А имеет нормированный вес 2,5, а его полный вес остается равным 10 (то есть, норм. вес * множитель = полный вес; 2,5*4=10). Аналогично, В имеет нормированный вес 1 и полный вес 4 (то есть, 1*4=4). Поскольку множитель для LP очереди 58 равен 1, С и D сохраняют свои первоначальные веса, равные 2.
В течение первого цикла кредитования WIRR двумерного WIRR обслуживается только HP очередь 54. Таким образом, распределитель кредитов в течение цикла WIRR 1 предоставляет В один кредит, А - два кредита, при этом сохраняется остаточный вес 0,5 дочернего элемента А. В течение цикла кредитования WIRR 2 снова обслуживается только HP очередь 54, однако в этот раз В получает 1 кредит, А получает 3 кредита (то есть, 2,5 веса для этого цикла + 0,5 остатка веса = 3 кредита). Третий цикл WIRR является повторением цикла WIRR 1, где В получает 1 кредит, А получает 2 кредита с остатком 0,5. Четвертый цикл WIRR является повторением цикла 2, где В получает 1 кредит, А получает 3 кредита. Пятый и последний цикл WIRR обслуживает LP очередь 58, при этом дочерние элементы С и D получают по 2 кредита. Таким образом, эффективный порядок предоставления кредитов за полный цикл кредитования для двумерного планировщика WIRR 52 выглядит так:
Следует отметить, что наибольший пакет последовательных распределений сокращен до трех распределений А, что меньше половины наибольшего пакета одномерного WIRR 46, соответствующего традиционной технологии. Следует также заметить, что эта процедура может быть реализована с помощью одной очереди превышения веса, поскольку одновременно используется только одна очередь RR.
Алгоритм «не-O(1)», то есть, иерархический планировщик, имеющий вычислительную сложность, отличную от O(1) и использующий известную нотацию big-O, может быть удовлетворительным для второго измерения, поскольку масштабируемость не требуется. Как показано выше, сильное чередование ограничивает длину пакета от дочерних элементов с наибольшими весами. Несмотря на то, что вышеприведенное рассмотрение проводилось в контексте распределителя кредитов, предусматривается, что двумерный планировщик WIRR 52 настоящего изобретения может использоваться в качестве процесса планирования извлечения из очередей передачи селектором передачи 30.
Концепция двумерного WIRR может быть расширена для реализации систем, имеющих более двух уровней приоритета. На ФИГ.9 показана блок-схема планировщика WIRR 62, имеющего четыре уровня приоритета, представленных четырьмя приоритетными очередями RR: высокоприоритетная (HP) очередь 64, среднеприоритетная (МР) очередь 66, низкоприоритетная (LP) очередь 68 и очередь очень низкого приоритета (VLP) 70. Выбираются фиксированные множители между очередями, чтобы обеспечить большой динамический диапазон планирования. Например, предположим, что наибольшее нормированное значение веса для всех дочерних элементов во всех очередях RR равно 8, наименьший нормированный вес равен 1, максимальный суммарный вес для всех дочерних элементов составляет 4096 (84). Выбор очереди осуществляется на основании веса, поэтому, когда все очереди содержат дочерние элементы, каждые 585 событий планирования HP очередь 64 выбирается 512 раз, МР очередь 66 выбирается 64 раза, LP очередь 68 выбирается 8 раз, a VL очередь 70 выбирается один раз. Планировщик WIRR 62 экономит трудозатраты, поэтому очереди, не содержащие дочерних элементов, не выбираются. Рассчитанный или сконфигурированный шаблон распределения кредитов должен стремиться к максимальному распределению возможностей планирования очередей с большими весами. Кроме того, каждый раз при выборе очереди должен выполняться полный стандартный цикл WIRR. Веса очередей, показанные на ФИГ.9, являются иллюстративными, но не представляют единственную стратегию «взвешивания» очередей RR. Например, другая стратегия использования весов могла бы обеспечивать равномерное изменение весов очередей вместо показанной экспоненциальной стратегии. Другая стратегия могла бы реализовать динамические веса очередей (множители), которые изменяются в зависимости от весов дочерних элементов, активных в системе.
Распределитель кредитов 32 реагирует на ненулевой кредитный баланс путем увеличения скорости распределения кредитов, другими словами, ускоренным распределением кредитов (CDA), которое обозначено как M>N на ФИГ.5. Способ CDA объединяет несколько циклов RR в одном цикле кредитования в один проход обработки вдоль очереди RR. Это достигается в рамках цикла кредитования любой категории одной полосы пропускания, поэтому второе измерение планирования явно не включается. Этот способ требует знания начала и окончания цикла RR и оценивает параметр величины CDA, или М, в начале каждого цикла RR. Количество циклов RR, объединенных в цикле CDA, обычно составляет 2 (М=2). Кажется также, что М следует увеличить до 4, когда кредитный баланс 38 относительно велик, для возможного конфигурирования в качестве порога для сравнения с кредитным балансом 38.
Другой вариант осуществления объединяет максимальное количество циклов RR в один проход путем выделения всего остаточного веса каждого дочернего элемента в текущем цикле кредитования, тем самым, цикл кредитования WIRR завершается. Еще одна реализация рассчитывает количество дочерних элементов, участвующих в цикле RR, и задает коэффициент ускорения 1+СВ / «количество дочерних элементов», эффективно ликвидируя кредитный баланс 38 за один проход по текущей очереди RR.
Способ CDA позволяет вернуть скорость распределения кредитов в норму в середине ускоренного цикла RR путем пропуска возможностей распределения кредитов. Другими словами, если М равно 2, а кредитный баланс 38 вернулся к нулевому значению, то кредиты распределяются только всеми прочими способами, например, M×N×0,5=N. Проверить непрерывное ускорение просто - пока кредитный баланс больше минимума из М и остаточного веса weighti, дочерний элемент childi в начале очереди RR может пользоваться кредитами.
Цикл за циклом RR на любом уровне приоритета может выполняться ускоренное распределение кредитов (CDA). CDA включается в начале цикла RR. В начале цикла RR выбирается коэффициент ускорения М, который действует в течение всего цикла RR. Присваивание дочерним элементам нормированных весовых коэффициентов меньших или равных 1 следует предотвратить, поскольку в ускорении данного типа могут принимать участие только дочерние элементы с нормированными весовыми коэффициентами >1. Дочерние элементы, чей остаточный вес в цикле кредитования меньше кредитов, которые навязывает CDA, получают только свой остаточный вес (то есть, возможность ускорения утрачена полностью или частично).
Теперь перейдем от распределителя кредитов 32 к селектору передачи 30, сконструированному в соответствии с принципами настоящего изобретения. Уже существующие планировщики с обратным управлением кредитами (ICM) содержали только одну очередь передачи, обслуживающую только дочерние элементы с положительными кредитами. Дочерние элементы выбирались для передачи, например, в соответствии с циклическим порядком и помещались в конец очереди передачи. Затем для передачи был выбран дочерний элемент, находившийся в начале очереди.
На ФИГ.10 показана примерная базовая структура управления передачей 72, сконструированного в соответствии с принципами настоящего изобретения. В соответствии с одним из вариантов осуществления настоящего изобретения, базовая структура управления передачей 72 включает в себя три отдельных очереди управления передачей данных: очередь положительных кредитов 74, очередь отрицательных кредитов 76 и очередь экстремальных отрицательных кредитов 78. Все дочерние элементы, которые являются допустимыми для выполнения передачи, например, работают и располагают данными, присутствуют в одной из очередей управления передачей данных. Селектор приоритета 80 выбирает очередь управления передачей данных, из которой следует выполнять передачу, на основании заданной системы приоритетов. Другими словами, очередь управления передачей данных с наивысшим приоритетом, которая содержит, дочерний элемент, всегда выбирается прежде очереди управления передачей данных, имеющей более низкий приоритет. В каждой из очередей управления передачей данных дочерние элементы выбираются просто циклически, то есть, без весовых коэффициентов. Возможность передачи создает соответствующую возможность распределения кредитов.
Дочерние элементы сортируются в очередь управления передачей данных на основании количества кредитов, которым они обладают. Дочерние элементы динамически перемещаются между очередями управления передачей данных по мере изменения их кредитного баланса. Дочерние элементы, имеющие положительное значение счетчик кредита, помещаются в очередь положительных кредитов 74. Если бы не функция «сброса кредита» в системе в случае, когда дочерний элемент становится недопустимым, ожидаемое поведение состояло бы в следующем: передают данные только дочерние элементы из очереди положительных кредитов 74. Поскольку настоящее изобретение допускает сброс кредита (когда кредитный баланс больше N), сумма всех кредитов, которыми обладают все активные дочерние элементы, может быть отрицательной. Дочерние элементы с отрицательным значением счетчика кредита помещаются в очередь отрицательных кредитов 76.
Стандартные очередь положительных кредитов передачи 74 и очередь отрицательных кредитов 76 содержат дочерние элементы с нормальными значениями счетчиков кредитов. Дочерние элементы в очереди положительных кредитов передачи 74 получили немного больше кредитов, чем осуществили передач, тогда как в очереди отрицательных кредитов передачи 76 получили немного меньше кредитов, чем осуществили передач. Передача из стандартной очереди положительных кредитов передачи 74 представляет собой нормальный режим работы в случае, если недопустимость не вызывает колебаний кредитного баланса 38. Однако многие дочерние элементы будут задержаны в очереди отрицательных кредитов передачи 76 после передачи до тех пор, пока счетчик кредита дочернего элемента не будет восстановлен распределителем кредитов 32.
Можно предположить, что сумма кредитов, которыми обладают в настоящий момент все активные дочерние элементы, может быть отрицательной, таким образом, некоторые дочерние элементы, обладающие отрицательным значением счетчика кредита, могут случайно получить право на передачу, еще больше снижая значение своего счетчика кредита. Однако дочерние элементы с большим количеством передач при отрицательных значениях могут быть отделены, чтобы уменьшить «несправедливость». Таким образом, устанавливается пороговое значение, например, отрицательной величины максимального объема передачи для среды передачи, при этом дочерние элементы, имеющие отрицательный кредитный баланс ниже этого порога, помещаются в очередь экстремальных отрицательных кредитов 78. Передача из очереди экстремальных отрицательных кредитов 78 предполагает наличие очень большого избытка кредитного баланса 38 в распределителе кредитов 32, который может требовать специального внимания. Очередь экстремальных отрицательных кредитов 78 предотвращает «скатывание» дочерних элементов к очень низкому кредитному балансу, если только не все дочерние элементы участвуют в этом «скатывании». Передача из очереди экстремальных отрицательных кредитов 78 указывает на проблему с кредитным балансом 38, которая вызывает нестабильность системы. Чрезвычайной мерой, которая может быть предпринята для защиты кредитного баланса 38 от дополнительного роста, является уменьшение скорости траты кредита на передачу (например, тратить на передачу N/4 вместо N кредитов). Такая неравномерность стоимости передачи данных вносит ошибку в алгоритм справедливой организации очередей с использованием весовых коэффициентов, поскольку на передачу некоторых данных будет тратиться N, а других - N/4, однако это простая реализация защиты от бесконечного роста кредитного баланса 38.
Дополнительные варианты осуществления используют более усовершенствованную структуру управления передачей 82, как показано ФИГ.11. Такая усовершенствованная структура управления передачей 82 объединяет три очереди управления передачей данных, рассмотренные выше, с дополнительными очередями, которые (не обязательно) могут использоваться для повышения гибкости планирования и добавления новых свойств. Например, структура управления передачей 82 может объединять дочерние элементы с заданным приоритетом, например, дочерние элементы, содержащие пакеты речевых данных, с дочерними элементами справедливой организации очередей посредством очереди управления обходом высшего приоритета 84. Усовершенствованная структура управления передачей 82 и рассмотренная выше методология позволяет объединять планирования с приоритетами и справедливую организацию очередей с минимальными затратами.
Необязательные очереди управления передачей данных могут также включать в себя очередь экстремальных положительных кредитов 86 и очередь неизвестных дочерних элементов 88. Очередь экстремальных положительных кредитов 86 предотвращает скачки счетчика кредита, вызванные остановкой системы передачи, тем самым, повышая устойчивость кредитного баланса. Несмотря на то, что очередь экстремальных положительных кредитов 86 не является обязательной, ее использование желательно, поскольку дочерние элементы с большими весовыми коэффициентами при отсутствии приоритетной передачи могут быстро наращивать кредиты. Большие запасы кредитов представляют опасность для стабильности системы, поскольку в случае, если дочерний элемент становится недопустимым, кредиты внезапно возвращаются в кредитный баланс 38. Если какой-то дочерний элемент обладает большим значением счетчика кредита, селектор передачи 30 должен опросить дочерний элемент, чтобы определить, нет ли опасности достижения этим дочерним элементом верхнего порога кредита. Верхний порог кредита может устанавливаться разработчиком системы в соответствии с характеристиками среды передачи, включая такие параметры, как текущий трафик. Если дочерний элемент нарушает верхний порог кредита, этот дочерний элемент должен быть перемещен в очередь экстремальных положительных кредитов 86, чтобы получать приоритетное обслуживание. Очередь неизвестных дочерних элементов 88 допускает возможность, что дочерний элемент известен родительскому планировщику, который пока не известен текущему планировщику. Если текущий планировщик выбирается для планирования и не имеет других допустимых дочерних элементов, то необходимый дочерний элемент предоставляет очередь неизвестных дочерних элементов 88.
На ФИГ.12 показана примерная функциональная схема, описывающая действия, выполняемые селектором передачи 30 во время выбора дочерних элементов при справедливой организации очередей. Селектор передачи 30 определяет, если дочерний элемент является новым выбором (этап S152). Если нет, селектор передачи 30 продолжает передавать кадр из очереди и(или) из дочернего элемента, совпадающей (совпадающего) с предыдущим выбором (этап S154). Если выбор является новым (этап S152), селектор передачи 30 выбирает очередь передачи с наивысшим приоритетом, содержащую дочерние элементы для извлечения (этап S156), и выбирает childi в начале очереди передачи для осуществления передачи (этап S158). После выбора дочернего элемента для передачи селектор передачи 30 вычитает количество переданных байтов ("N") из суммы имеющихся кредитов (crediti) для этого дочернего элемента childi (этап S160). Когда селектор передачи 30 достигает конца передачи (этап S162), если childi не является более допустимым (этап S164), childi удаляется из системы передачи (этап S166), то есть, childi более не является видимым для селектора передачи 30. Однако, если childi остается допустимым (этап S164), childi снова помещается в конец очереди передачи, которая подходит для оставшегося количества кредитов дочернего элемента creditsi (этап S168).
На ФИГ.13 показана примерная функциональная схема, описывающая действия, выполняемые селектором передачи 30 в ответ на увеличение кредитов и изменения допустимости. Селектор передачи 30 определяет, является ли childi новым дочерним элементом (этап S170), что означает его отсутствие в системе очередей селектора передачи. Если childi не является новым, а селектор передачи 30 определяет, что childi не является более допустимым (этап S172), то в случае, если childi в настоящий момент не передает данные (этап S174), childi удаляется из системы передачи (этап S176). В противном случае, если childi в настоящий момент передает данные (этап S174), селектор передачи 30 не реагирует. Такая реакция наблюдается в рамках процесса извлечения из очереди, ФИГ.12.
Возвращаемся снова к блоку принятия решений S172, если childi является допустимым, a creditsi указывает, что дочерний элемент получил достаточно новых кредитов для смены уровней приритета (этап S178), поскольку childi в настоящее время не осуществляет передачу (этап S180), то childi удаляется из текущей очереди передачи (этап S182) и помещается в конец очереди передачи, обозначенной количеством creditsi (этап S184), то есть, очереди передачи с более высоким приоритетом.
Кроме того, обращаемся снова к блоку принятия решений S170, если childi представляет собой новый дочерний элемент, селектор передачи 30 просто помещает childi в конец очереди передачи, обозначенной количеством creditsi (этапы S184).
Настоящее изобретение может быть реализовано в оборудовании, программе или сочетании оборудования и программы. Для выполнения описанных здесь функций подходит вычислительная система любого типа или другая аппаратура, приспособленная для реализация описанных здесь способов.
Обычное сочетание оборудования и программы может представлять собой компьютерную систему, специализированную или общего назначения, имеющую один или несколько обрабатывающих элементов, и компьютерную программу, записанную на накопителе, которая, будучи загруженной и выполняемой, управляет компьютерной системой таким образом, что та осуществляет описанные здесь способы. Настоящее изобретение может быть также встроено в компьютерный программный продукт, который содержит все свойства, обеспечивающие осуществление описанных здесь способов, и которые, будучи загруженными в компьютерную систему, способны осуществлять эти способы. Накопитель представляет собой любое энергозависимое или энергонезависимое запоминающее устройство.
Компьютерная программа или приложение в настоящем контексте означает любое выражение, на любом языке, в любом коде или в любой нотации, набора инструкций, предназначенного для того, чтобы побудить систему, обладающую возможностями обработки информации, выполнить некоторую функцию непосредственно или после, по меньшей мере, одной из следующих операций: а) преобразование в другой язык, код или другую нотацию; b) воспроизведение в другой материальной форме.
Кроме того, если не утверждалось обратное, следует отметить, что все прилагаемые чертежи не масштабируются. Важно, что это изобретение может быть воплощено в других формах без отступления от его духа и существенных атрибутов, и, соответственно, при указании сферы действия изобретения обращаться следует, прежде всего, к следующей формуле изобретения, нежели к предшествовавшему описанию.
Claims (19)
1. Система для планирования выбора данных для передачи в сети передачи данных, где сеть передачи данных имеет множество дочерних элементов, включающая в себя:
распределитель кредитов, обеспечивающий:
предоставление кредитов, по меньшей мере, одному из допустимых дочерних элементов и дочерних элементов, имеющих отрицательный счетчик кредита, каждый кредит может использоваться для передачи некоторого объема данных;
поддержку справедливости между дочерними элементами по соотношению предоставленных кредитов;
поддержание кредитного баланса, представляющего суммарный объем нераспределенных кредитов; и
вычитание предоставленных кредитов из кредитного баланса; и
селектор передачи, коммуникативно связанный с распределителем кредитов, селектор передачи, работающий с целью:
выбора, по меньшей мере, одного допустимого и работоспособного дочернего элемента для извлечения из очереди;
настройки выбора, по меньшей мере, одного допустимого и работоспособного дочернего элемента в пользу выбора допустимого и работоспособного дочернего элемента с положительным значением кредита и
добавления кредитов к кредитному балансу, соответствующему объему данных, выбранному для извлечения из очереди и средство обновления допустимости, определяющее состояние допустимости для каждого дочернего элемента, где состояние допустимости указывает, является ли дочерний элемент допустимым для передачи данных, на основании критерия, отличного от справедливой организации очередей с использованием весовых коэффициентов, на которые оказывает влияние распределитель кредитов, включая, по меньшей мере, одно из следующего: ограничение скорости обмена, ограничение всплеска и доступность данных.
распределитель кредитов, обеспечивающий:
предоставление кредитов, по меньшей мере, одному из допустимых дочерних элементов и дочерних элементов, имеющих отрицательный счетчик кредита, каждый кредит может использоваться для передачи некоторого объема данных;
поддержку справедливости между дочерними элементами по соотношению предоставленных кредитов;
поддержание кредитного баланса, представляющего суммарный объем нераспределенных кредитов; и
вычитание предоставленных кредитов из кредитного баланса; и
селектор передачи, коммуникативно связанный с распределителем кредитов, селектор передачи, работающий с целью:
выбора, по меньшей мере, одного допустимого и работоспособного дочернего элемента для извлечения из очереди;
настройки выбора, по меньшей мере, одного допустимого и работоспособного дочернего элемента в пользу выбора допустимого и работоспособного дочернего элемента с положительным значением кредита и
добавления кредитов к кредитному балансу, соответствующему объему данных, выбранному для извлечения из очереди и средство обновления допустимости, определяющее состояние допустимости для каждого дочернего элемента, где состояние допустимости указывает, является ли дочерний элемент допустимым для передачи данных, на основании критерия, отличного от справедливой организации очередей с использованием весовых коэффициентов, на которые оказывает влияние распределитель кредитов, включая, по меньшей мере, одно из следующего: ограничение скорости обмена, ограничение всплеска и доступность данных.
2. Система по п.1, где распределитель кредитов способен дополнительно выполнять следующие операции:
снятие всех кредитов с ранее допустимого и работоспособного дочернего элемента, пока дочерний элемент не станет неработоспособным или недопустимым; и
добавление снятых кредитов к кредитному балансу для повторного распределения.
снятие всех кредитов с ранее допустимого и работоспособного дочернего элемента, пока дочерний элемент не станет неработоспособным или недопустимым; и
добавление снятых кредитов к кредитному балансу для повторного распределения.
3. Система по п.1, где распределитель кредитов имеет, по меньшей мере, одну циклическую очередь управления, содержащую, по меньшей мере, один идентификатор, по меньшей мере, одного из следующего:
допустимый дочерний элемент и дочерний элемент, имеющий отрицательный счетчик кредита, где распределитель кредитов дополнительно выполняет следующие функции:
чередование предоставления кредитов дочерним элементам в рамках первой циклической очереди управления;
предоставление одного кредита каждому дочернему элементу из первой циклической очереди в цикле;
повторение циклов, пока каждому дочернему элементу не достанется объем кредитов, соответствующий весу дочернего элемента;
удаление каждого дочернего элемента из первой циклической очереди управления, когда дочернему элементу предоставляется объем кредитов, соответствующий весу упомянутого дочернего элемента; и
в ответ на предоставление каждому дочернему элементу объема кредитов, соответствующего весу упомянутого дочернего элемента, возвращение дочернего элемента в первую циклическую очередь управления.
допустимый дочерний элемент и дочерний элемент, имеющий отрицательный счетчик кредита, где распределитель кредитов дополнительно выполняет следующие функции:
чередование предоставления кредитов дочерним элементам в рамках первой циклической очереди управления;
предоставление одного кредита каждому дочернему элементу из первой циклической очереди в цикле;
повторение циклов, пока каждому дочернему элементу не достанется объем кредитов, соответствующий весу дочернего элемента;
удаление каждого дочернего элемента из первой циклической очереди управления, когда дочернему элементу предоставляется объем кредитов, соответствующий весу упомянутого дочернего элемента; и
в ответ на предоставление каждому дочернему элементу объема кредитов, соответствующего весу упомянутого дочернего элемента, возвращение дочернего элемента в первую циклическую очередь управления.
4. Система по п.3, где распределитель кредитов - планировщик второго измерения с использованием весовых коэффициентов и чередования, поддерживающий несколько циклических очередей управления, каждая циклическая очередь управления содержит, по меньшей мере, один идентификатор, по меньшей мере, одного из следующего: допустимый дочерний элемент и дочерний элемент, имеющий отрицательный счетчик кредита, каждая циклическая очередь управления представляет, по меньшей мере, одно из следующего: категорию пропускной способности и категорию веса, и каждая циклическая очередь управления получает множитель, где распределитель кредитов дополнительно выполняет следующие функции;
чередование выбора циклических очередей управления для распределения кредитов, где каждая циклическая очередь управления выбирается количество раз, соответствующее ее множителю чередования выбора циклических очередей управления для распределения кредитов, при этом каждая циклическая очередь управления выбирается количество раз, соответствующее ее множителю;
выбор первой циклической очереди управления для распределения кредитов;
предоставление кредитов дочерним элементам в первой циклической очереди управления, где каждому дочернему элементу предоставляется объем кредитов, соответствующий весу, присвоенному упомянутому дочернему элементу для каждого цикла циклической очереди управления, и где кредиты предоставляются дочерним элементам циклическим образом;
выбор циклических очередей управления в чередующемся порядке, пока все циклы не будут исчерпаны; и
предоставление кредитов дочерним элементам, обнаруженным в выбранных циклических очередях управления в порядке очереди.
чередование выбора циклических очередей управления для распределения кредитов, где каждая циклическая очередь управления выбирается количество раз, соответствующее ее множителю чередования выбора циклических очередей управления для распределения кредитов, при этом каждая циклическая очередь управления выбирается количество раз, соответствующее ее множителю;
выбор первой циклической очереди управления для распределения кредитов;
предоставление кредитов дочерним элементам в первой циклической очереди управления, где каждому дочернему элементу предоставляется объем кредитов, соответствующий весу, присвоенному упомянутому дочернему элементу для каждого цикла циклической очереди управления, и где кредиты предоставляются дочерним элементам циклическим образом;
выбор циклических очередей управления в чередующемся порядке, пока все циклы не будут исчерпаны; и
предоставление кредитов дочерним элементам, обнаруженным в выбранных циклических очередях управления в порядке очереди.
5. Система по п.1, где распределитель кредитов дополнительно выполняет следующие функции;
поддерживает баланс между предоставлением кредитов и передачей данных;
предоставляет кредит приблизительно с той же скоростью, что и нормальная передача данных; и
реагирует на наличие остатка кредитного баланса, повышая скорость предоставления кредитов.
поддерживает баланс между предоставлением кредитов и передачей данных;
предоставляет кредит приблизительно с той же скоростью, что и нормальная передача данных; и
реагирует на наличие остатка кредитного баланса, повышая скорость предоставления кредитов.
6. Система по п.5, где кредитный баланс является избыточным до начала цикла, распределитель кредитов, кроме того, работает с целью увеличения скорости предоставления кредитов допустимым дочерним элементам путем объединения циклов в один посредством предоставления нескольких кредитов каждому дочернему элементу за один проход; и где избыточность включает в себя одно из следующего: превышение заданного порога, превышение объема кредита, большего, чем объем кредита, поглощенный одним событием передачи, и большего нуля.
7. Система по п.1, где селектор передачи имеет множество очередей управления передачей данных для извлечения из очереди, где каждая очередь управления передачей данных содержит, по меньшей мере, один идентификатор допустимого дочернего элемента и дочернего элемента, имеющего уровень приоритета, заданный в соответствии с требованиями к счетчику кредита, причем селектор передачи выполнен с возможностью назначить каждому допустимому дочернему элементу одну из очередей управления передачей данных, при этом каждый допустимый дочерний элемент обладает кредитным состоянием, соответствующим требованиям к счетчику кредита назначенной элементу очереди управления передачей данных.
8. Система по п.7, где очереди управления передачей данных включают в себя очередь положительных кредитов передачи, очередь отрицательных кредитов передачи и очередь экстремальных отрицательных кредитов передачи и где:
первый порог счетчика кредита между очередью положительных кредитов передачи и очередью отрицательных кредитов передачи равен нулю;
второй порог счетчика кредита между очередью отрицательных кредитов передачи и очередью экстремальных отрицательных кредитов передачи равен отрицательной величине максимального блока передачи для сети передачи данных;
очередь положительных кредитов передачи имеет более высокий приоритет при выборе, чем очередь отрицательных кредитов передачи; и очередь отрицательных кредитов передачи имеет более высокий приоритет при выборе, чем очередь экстремальных отрицательных кредитов передачи.
первый порог счетчика кредита между очередью положительных кредитов передачи и очередью отрицательных кредитов передачи равен нулю;
второй порог счетчика кредита между очередью отрицательных кредитов передачи и очередью экстремальных отрицательных кредитов передачи равен отрицательной величине максимального блока передачи для сети передачи данных;
очередь положительных кредитов передачи имеет более высокий приоритет при выборе, чем очередь отрицательных кредитов передачи; и очередь отрицательных кредитов передачи имеет более высокий приоритет при выборе, чем очередь экстремальных отрицательных кредитов передачи.
9. Система по п.8, где очереди управления передачей данных дополнительно включают в себя, по меньшей мере, одно из следующего:
очередь экстремальных положительных кредитов передачи, очередь обхода и очередь неизвестных дочерних элементов:
очередь обхода имеет наивысший уровень приоритета и при передаче из очереди обхода кредиты в кредитный баланс не возвращаются;
очередь экстремальных положительных кредитов передачи имеет более высокий приоритет, чем очередь положительных кредитов передачи, очередь отрицательных кредитов передачи и очередь экстремальных отрицательных кредитов передачи; и очередь неизвестных дочерних элементов, содержащая допустимый и работоспособный дочерний элемент с неизвестным кредитным состоянием и имеющий самый низкий уровень приоритета.
очередь экстремальных положительных кредитов передачи, очередь обхода и очередь неизвестных дочерних элементов:
очередь обхода имеет наивысший уровень приоритета и при передаче из очереди обхода кредиты в кредитный баланс не возвращаются;
очередь экстремальных положительных кредитов передачи имеет более высокий приоритет, чем очередь положительных кредитов передачи, очередь отрицательных кредитов передачи и очередь экстремальных отрицательных кредитов передачи; и очередь неизвестных дочерних элементов, содержащая допустимый и работоспособный дочерний элемент с неизвестным кредитным состоянием и имеющий самый низкий уровень приоритета.
10. Система по п.8, где селектор передачи дополнительно способен уменьшать кредиты, потраченные на передачу данных, из очереди экстремальных отрицательных кредитов путем добавления кредитов к кредитному балансу в соответствии с частью объема данных, выбранной для извлечения из очереди.
11. Способ распределения кредитов дочерним элементам в сети передачи данных, где каждый кредит может использоваться для передачи некоторого объема данных, включающий в себя:
определение состояния допустимости для каждого дочернего элемента, где каждый дочерний элемент может передавать данные, основанные, по меньшей мере, на ограничении скорости обмена;
предоставление кредитов, по меньшей мере, допустимым и работоспособным дочерним элементам и дочерним элементам, имеющим отрицательный счетчик кредита;
поддержку кредитного баланса, представляющего суммарный имеющийся объем нераспределенных кредитов; и
вычитание предоставленных кредитов из кредитного баланса.
определение состояния допустимости для каждого дочернего элемента, где каждый дочерний элемент может передавать данные, основанные, по меньшей мере, на ограничении скорости обмена;
предоставление кредитов, по меньшей мере, допустимым и работоспособным дочерним элементам и дочерним элементам, имеющим отрицательный счетчик кредита;
поддержку кредитного баланса, представляющего суммарный имеющийся объем нераспределенных кредитов; и
вычитание предоставленных кредитов из кредитного баланса.
12. Способ по п.11, дополнительно включающий в себя:
снятие всех кредитов с ранее допустимого и работоспособного дочернего
элемента, пока дочерний элемент не станет неработоспособным или недопустимым; и
добавление снятых кредитов к кредитному балансу для повторного распределения.
снятие всех кредитов с ранее допустимого и работоспособного дочернего
элемента, пока дочерний элемент не станет неработоспособным или недопустимым; и
добавление снятых кредитов к кредитному балансу для повторного распределения.
13. Способ по п.11, дополнительно включающий в себя:
реализацию двумерного циклического планировщика с использованием весовых коэффициентов и чередования, имеющего несколько циклических очередей управления, каждая циклическая очередь управления содержит, по меньшей мере, один идентификатор допустимого дочернего элемента или дочернего элемента, имеющего отрицательный счетчик кредита, каждая циклическая очередь управления представляет, по меньшей мере, одно из следующего: категорию пропускной способности и категорию веса, и каждая циклическая очередь управления получает множитель;
чередование выбора циклических очередей управления для распределения кредитов, при этом каждая циклическая очередь управления выбирается количество раз, соответствующее ее множителю;
выбор первой циклической очереди управления для распределения кредитов;
предоставление кредитов дочерним элементам, обнаруженным в первой циклической очереди управления;
выбор циклической очереди управления с остаточным весом множителя в цикле, пока все циклы не будут исчерпаны; и предоставление кредитов дочерним элементам, обнаруженным в оставшихся циклических очередях управления в порядке очереди.
реализацию двумерного циклического планировщика с использованием весовых коэффициентов и чередования, имеющего несколько циклических очередей управления, каждая циклическая очередь управления содержит, по меньшей мере, один идентификатор допустимого дочернего элемента или дочернего элемента, имеющего отрицательный счетчик кредита, каждая циклическая очередь управления представляет, по меньшей мере, одно из следующего: категорию пропускной способности и категорию веса, и каждая циклическая очередь управления получает множитель;
чередование выбора циклических очередей управления для распределения кредитов, при этом каждая циклическая очередь управления выбирается количество раз, соответствующее ее множителю;
выбор первой циклической очереди управления для распределения кредитов;
предоставление кредитов дочерним элементам, обнаруженным в первой циклической очереди управления;
выбор циклической очереди управления с остаточным весом множителя в цикле, пока все циклы не будут исчерпаны; и предоставление кредитов дочерним элементам, обнаруженным в оставшихся циклических очередях управления в порядке очереди.
14. Способ по п.13, где кредиты предоставляются дочерним элементам,
обозначенным в выбранной циклической очереди в соответствии с нормированными весовыми коэффициентами для каждого дочернего элемента; и
где сумма весов для каждого дочернего элемента по всем циклам равна его нормированному весу, помноженному на множитель для его циклической очереди.
обозначенным в выбранной циклической очереди в соответствии с нормированными весовыми коэффициентами для каждого дочернего элемента; и
где сумма весов для каждого дочернего элемента по всем циклам равна его нормированному весу, помноженному на множитель для его циклической очереди.
15. Способ по п.11, где, если кредитный баланс больше объема данных, выбранных для извлечения из очереди между событиями распределения кредитов, дополнительно включает в себя:
реализацию одной или нескольких циклических очередей управления, содержащих один или несколько дочерних элементов для использования при чередующемся предоставлении кредитов между допустимыми и работоспособными дочерними элементами либо дочерними элементами с отрицательным кредитным балансом; и
предоставление дополнительных кредитов дочерним элементам в циклической очереди управления путем объединения нескольких циклов в один посредством предоставления нескольких кредитов каждому дочернему элементу за полный проход по циклической очереди управления.
реализацию одной или нескольких циклических очередей управления, содержащих один или несколько дочерних элементов для использования при чередующемся предоставлении кредитов между допустимыми и работоспособными дочерними элементами либо дочерними элементами с отрицательным кредитным балансом; и
предоставление дополнительных кредитов дочерним элементам в циклической очереди управления путем объединения нескольких циклов в один посредством предоставления нескольких кредитов каждому дочернему элементу за полный проход по циклической очереди управления.
16. Способ планирования выбора данных для передачи в сети передачи данных, где сеть передачи данных содержит множество дочерних элементов, включающий:
определение состояния допустимости для каждого дочернего элемента, где каждый дочерний элемент может передавать данные, основанные, по меньшей мере, на ограничении скорости всплеска;
создание множества очередей управления передачей данных для извлечения из очереди, где каждая очередь управления передачей данных способна содержать, по меньшей мере, один идентификатор соответствующего допустимого дочернего элемента, имеющего уровень приоритета в соответствии с требованием к значению счетчика кредита;
назначение каждому допустимому дочернему элементу одной из множества очередей управления передачей данных, при этом каждый допустимый дочерний элемент обладает состоянием кредита, отвечающим требованию к значению счетчика кредита для соответствующей очереди управления передачей данных;
выбор, по меньшей мере, одного допустимого дочернего элемента для извлечения из очереди в соответствии с уровнем приоритета очереди управления передачей данных, соответствующей упомянутому допустимому дочернему элементу;
добавление кредитов к кредитному балансу, соответствующих объему данных, извлеченных из очереди; и где каждый допустимый и работоспособный дочерний элемент представлен в одной из очередей управления передачей данных.
определение состояния допустимости для каждого дочернего элемента, где каждый дочерний элемент может передавать данные, основанные, по меньшей мере, на ограничении скорости всплеска;
создание множества очередей управления передачей данных для извлечения из очереди, где каждая очередь управления передачей данных способна содержать, по меньшей мере, один идентификатор соответствующего допустимого дочернего элемента, имеющего уровень приоритета в соответствии с требованием к значению счетчика кредита;
назначение каждому допустимому дочернему элементу одной из множества очередей управления передачей данных, при этом каждый допустимый дочерний элемент обладает состоянием кредита, отвечающим требованию к значению счетчика кредита для соответствующей очереди управления передачей данных;
выбор, по меньшей мере, одного допустимого дочернего элемента для извлечения из очереди в соответствии с уровнем приоритета очереди управления передачей данных, соответствующей упомянутому допустимому дочернему элементу;
добавление кредитов к кредитному балансу, соответствующих объему данных, извлеченных из очереди; и где каждый допустимый и работоспособный дочерний элемент представлен в одной из очередей управления передачей данных.
17. Способ по п.16, где очереди управления передачей данных включают в себя очередь положительных кредитов передачи, очередь отрицательных кредитов передачи и очередь экстремальных отрицательных кредитов передачи и где:
первый порог счетчика кредита между очередью положительных кредитов передачи и очередью отрицательных кредитов передачи равен нулю;
второй порог счетчика кредита между очередью отрицательных кредитов передачи и очередью экстремальных отрицательных кредитов передачи равен отрицательной величине максимального блока передачи для сети передачи данных;
очередь положительных кредитов передачи имеет более высокий приоритет при выборе, чем очередь отрицательных кредитов передачи; и очередь отрицательных кредитов передачи имеет более высокий приоритет при выборе, чем очередь экстремальных отрицательных кредитов передачи.
первый порог счетчика кредита между очередью положительных кредитов передачи и очередью отрицательных кредитов передачи равен нулю;
второй порог счетчика кредита между очередью отрицательных кредитов передачи и очередью экстремальных отрицательных кредитов передачи равен отрицательной величине максимального блока передачи для сети передачи данных;
очередь положительных кредитов передачи имеет более высокий приоритет при выборе, чем очередь отрицательных кредитов передачи; и очередь отрицательных кредитов передачи имеет более высокий приоритет при выборе, чем очередь экстремальных отрицательных кредитов передачи.
18. Способ по п.17, где очереди управления передачей данных дополнительно включают в себя очередь экстремальных положительных кредитов передачи и очередь обхода:
очередь экстремальных положительных кредитов передачи имеет более высокий приоритет, чем очередь положительных кредитов передачи, очередь отрицательных кредитов передачи и очередь экстремальных отрицательных кредитов передачи; и
очередь обхода имеет наивысший уровень приоритета и при передаче из очереди обхода кредиты в кредитный баланс не возвращаются.
очередь экстремальных положительных кредитов передачи имеет более высокий приоритет, чем очередь положительных кредитов передачи, очередь отрицательных кредитов передачи и очередь экстремальных отрицательных кредитов передачи; и
очередь обхода имеет наивысший уровень приоритета и при передаче из очереди обхода кредиты в кредитный баланс не возвращаются.
19. Способ по п.17, где очереди управления передачей данных дополнительно включают в себя очередь неизвестных дочерних элементов, очередь неизвестных дочерних элементов, содержащую допустимый дочерний элемент, активированный родительским планировщиком до перевода в состояние кредитования текущего планировщика.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/250,681 | 2008-10-14 | ||
US12/250,681 US7995597B2 (en) | 2008-10-14 | 2008-10-14 | Method and system for weighted fair queuing |
PCT/CA2009/001450 WO2010043031A1 (en) | 2008-10-14 | 2009-10-13 | Method and system for weighted fair queuing |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2011119226A RU2011119226A (ru) | 2012-11-27 |
RU2495533C2 true RU2495533C2 (ru) | 2013-10-10 |
Family
ID=42098796
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2011119226/08A RU2495533C2 (ru) | 2008-10-14 | 2009-10-13 | Способ и система для планирования выбора данных для передачи в сети передачи данных |
Country Status (9)
Country | Link |
---|---|
US (3) | US7995597B2 (ru) |
EP (1) | EP2345207A4 (ru) |
JP (2) | JP2012505572A (ru) |
KR (1) | KR20110091652A (ru) |
CN (2) | CN103916269A (ru) |
BR (1) | BRPI0920260A8 (ru) |
CA (1) | CA2743944A1 (ru) |
RU (1) | RU2495533C2 (ru) |
WO (1) | WO2010043031A1 (ru) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8208406B1 (en) * | 2008-03-25 | 2012-06-26 | Juniper Networks, Inc. | Packet forwarding using feedback controlled weighted queues dynamically adjusted based on processor utilization |
US8965966B2 (en) * | 2010-12-15 | 2015-02-24 | Sap Se | System and method for logging a scheduler |
US20120188981A1 (en) * | 2010-12-24 | 2012-07-26 | Electronics And Telecommunications Research Institute | Signalling method for direct communication between terminals |
US8457142B1 (en) * | 2011-02-18 | 2013-06-04 | Juniper Networks, Inc. | Applying backpressure to a subset of nodes in a deficit weighted round robin scheduler |
EP2525534B1 (en) * | 2011-05-18 | 2018-04-18 | Xelerated NewCo AB | Network traffic scheduler and associated method, computer program and computer program product |
CN102333035B (zh) * | 2011-09-28 | 2017-11-07 | 中兴通讯股份有限公司 | 路由器及其rsvp预留资源调度方法和装置 |
TWI458315B (zh) * | 2012-09-12 | 2014-10-21 | Wistron Corp | 於網路環境中提供數位內容之方法及系統 |
US9276867B2 (en) * | 2013-06-28 | 2016-03-01 | Cisco Technology, Inc. | Hierarchical scheduling system with layer bypass including updating scheduling information of a scheduling layer for each item whether or not it bypasses the scheduling layer |
US10291540B2 (en) * | 2014-11-14 | 2019-05-14 | Cavium, Llc | Method and apparatus for performing a weighted queue scheduling using a set of fairness factors |
CN105700940B (zh) * | 2014-11-25 | 2019-05-31 | 深圳市中兴微电子技术有限公司 | 一种调度器及调度器的动态复用方法 |
CN114331453A (zh) * | 2015-03-02 | 2022-04-12 | 创新先进技术有限公司 | 数据传输的方法及系统 |
CN106603433B (zh) * | 2015-10-14 | 2019-10-25 | 瑞昱半导体股份有限公司 | 数据输出调度装置与方法 |
US10243866B2 (en) * | 2016-07-01 | 2019-03-26 | International Business Machines Corporation | Controlling packet data transmissions via data transmission media |
JP6786996B2 (ja) | 2016-09-23 | 2020-11-18 | 富士通株式会社 | 伝送装置及び伝送処理方法 |
US11875839B2 (en) * | 2017-05-08 | 2024-01-16 | Intel Corporation | Flow based rate limit |
CN113647070A (zh) * | 2019-03-12 | 2021-11-12 | 弗劳恩霍夫应用研究促进协会 | 发送器和接收器、串行器和解串器以及用于发送和接收、串行化和解串化的方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001063849A2 (en) * | 2000-02-23 | 2001-08-30 | Microsoft Corporation | Quality of service over paths having a wireless-link |
WO2002062013A2 (en) * | 2001-01-30 | 2002-08-08 | Nomadix, Inc. | Methods and systems providing fair queuing and priority scheduling to enhance quality of service in a network |
RU2216100C2 (ru) * | 1998-02-13 | 2003-11-10 | Телефонактиеболагет Лм Эрикссон (Пабл) | Способ планирования показания переменных блоков с помощью флага состояния восходящей линии связи в системе передачи пакетных данных |
US6862265B1 (en) * | 2000-04-13 | 2005-03-01 | Advanced Micro Devices, Inc. | Weighted fair queuing approximation in a network switch using weighted round robin and token bucket filter |
RU2005131960A (ru) * | 2003-03-17 | 2006-05-27 | Квэлкомм Инкорпорейтед (US) | Управление разрешением на доступ и распределение ресурсов в системе связи с поддержкой потоков приложений с наличием требований к качеству обслуживания |
US7187684B2 (en) * | 2001-11-01 | 2007-03-06 | International Business Machines Corporation | Weighted fair queue having extended effective range |
RU2316130C2 (ru) * | 2001-10-25 | 2008-01-27 | Квэлкомм Инкорпорейтед | Способ и система для передачи ip-пакетов путем объединения нескольких каналов радиосвязи для высокоскоростной передачи данных |
US7373420B1 (en) * | 2003-08-01 | 2008-05-13 | Nortel Networks Limited | Method and apparatus for weighted fair queuing |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2072729A1 (en) * | 1991-10-17 | 1993-04-18 | Dimitrios N. Serpanos | Adaptive scheduling scheme for dynamic service time allocation on a shared resource |
US5561663A (en) * | 1994-12-30 | 1996-10-01 | Stratacom, Inc. | Method and apparatus for performing communication rate control using geometric weighted groups |
EP0843499A3 (en) * | 1996-11-19 | 1999-01-20 | Italtel s.p.a. | Method and device for the management of resources in ATM technique for weighted fair queuing (WFQ) applications |
US6636833B1 (en) * | 1998-03-25 | 2003-10-21 | Obis Patents Ltd. | Credit card system and method |
US6359884B1 (en) * | 1998-06-26 | 2002-03-19 | Nortel Networks Limited | Modular scalable packet scheduler with rate based shaping and virtual port scheduler |
ATE290743T1 (de) * | 1998-07-31 | 2005-03-15 | Cit Alcatel | Verfahren, ablauffolgesteuerung, intelligenter pufferspeicher, prozessor und telekommunikationssystem zum verteilen verfügbahrer bandbreite |
CA2245367A1 (en) * | 1998-08-19 | 2000-02-19 | Newbridge Networks Corporation | Two-component bandwidth scheduler having application in multi-class digital communication systems |
US6256315B1 (en) * | 1998-10-27 | 2001-07-03 | Fujitsu Network Communications, Inc. | Network to network priority frame dequeuing |
US6470016B1 (en) * | 1999-02-09 | 2002-10-22 | Nortel Networks Limited | Servicing output queues dynamically according to bandwidth allocation in a frame environment |
US6775231B1 (en) * | 1999-09-24 | 2004-08-10 | Cisco Technology | Dynamic weighted resource sharing |
US6532501B1 (en) * | 1999-09-30 | 2003-03-11 | Silicon Graphics, Inc. | System and method for distributing output queue space |
US6646986B1 (en) * | 1999-10-14 | 2003-11-11 | Nortel Networks Limited | Scheduling of variable sized packet data under transfer rate control |
US6735174B1 (en) * | 2000-03-29 | 2004-05-11 | Intel Corporation | Method and systems for flow control of transmissions over channel-based switched fabric connections |
US6683884B1 (en) * | 2000-03-31 | 2004-01-27 | Intel Corporation | Shared credit round robin queuing |
US7236491B2 (en) * | 2000-11-30 | 2007-06-26 | Industrial Technology Research Institute | Method and apparatus for scheduling for packet-switched networks |
JP4403348B2 (ja) * | 2000-12-14 | 2010-01-27 | ソニー株式会社 | 通信装置及び通信方法 |
US20030099199A1 (en) * | 2001-11-27 | 2003-05-29 | Amplify.Net, Inc., | Bandwidth allocation credit updating on a variable time basis |
AUPR918001A0 (en) * | 2001-11-30 | 2001-12-20 | Foursticks Pty Ltd | Credit based algorithm for traffic shaping |
KR100431191B1 (ko) * | 2001-12-03 | 2004-05-12 | 주식회사 케이티 | 크레딧 기반 라운드 로빈을 이용한 패킷 스케쥴링장치 및방법 |
US7110411B2 (en) * | 2002-03-25 | 2006-09-19 | Erlang Technology, Inc. | Method and apparatus for WFQ scheduling using a plurality of scheduling queues to provide fairness, high scalability, and low computation complexity |
US7177275B2 (en) * | 2002-07-26 | 2007-02-13 | Kenneth Stanwood | Scheduling method and system for communication systems that offer multiple classes of service |
US7539199B2 (en) * | 2003-02-21 | 2009-05-26 | Gireesh Shrimali | Switch fabric scheduling with fairness and priority consideration |
US7792118B2 (en) * | 2003-06-19 | 2010-09-07 | Polytechnic University | Switch module memory structure and per-destination queue flow control for use in a switch |
US7916638B2 (en) * | 2003-12-24 | 2011-03-29 | Alcatel Lucent | Time-independent deficit round robin method and system |
WO2006017753A2 (en) * | 2004-08-05 | 2006-02-16 | Cisco Technology, Inc. | Propagation of minimum guaranteed scheduling rates |
JP4279281B2 (ja) * | 2005-10-14 | 2009-06-17 | 日本電信電話株式会社 | パケット通信品質制御装置およびパケット通信品質制御方法 |
US7706386B2 (en) * | 2005-10-26 | 2010-04-27 | Cisco Technology, Inc. | Fast 2-key scheduler |
GB0619519D0 (en) * | 2006-10-04 | 2006-11-15 | Siemens Ag | Packet scheduling |
US7975027B2 (en) * | 2007-08-06 | 2011-07-05 | International Business Machines Corporation | Credit depletion notification for transmitting frames between a port pair |
US8045563B2 (en) * | 2007-12-27 | 2011-10-25 | Cellco Partnership | Dynamically adjusted credit based round robin scheduler |
-
2008
- 2008-10-14 US US12/250,681 patent/US7995597B2/en not_active Expired - Fee Related
-
2009
- 2009-10-13 CA CA2743944A patent/CA2743944A1/en not_active Abandoned
- 2009-10-13 KR KR1020117009040A patent/KR20110091652A/ko not_active Application Discontinuation
- 2009-10-13 WO PCT/CA2009/001450 patent/WO2010043031A1/en active Application Filing
- 2009-10-13 CN CN201410106733.3A patent/CN103916269A/zh active Pending
- 2009-10-13 CN CN200980150306.2A patent/CN102246462B/zh not_active Expired - Fee Related
- 2009-10-13 RU RU2011119226/08A patent/RU2495533C2/ru not_active IP Right Cessation
- 2009-10-13 BR BRPI0920260A patent/BRPI0920260A8/pt not_active IP Right Cessation
- 2009-10-13 EP EP09820145A patent/EP2345207A4/en not_active Withdrawn
- 2009-10-13 JP JP2011530340A patent/JP2012505572A/ja active Pending
-
2011
- 2011-06-27 US US13/169,504 patent/US8711871B2/en not_active Expired - Fee Related
-
2013
- 2013-12-02 US US14/093,977 patent/US9042224B2/en not_active Expired - Fee Related
-
2015
- 2015-01-05 JP JP2015000333A patent/JP2015109672A/ja active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2216100C2 (ru) * | 1998-02-13 | 2003-11-10 | Телефонактиеболагет Лм Эрикссон (Пабл) | Способ планирования показания переменных блоков с помощью флага состояния восходящей линии связи в системе передачи пакетных данных |
WO2001063849A2 (en) * | 2000-02-23 | 2001-08-30 | Microsoft Corporation | Quality of service over paths having a wireless-link |
US6862265B1 (en) * | 2000-04-13 | 2005-03-01 | Advanced Micro Devices, Inc. | Weighted fair queuing approximation in a network switch using weighted round robin and token bucket filter |
WO2002062013A2 (en) * | 2001-01-30 | 2002-08-08 | Nomadix, Inc. | Methods and systems providing fair queuing and priority scheduling to enhance quality of service in a network |
RU2316130C2 (ru) * | 2001-10-25 | 2008-01-27 | Квэлкомм Инкорпорейтед | Способ и система для передачи ip-пакетов путем объединения нескольких каналов радиосвязи для высокоскоростной передачи данных |
US7187684B2 (en) * | 2001-11-01 | 2007-03-06 | International Business Machines Corporation | Weighted fair queue having extended effective range |
RU2005131960A (ru) * | 2003-03-17 | 2006-05-27 | Квэлкомм Инкорпорейтед (US) | Управление разрешением на доступ и распределение ресурсов в системе связи с поддержкой потоков приложений с наличием требований к качеству обслуживания |
US7373420B1 (en) * | 2003-08-01 | 2008-05-13 | Nortel Networks Limited | Method and apparatus for weighted fair queuing |
Also Published As
Publication number | Publication date |
---|---|
BRPI0920260A2 (pt) | 2016-01-05 |
US8711871B2 (en) | 2014-04-29 |
CN102246462A (zh) | 2011-11-16 |
US20110255551A1 (en) | 2011-10-20 |
EP2345207A4 (en) | 2013-01-16 |
EP2345207A1 (en) | 2011-07-20 |
US20140086259A1 (en) | 2014-03-27 |
KR20110091652A (ko) | 2011-08-12 |
CN102246462B (zh) | 2014-04-30 |
CA2743944A1 (en) | 2010-04-22 |
CN103916269A (zh) | 2014-07-09 |
WO2010043031A1 (en) | 2010-04-22 |
BRPI0920260A8 (pt) | 2016-09-27 |
JP2015109672A (ja) | 2015-06-11 |
RU2011119226A (ru) | 2012-11-27 |
US20100091783A1 (en) | 2010-04-15 |
US9042224B2 (en) | 2015-05-26 |
JP2012505572A (ja) | 2012-03-01 |
US7995597B2 (en) | 2011-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2495533C2 (ru) | Способ и система для планирования выбора данных для передачи в сети передачи данных | |
CN102752198B (zh) | 多核报文转发方法、多核处理器及网络设备 | |
US6909691B1 (en) | Fairly partitioning resources while limiting the maximum fair share | |
US7395369B2 (en) | Distributing data across multiple storage devices | |
JP2001292172A (ja) | 限定優先度キュースケジューラ | |
CN109872049B (zh) | 资源配置优化方法及装置 | |
CN111130790A (zh) | 基于区块链节点网络的共识出块方法 | |
JP2005510957A (ja) | トラフィックシェイピングのための階層的クレジットキューイング | |
CN103248622B (zh) | 一种自动伸缩的在线视频服务质量保障方法及系统 | |
CN114666805B (zh) | 一种适用于多颗粒度业务的光网络规划方法及系统 | |
US9240960B2 (en) | Port scheduling for a network device | |
CN112948104B (zh) | 负载均衡的数据采集方法及装置 | |
CN102420758A (zh) | 队列调度方法及装置 | |
Peköz | Optimal policies for multi-server non-preemptive priority queues | |
CN106776032A (zh) | 分布式块存储的io请求的处理方法和装置 | |
Zhan et al. | A mode transformation algorithm based on traffic prediction in virtual multi‐OLT PON | |
CN104660525B (zh) | 一种带宽分配方法、控制器及通信系统 | |
Kumar et al. | Analysis of multiprogramming-multiprocessor retrial queueing systems with Bernoulli vacation schedule | |
Van Uitert et al. | A reduced-load equivalence for Generalised Processor Sharing networks with long-tailed input flows | |
JP6234916B2 (ja) | ネットワークシステムおよびその制御方法 | |
CN113468214B (zh) | 数据库访问控制方法、装置、电子设备及可读存储介质 | |
CN116723158A (zh) | 基于高性能网络的多路径固定时隙及带宽预留调度方法 | |
US20190132376A1 (en) | Hierarchal Maximum Information Rate Enforcement | |
US7990988B2 (en) | Shared-management device | |
Marsan et al. | Good and bad dynamic polling orders in symmetric single buffer Markovian multiserver multiqueue systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | The patent is invalid due to non-payment of fees |
Effective date: 20151014 |