КОМПЬЮТЕР, УСТРОЙСТВО УПРАВЛЕНИЯ И СПОСОБ ОБРАБОТКИ ДАННЫХ
COMPUTER, CONTROL DEVICE AND DATA PROCESSING METHOD

[0001] Настоящая заявка испрашивает приоритет заявки патент Китая № 201410182148.1, поданной в Патентное ведомство Китая 30 апреля 2014 и озаглавленной ʺCOMPUTER, CONTROL DEVICE, AND DATA PROCESSING METHODʺ, и заявки на патент Китая № 201410682375.0, поданной в Патентное ведомство Китая 24 ноября 2014 и озаглавленной ʺCOMPUTER, CONTROL DEVICE, AND DATA PROCESSING METHODʺ, которые включены в настоящий документ во всей их полноте посредством ссылки.
ОБЛАСТЬ ТЕХНИКИ
[0002] Настоящее изобретение относится к компьютерной области и, в частности, к компьютеру, устройству управления и способу обработки данных.
УРОВЕНЬ ТЕХНИКИ
[0003] Чтобы улучшить эффективность работы компьютера или сервера, множество прикладных программ могут реализовать совместное использование ресурсов внутри компьютера. Например, к некоторому ресурсу памяти могут одновременно обращаться множество прикладных программ, и тем самым улучшается использование ресурсов памяти. Однако множество прикладных программ конфликтуют друг с другом, когда совместно используют ресурс, и поэтому некоторые важные прикладные программы не могут обрабатываться в приоритетном режиме, что оказывает негативное воздействие на качество обслуживания.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0004] Варианты осуществления настоящего изобретения обеспечивают компьютер, устройство управления и способ обработки данных, которые используются для улучшения качества обслуживания прикладной программы.
[0005] Первый аспект вариантов осуществления настоящего изобретения обеспечивает компьютер, причем компьютер включает в себя блок обработки и устройство управления, при этом:
блок обработки сконфигурирован, чтобы присоединять тег к запросу приложения и посылать к устройству управления присоединенный запрос приложения; и
устройство управления сконфигурировано, чтобы принимать присоединенный запрос приложения и определять, в соответствии с тегом и предварительно сохраненной политикой распределения ресурсов, количество ресурсов, распределенных для запроса приложения, причем политика распределения ресурсов включает в себя соответствие между тегом и количеством ресурсов, распределенных для запроса приложения; и дополнительно сконфигурировано, чтобы инструктировать компонент компьютера обрабатывать запрос приложения в соответствии с количеством ресурсов, распределенных для запроса приложения.
[0006] Со ссылкой на первый аспект, в первом возможном варианте реализации, устройство управления дополнительно включает в себя буфер, буфер включает в себя по меньшей мере две очереди, каждая очередь соответствует диапазону количеств ресурсов, и приоритет каждой очереди является различным;
устройство управления, в частности, сконфигурировано, чтобы выбирать, из по меньшей мере двух очередей в соответствии с количеством ресурсов, распределенных для запроса приложения, очередь, соответствующую запросу приложения, и сохранять запрос приложения в очереди, соответствующей запросу приложения; и
компонент компьютера сконфигурирован, чтобы получать запрос приложения из очереди, соответствующей запросу приложения, и исполнять запрос приложения.
[0007] Со ссылкой на первый аспект, во втором возможном варианте реализации, устройство управления дополнительно включает в себя процессор и кэш, причем кэш хранит политику распределения ресурсов; и
процессор дополнительно сконфигурирован, чтобы получать политику распределения ресурсов из кэша.
[0008] Со ссылкой на второй возможный вариант реализации первого аспекта, в третьем возможном варианте реализации, политика распределения ресурсов включает в себя таблицу управления, таблица управления включает в себя множество элементов (записи), и один элемент из множества элементов включает в себя соответствие между тегом и количеством ресурсов, распределенных для запроса приложения;
процессор, в частности, сконфигурирован, чтобы посылать инструкцию запроса в кэш, причем инструкция запроса включает в себя тег; и
кэш сконфигурирован, чтобы получать, в соответствии с инструкцией запроса, элемент, соответствующий тегу, и посылать элемент, соответствующий тегу, в процессор устройства управления.
[0009] Со ссылкой на первый аспект или с первого по третий возможные варианты реализации первого аспекта, в четвертом возможном варианте реализации настоящего изобретения, устройство управления дополнительно включает в себя интерфейс программирования, и интерфейс программирования сконфигурирован, чтобы изменять политику распределения ресурсов.
[0010] Со ссылкой на первый аспект или с первого по четвертый возможные варианты реализации первого аспекта, в пятом возможном варианте реализации, компьютер дополнительно включает в себя память, причем память хранит программное обеспечение администрирования узлов;
блок обработки дополнительно сконфигурирован, чтобы определять политику распределения ресурсов с использованием программного обеспечения администрирования узлов; и
устройство управления дополнительно сконфигурировано, чтобы получать политику распределения ресурсов из программного обеспечения администрирования узлов и записывать политику распределения ресурсов в кэш.
[0011] Со ссылкой на пятый возможный вариант реализации первого аспекта, в шестом возможном способе реализации, блок обработки дополнительно включает в себя регистр тега;
блок обработки дополнительно сконфигурирован, чтобы определять тег с использованием программного обеспечения администрирования узлов и записывать тег в регистр тега с использованием программного обеспечения администрирования узлов; и
блок обработки дополнительно сконфигурирован, чтобы считывать тег из регистра тега.
[0012] Второй аспект вариантов осуществления настоящего изобретения обеспечивает устройство управления, причем устройство управления расположено на компоненте компьютера, и устройство управления включает в себя процессор, при этом
процессор сконфигурирован, чтобы принимать запрос приложения, к которому присоединен тег, и определять, в соответствии с тегом и предварительно сохраненной политикой распределения ресурсов, количество ресурсов, распределенных для запроса приложения, причем политика распределения ресурсов включает в себя соответствие между тегом и количеством ресурсов, распределенных для запроса приложения; и дополнительно сконфигурирован, чтобы инструктировать компонент компьютера обрабатывать запрос приложения в соответствии с количеством ресурсов, распределенных для запроса приложения.
[0013] Со ссылкой на второй аспект, в первом возможном варианте реализации, устройство управления дополнительно включает в себя буфер, буфер включает в себя по меньшей мере две очереди, каждая очередь соответствует диапазону количеств ресурсов, и приоритет каждой очереди является различным;
процессор, в частности, сконфигурирован, чтобы выбирать, из по меньшей мере двух очередей в соответствии с количеством ресурсов, распределенных для запроса приложения, очередь, соответствующую запросу приложения, и сохранять запрос приложения в очереди, соответствующей запросу приложения; и
компонент компьютера сконфигурирован, чтобы получать запрос приложения из очереди, соответствующей запросу приложения, и исполнять запрос приложения.
[0014] Со ссылкой на второй аспект, во втором возможном варианте реализации, устройство управления дополнительно включает в себя кэш, причем кэш хранит политику распределения ресурсов; и
процессор дополнительно сконфигурирован, чтобы получать политику распределения ресурсов из кэша.
[0015] Со ссылкой на второй возможный вариант реализации второго аспекта, в третьем возможном варианте реализации, политика распределения ресурсов включает в себя таблицу управления, таблица управления включает в себя множество элементов, и один элемент из множества элементов включает в себя соответствие между тегом и количеством ресурсов, распределенных для запроса приложения;
процессор, в частности, сконфигурирован, чтобы посылать инструкцию запроса в кэш, причем инструкция запроса включает в себя тег; и
кэш сконфигурирован, чтобы получать, в соответствии с инструкцией запроса, элемент, соответствующий тегу, и посылать элемент, соответствующий тегу, в процессор.
[0016] Со ссылкой на второй аспект или с первого по третий возможные варианты реализации второго аспекта, в четвертом возможном варианте реализации, устройство управления дополнительно включает в себя интерфейс программирования, и интерфейс программирования сконфигурирован, чтобы изменять политику распределения ресурсов.
[0017] Со ссылкой на второй аспект или с первого по четвертый возможные варианты реализации второго аспекта, в пятом возможном варианте реализации, политика распределения ресурсов определяется компьютером с использованием программного обеспечения администрирования узлов и посылается в устройство управления, причем программное обеспечения администрирования узлов сохранено в памяти компьютера.
[0018] Третий аспект вариантов осуществления настоящего изобретения обеспечивает способ обработки данных, причем способ применяется в устройстве управления, устройство управления находится на компоненте компьютера, и способ включает в себя:
прием, устройством управления, запроса приложения, содержащего тег;
определение, устройством управления в соответствии с тегом и предварительно сохраненной политикой распределения ресурсов, количества ресурсов, распределенных для запроса приложения, причем политика распределения ресурсов включает в себя соответствие между тегом и количеством ресурсов, распределенных для запроса приложения; и
инструктирование, устройством управления, компонента компьютера обрабатывать запрос приложения в соответствии с количеством ресурсов, распределенных для запроса приложения.
[0019] Со ссылкой на третий аспект, в первом возможном варианте реализации, устройство управления дополнительно включает в себя буфер, буфер включает в себя по меньшей мере две очереди, каждая очередь соответствует диапазону количеств ресурсов, и приоритет каждой очереди является различным; и
инструктирование, устройством управления, компонента компьютера обрабатывать запрос приложения в соответствии с количеством ресурсов, распределенных для запроса приложения, включает в себя:
выбор, устройством управления из по меньшей мере двух очередей в соответствии с количеством ресурсов, распределенных для запроса приложения, очереди, соответствующей запросу приложения, и сохранение запроса приложения в очереди, соответствующей запросу приложения, так что компонент компьютера получает запрос приложения из очереди, соответствующей запросу приложения, и исполняет запрос приложения.
[0020] Со ссылкой на третий аспект, во втором возможном варианте реализации, устройство управления дополнительно включает в себя процессор и кэш, причем кэш хранит политику распределения ресурсов; и
способ дополнительно включает в себя: получение, процессором устройства управления, политики распределения ресурсов из кэша.
[0021] Со ссылкой на второй возможный вариант реализации третьего аспекта, в третьем возможном варианте реализации, политика распределения ресурсов включает в себя таблицу управления, таблица управления включает в себя множество элементов, и один элемент из множества элементов включает в себя соответствие между тегом и количеством ресурсов, распределенных для запроса приложения;
получение, процессором устройства управления, политики распределения ресурсов из кэша включает в себя: посылку, процессором устройства управления, инструкции запроса в кэш, причем инструкция запроса включает в себя тег; и
получение, кэшем в соответствии с инструкцией запроса, элемента, соответствующего тегу, и посылку элемента, соответствующего тегу, в процессор устройства управления.
[0022] Варианты осуществления настоящего изобретения обеспечивают компьютер, причем компьютер включает в себя блок обработки и устройство управления. Блок обработки присоединяет тег к запросу приложения и посылает, на устройство управления, присоединенный запрос приложения; устройство управления определяет, в соответствии с тегом и предварительно сохраненной политикой распределения ресурсов, количество ресурсов, распределенных для запроса приложения, и инструктирует компонент компьютера обрабатывать запрос приложения в соответствии с количеством ресурсов, распределенных для запроса приложения. Таким способом, при обработке запроса приложения, компонент компьютера может выполнять обработку в соответствии с количеством ресурсов, распределенных для запроса приложения, что, в некоторой степени, препятствует взаимному перехвату некоторого количества ресурсов множеством запросов приложений, и тем самым улучшает качество обслуживания.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0023] Чтобы описать технические решения в вариантах осуществления настоящего изобретения или согласно предшествующему уровню техники более четко, ниже кратко описаны приложенные чертежи. Очевидно, что приложенные чертежи в последующем описании показывают только некоторые варианты осуществления настоящего изобретения, и специалист в данной области техники может получить другие чертежи на основе этих приложенных чертежей, без каких-либо творческих усилий.
[0024] Фиг. 1 - блок-схема системной архитектуры компьютера в соответствии с вариантом осуществления настоящего изобретения;
[0025] Фиг. 2a - блок-схема системной архитектуры другого компьютера в соответствии с вариантом осуществления настоящего изобретения;
[0026] Фиг. 2b - блок-схема устройства управления в соответствии с вариантом осуществления настоящего изобретения;
[0027] Фиг. 3 - блок-схема другого устройства управления в соответствии с вариантом осуществления настоящего изобретения;
[0028] Фиг. 4 - блок-схема еще одного устройства управления в соответствии с вариантом осуществления настоящего изобретения;
[0029] Фиг. 5 - блок-схема еще одного устройства управления в соответствии с вариантом осуществления настоящего изобретения;
[0030] Фиг. 6 - схематичное представление сетевой архитектуры плоскости управления в соответствии с вариантом осуществления настоящего изобретения;
[0031] Фиг. 7 - блок-схема программного обеспечения администрирования узлов в соответствии с вариантом осуществления настоящего изобретения;
[0032] Фиг. 8 - блок-схема последовательности операций способа обработки данных в соответствии с вариантом осуществления настоящего изобретения;
[0033] Фиг. 9 - блок-схема последовательности операций другого способа обработки данных в соответствии с вариантом осуществления настоящего изобретения; и
[0034] Фиг. 10 - блок-схема последовательности операций еще одного способа обработки данных в соответствии с вариантом осуществления настоящего изобретения.
ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ
[0035] Ниже ясно и полно описаны технические решения в вариантах осуществления настоящего изобретения со ссылками на приложенные чертежи в вариантах осуществления настоящего изобретения. Очевидно, что описанные варианты осуществления являются некоторыми, но не всеми вариантами осуществления настоящего изобретения. Все другие варианты осуществления, полученные специалистом в данной области техники на основе данных вариантов осуществления настоящего изобретения без творческих усилий, должны подпадать под объем защиты настоящего изобретения.
[0036] Варианты осуществления настоящего изобретения обеспечивают компьютер, устройство управления и способ обработки данных, которые используются, чтобы улучшить качество обслуживания прикладной программы.
[0037] Фиг. 1 является блок-схемой системной архитектуры компьютера 10 в соответствии с вариантом осуществления настоящего изобретения. Как показано на фиг. 1, компьютер 10 включает в себя множество блоков 11 обработки, множество устройств 66 управления и множество компонентов 33 (которые упоминаются как части для краткости на фиг. 1) компьютера. Компонент компьютера в этом варианте осуществления настоящего изобретения относится к компоненту компьютера, ресурс которого может быть занят множеством прикладных программ.
[0038] Блок 11 обработки относится к одному из процессорных ядер, которые находятся на центральном блоке обработки (Central Processing Unit, CPU) и которые имеют ту же самую функцию, и сконфигурирован для исполнения различных операционных команд, таких как считывание и запись.
[0039] Компонент 33 компьютера включает в себя высокоскоростную сеть межсоединений на кристалле и компонент, который является компонентом компьютера и непосредственно соединен с высокоскоростной сетью межсоединений на кристалле, например, кэш (также упоминаемый как кэш), память, блок обработки графики (Graphic Processing Unit, GPU) и видео RAM, и может дополнительно включать в себя I/O-сеть межсоединений и I/O-устройство, соединенное с I/O-сетью межсоединений, например, магнитный диск (также упоминаемый как жесткий диск), сетевой адаптер и дисплей.
[0040] Высокоскоростная сеть межсоединений на кристалле является соединителем для соединения множества блоков 11 обработки; высокоскоростная сеть межсоединений на кристалле также соединена с кэшем, памятью, блоком обработки графики, видео RAM и т.п.
[0041] В случае кэша, ресурс, распределенный кэшем прикладной программе, может быть пространством кэша; в случае памяти, ресурс, распределенный памятью прикладной программе, может быть пространством памяти; в случае блока обработки графики, ресурс, распределенный блоком обработки прикладной программе, может быть ресурсом аппаратного ускорения; в случае видео RAM, ресурс, распределенный посредством видео RAM прикладной программе, может быть пространством видео RAM.
[0042] Кроме того, высокоскоростная сеть межсоединений на кристалле может также соединяться с I/O-сетью межсоединений (также называемой ʺюжный мостʺ).
[0043] I/O-сеть межсоединений является устройством для управления I/O-устройством.
[0044] Компонент 33 компьютера дополнительно включает в себя I/O-устройство, непосредственно соединенное с I/O-сетью межсоединений, например, магнитный диск (также упоминаемый как жесткий диск), сетевой адаптер и дисплей.
[0045] Например, на интервале времени, компьютер 10 может обрабатывать множество прикладных программ, и все эти прикладные программы должны занимать ресурс компонента (например, памяти) компьютера. Однако поскольку ресурсы в памяти ограничены, некоторые важные прикладные программы не могут обрабатываться своевременно, что влияет на качество обслуживания.
[0046] Поэтому, в данном варианте осуществления настоящего изобретения, устройства 66 управления располагаются на компонентах компьютера, причем ресурсы компонентов могут быть применены для или заняты множеством прикладных программ. Устройства 66 управления сконфигурированы, чтобы распределять различные количества ресурсов прикладным программам в соответствии с различными типами прикладных программ, чтобы обрабатывать прикладные программы. Здесь, компоненты, ресурсы которых могут быть применены для или заняты множеством прикладных программ компьютера, включают в себя, без ограничения указанным: высокоскоростную сеть межсоединений на кристалле, кэш, память, блок обработки графики, видео RAM и I/O-сеть межсоединений.
[0047] Следует отметить, что в этом варианте осуществления настоящего изобретения, устройство 66 управления может располагаться только на одном компоненте компьютера среди множества компонентов компьютера; или устройства 66 управления могут располагаться на множестве компонентов компьютера; или даже устройства 66 управления могут располагаться на всех из вышеупомянутых компонентов компьютера.
[0048] Чтобы позволить устройству 66 управления идентифицировать прикладные программы различных типов, типы запросов приложений должны быть идентифицированы и маркированы тегом (тегированы) на стороне источника, на которой генерируются запросы приложений (запросы, соответствующие прикладным программам). Поэтому, когда запросы приложений посылаются позже к устройству 66 управления на компоненте компьютера, устройство 66 управления может выполнять различную обработку на прикладных программах различных типов в соответствии с тегами. Следует отметить, что в этом варианте осуществления настоящего изобретения, прикладные программы и запросы приложений представляют то же самое значение. Кроме того, запросы приложений в этом варианте осуществления настоящего изобретения включают в себя различные инструкции, генерируемые внутри компьютера и различные инструкции, принимаемые с внешней стороны компьютера, например, запрос доступа к файлу, запрос воспроизведения видео, запрос доступа к памяти, I/O-запрос и запрос межсоединения (Interconnect).
[0049] Здесь, сторона источника, на которой генерируются запросы приложений, может быть блоком 11 обработки или I/O-устройством (например, сетевым адаптером). Когда запросы приложений являются локальными от компьютера 10, сторона источника, на которой генерируются запросы приложений, может быть блоком 11 обработки; когда запросы приложений поступают извне компьютера 10, например, когда принимаются запросы приложений, посланные с использованием Интернета, сторона источника, на которой генерируются запросы приложений, может быть сетевым адаптером или другим устройством ввода-вывода.
[0050] Когда запрос приложения является внутренним из компьютера 10, способ маркировки (тегирования) может быть следующим:
[0051] Регистр 77 тега (как показано на фиг. 2a) располагается в блоке 11 обработки, и регистр 77 тега хранит значение регистра. Когда блок 11 обработки генерирует запрос приложения, блок 11 обработки присоединяет тег к запросу приложения путем считывания значения регистра, где тег является значением регистра.
[0052] Более конкретно, тег определяется программным обеспечением администрирования узлов (которое описано далее более подробно) для запроса приложения. Программное обеспечение администрирования узлов может быть модулем в операционной системе или модулем на среднем уровне программного обеспечения (гипервизором) между операционной системой и аппаратными средствами компьютера и исполняется на блоке 11 обработки. После того как программное обеспечение администрирования узлов определяет тег для запроса приложения, операционная система может записать тег в контекст процесса, соответствующего запросу приложения, и затем записать контекст процесса, соответствующего запросу приложения, в регистр.
[0053] Опциональный способ реализации является следующим:
[0054] Поскольку блок 11 обработки сам может включать в себя множество регистров, один регистр из множества регистров может быть установлен как регистр 77 тега, где регистр 77 тега сконфигурирован для хранения тега прикладной программы. При генерации запроса приложения, блок 11 обработки считывает значение регистра в регистре 77 тега, использует значение регистра как тег и записывает значение регистра в запрос приложения. Понятно, что тег может быть представлен идентификатором (ID) прикладной программы, буквой, числом и т.п., что здесь не ограничивается.
[0055] Другой опциональный способ реализации является следующим:
[0056] Новый регистр присоединен к блоку 11 обработки, и новый регистр определен как регистр 77 тега, где регистр 77 тега сконфигурирован для хранения тега прикладной программы. Способ последующей обработки является тем же, что и в предшествующем способе реализации, и вновь здесь не описывается.
[0057] Когда сетевой адаптер служит в качестве стороны источника запроса приложения, в одном способе реализации, сетевой адаптер сам не исполняет действия тегирования запроса приложения. Например, если сетевой адаптер принимает запрос приложения, запрос приложения является запросом приложения, содержащим тег. То есть, передающая сторона запроса приложения может тегировать запрос приложения перед передачей запроса приложения. Понятно, что в распределенной системе, серверы (или компьютеры) могут определять тег запроса приложения посредством соглашения; или сервер тегов может быть предусмотрен, чтобы определять и посылать тег запроса приложения на каждый сервер. Все способы реализации и т.п. должны входить в объем защиты данного варианта осуществления настоящего изобретения. Другой способ реализации является следующим: когда сетевой адаптер принимает пакет сообщения, запрос приложения получают путем синтаксического анализа пакета сообщения, и затем запрос приложения тегируется. В этом случае способ тегирования запроса приложения сетевым адаптером подобен способу, который описан выше, тегирования блоком 11 обработки и здесь повторно не описывается.
[0058] Следует отметить, что другой компонент, например, I/O-сеть межсоединений, внутри компьютера 10 может также присоединять тег к запросу приложения, способ реализации этого подобен таковому для блока 11 обработки или сетевого адаптера, и данный вариант осуществления настоящего изобретения не устанавливает никакого ограничения на компонент для тегирования.
[0059] Далее описывается последующая процедура обработки с использованием примера, в котором блок 11 обработки присоединяет тег к запросу приложения.
[0060] После того как тег присоединен к запросу приложения, и когда блок 11 обработки посылает запрос приложения на устройство управления 66, тег запроса приложения переносится.
[0061] Более конкретно, устройство управления 66 сконфигурировано для приема присоединенного запроса приложения и определения, в соответствии с тегом и предварительно сохраненной политикой распределения ресурсов, количества ресурсов, распределенных для запроса приложения, где политика распределения ресурсов включает в себя соответствие между тегом и количеством ресурсов, распределенных для запроса приложения; и дополнительно сконфигурировано, чтобы инструктировать компонент компьютера обрабатывать запрос приложения в соответствии с количеством ресурсов, распределенных для запроса приложения.
[0062] Данный вариант осуществления настоящего изобретения обеспечивает компьютер, причем компьютер включает в себя блок обработки и устройство управления. Блок обработки присоединяет тег к запросу приложения, и посылает на устройство управления присоединенный запрос приложения; устройство управления определяет, в соответствии с тегом и предварительно сохраненной политикой распределения ресурсов, количество ресурсов, распределенных для запроса приложения, и инструктирует компонент компьютера обрабатывать запрос приложения в соответствии с количеством ресурсов, распределенных для запроса приложения. Таким путем, при обработке запроса приложения, компонент компьютера может выполнять обработку в соответствии с количеством ресурсов, распределенных для запроса приложения, что, в некоторой степени, препятствует взаимному перехвату некоторого количества ресурсов множеством запросов приложений и, тем самым, улучшает качество обслуживания.
[0063] Далее главным образом описывается структура и функции устройства 66 управления.
[0064] Устройство 66 управления относится к устройству, внутри компьютера 10, на любом компоненте из компонентов компьютера. Если некоторые компоненты компьютера включают в себя контроллер (например, память включает в себя контроллер памяти или сетевой адаптер включает в себя контроллер сетевого адаптера), устройство 66 управления может быть устройством управления, встроенным в контроллер, или заново присоединенным устройством управления, соединенным с исходным контроллером; если некоторые компоненты компьютера не включают в себя контроллер, устройство 66 управления может быть заново присоединенным контроллером или устройством управления, соединенным с компонентами компьютера.
[0065] Как показано на фиг. 2b, устройство 66 управления включает в себя процессор 600a.
[0066] Устройство 66 управления сконфигурировано, чтобы принимать запрос приложения, к которому присоединен тег, и определять, в соответствии с тегом и предварительно сохраненной политикой распределения ресурсов, количество ресурсов, распределенных для запроса приложения, причем политика распределения ресурсов включает в себя соответствие между тегом и количеством ресурсов, распределенных для запроса приложения; и дополнительно сконфигурировано, чтобы инструктировать компонент компьютера обрабатывать запрос приложения в соответствии с количеством ресурсов, распределенных для запроса приложения.
[0067] Кроме того, устройство 66 управления может дополнительно включать в себя буфер (также упоминаемый как буфер) 600b.
[0068] Например, процессор 600a сконфигурирован, чтобы хранить, в буфере 600b, присоединенный запрос приложения; считывать тег из буфера 600b, и определять, в соответствии с тегом и предварительно сохраненной политикой распределения ресурсов, количество ресурсов, распределенных для запроса приложения, причем политика распределения ресурсов включает в себя соответствие между тегом и количеством ресурсов, распределенных для запроса приложения; и инструктировать компонент компьютера обрабатывать запрос приложения в соответствии с количеством ресурсов, распределенных для запроса приложения.
[0069] Следует отметить, что буфер 600b также может быть регистром в процессоре 600a. В этом случае, способ обработки может быть следующим: процессор 600a сконфигурирован, чтобы хранить, в регистре процессора 600a, присоединенный запрос приложения; считывать тег из регистра и определять, в соответствии с тегом и предварительно сохраненной политикой распределения ресурсов, количество ресурсов, распределенных для запроса приложения, причем политика распределения ресурсов включает в себя соответствие между тегом и количеством ресурсов, распределенных для запроса приложения; и инструктировать компонент компьютера обрабатывать запрос приложения в соответствии с количеством ресурсов, распределенных для запроса приложения.
[0070] Например, как показано на фиг. 3, опциональный способ реализации является следующим: устройство управления 66 может включать в себя процессор 600i, буфер (также упоминаемый как буфер) 600b и очередь 600c.
[0071] Процессор 600i может быть программируемой вентильной матрицей (Field-Programmable Gate Array, FPGA) или другим программируемым устройством 600i, where политика распределения ресурсов может быть таблицей управления (как показано в Таблице 1), и таблица управления является редактируемой.
Таблица 1
Тег
Атрибут 1
…
Атрибут i
Состояние 1
…
Состояние i
Тег 1
Диапазон значений
…
Диапазон значений
Значение
…
Значение
…
Тег k
Диапазон значений
…
Диапазон значений
Значение
Значение
[0072] Более конкретно, каждый элемент в Таблице 1 соответствует одному тегу. Кроме того, каждый элемент таблицы управления включает в себя множество ʺатрибутовʺ, где ʺатрибутʺ представляет количество ресурсов, распределенных для запроса приложения, соответствующего тегу. Может иметься множество типов количеств ресурсов, например, могут включаться качество целевой услуги, IPC (инструкция на цикл), время отклика, максимальный допуск и т.п. Диапазон значений ʺатрибутаʺ может быть установлен пользователем. Например, диапазон значений может быть определен как диапазон не меньше, чем 30%, или не больше, чем 80%. Кроме того, каждый элемент также включает в себя множество ʺсостоянийʺ, где ʺсостояниеʺ представляет количество ресурсов, в текущий момент потребляемых запросом приложения, соответствующим тегу, и значение ʺсостоянияʺ может контролироваться в реальном времени и обновляться.
[0073] Кроме того, политика распределения ресурсов может также быть кодом встроенного программного обеспечения и встроена в FPGA. Этот вариант осуществления настоящего изобретения не устанавливает никакого ограничения на способ хранения политики распределения ресурсов.
[0074] Буфер 600b является временным буфером. Когда устройство 66 управления принимает запрос приложения, содержащий тег, запрос приложения сначала помещается в буфер 600b для временного хранения.
[0075] Очередь 600c также является временным буфером, который может быть расположен в том же самом временном буфере, что и буфер 600b, или может быть отдельным от буфера 600b, чтобы независимо служить в качестве временного буфера. Очередь 600c сконфигурирована, чтобы хранить запрос приложения, обработанный процессором 600i. Очередь 600c может включать в себя множество очередей, и различные очереди соответствуют различным сегментам адресов в буфере 600b. Различные очереди имеют разные приоритеты, и приоритеты представляются в различных последовательностях для исполнения, компонентом компьютера, запросов приложений в очередях, что означает, что различные количества ресурсов распределены для различных очередей.
[0076] Кроме того, устройство 66 управления может дополнительно включать в себя интерфейс 600d программирования.
[0077] Интерфейс 600d программирования сконфигурирован, чтобы реализовывать механизм отображения адресного пространства, и может отображать таблицу управления, встроенную в процессор 600i, на физическое адресное пространство компьютера 10. Программное обеспечение администрирования узлов может получать доступ к физическому адресному пространству компьютера 10, чтобы редактировать таблицу управления. Например, интерфейс 600d программирования может обеспечивать различные функции, которые используются, чтобы добавлять, изменять или удалять элемент, сохраненный в таблице управления. Кроме того, процессор 600i может дополнительно предоставлять значения всех ʺсостоянийʺ в каждом элементе таблицы управления процессора 600i в программное обеспечение администрирования узлов, так что программное обеспечение администрирования узлов дополнительно настраивает политику распределения ресурсов после сбора статистики о значениях ʺсостоянийʺ всех запросов приложений.
[0078] Например, процессор 600i может получать, из буфера 600b, запрос приложения, содержащий тег, и запрашивать соответствующий элемент в Таблице 1 в соответствии с тегом, чтобы получить ʺатрибутʺ запроса приложения. Поскольку ʺатрибутʺ запроса приложения указывает количество ресурсов, распределенных для запроса приложения, процессор 600i может выбрать, из по меньшей мере двух очередей в соответствии с количеством ресурсов, распределенных для запроса приложения, очередь, соответствующую запросу приложения, и поместить запрос приложения в соответствующую очередь.
[0079] После помещения запроса приложения в соответствующую очередь, процессор 600i может инструктировать соответствующий компонент компьютера выполнять обработку по запросу приложения. Здесь ʺсоответствующий компонент компьютераʺ относится к компоненту, к которому принадлежит устройство управления, компьютера. Например, если устройство управления относится к устройству управления на кэше, ʺсоответствующий компонент компьютераʺ относится здесь к кэшу.
[0080] Здесь, ʺинструктирование соответствующего компонента компьютера выполнять обработку по запросу приложенияʺ может состоять в том, что процессор 600i удаляет запрос приложения из соответствующий очереди и посылает запрос приложения на соответствующий компонент компьютера, или может состоять в том, что соответствующий компонент компьютера получает запрос приложения из соответствующий очереди.
[0081] Кроме того, устройство 66 управления может дополнительно включать в себя модуль пересылки 600j данных. После помещения различных запросов приложений в различные очереди 600c, процессор 600i может послать запрос приложения на модуль пересылки 600j данных после удаления запроса приложения из очередей; и модуль пересылки 600j данных сконфигурирован, чтобы пересылать запрос приложения на соответствующий компонент компьютера. То есть, соответствующий компонент компьютера здесь может получать запрос приложения из соответствующий очереди с использованием модуля пересылки 600j данных.
[0082] Кроме того, перед помещением запроса приложения в соответствующую очередь 600c, процессор 600i может выполнять некоторые операции предварительной обработки, такие как сжатие и шифрование, на запросе приложения, и затем помещать запрос приложения, который прошел операции предварительной обработки, в соответствующую очередь 600c.
[0083] Как показано на фиг. 4, для устройства 66 управления, другой опциональный вариант реализации является следующим:
[0084] Устройство 66 управления включает в себя буфер (также упоминается как буфер) 600b, очередь 600c, микропроцессор 600e и кэш (также упоминается как кэш) 600f.
[0085] Буфер (также упоминается как буфер) 600b и очередь 600c являются теми же самыми, что и буфер и очередь, показанные на фиг. 3, и не описываются здесь снова.
[0086] Микропроцессор 600e может быть CPU или другим контроллером, функции которого подобны таковым у CPU. Различие между микропроцессором 600e и процессором 600i, показанным на фиг. 3, заключается в следующем: процессор 600i служит в качестве программируемого устройства, политика распределения ресурсов встроена в процессор 600i, и политика распределения ресурсов является редактируемой; микропроцессор 600e исполняет функцию CPU, но таблица управления не может быть встроена в микропроцессор 600e. Поэтому устройство 66 управления, показанное на фиг. 4, дополнительно включает в себя кэш 600f. Кэш 600f хранит политику распределения ресурсов, где политика распределения ресурсов относится к программному коду, функция которого подобна функции таблицы управления.
[0087] Например, если устройство 66 управления принимает запрос приложения, содержащий тег, запрос приложения сначала помещается в буфер 600b. Микропроцессор 600e может получать, из очереди запросов приложений, сохраненных в буфере 600b, запрос приложения, переносящий тег; считывать политику распределения ресурсов из кэша 600f в буфер 600b; определять, в соответствии с тегом и политикой распределения ресурсов, количество ресурсов, распределенных для запроса приложения; выбирать, из по меньшей мере двух очередей, очередь, соответствующую запросу приложения; и помещать запрос приложения в соответствующую очередь. Микропроцессор 600e затем удаляет запрос приложения из соответствующей очереди и посылает запрос приложения на соответствующий компонент компьютера.
[0088] Альтернативно, устройство 66 управления может дополнительно включать в себя модуль пересылки 600j данных. После помещения различных запросов приложений в различные очереди 600c, микропроцессор 600e может посылать запрос приложения на модуль пересылки 600j данных после удаления запроса приложений из очередей, и модуль пересылки 600j данных сконфигурирован, чтобы пересылать запрос приложения на соответствующий компонент компьютера. Вариант последующей обработки является тем же самым, что и вариант реализации, показанный на фиг. 3, и здесь вновь не описывается.
[0089] Кроме того, устройство 66 управления, показанное на фиг. 4, может дополнительно включать в себя логику управления (которая не показана на фиг. 4), которая используется для изменения политики распределения ресурсов, сохраненной в кэше 600f.
[0090] Аналогичным образом, перед помещением запроса приложения в соответствующую очередь 600c, микропроцессор 600e может выполнять некоторые операции предварительной обработки, такие как сжатие и шифрование, на запросе приложения, и затем помещать запрос приложения, который прошел операции предварительной обработки, в соответствующую очередь 600c.
[0091] Понятно, что если имеется буфер внутри микропроцессора 600e, микропроцессор 600e может также считывать, в буфер микропроцессора 600e, запрос приложения, переносящий тег, и политику распределения ресурсов, сохраненную в кэше 600f, обрабатывать запрос приложения в буфере микропроцессора 600e и помещать запрос приложения в соответствующую очередь 600c в соответствии с результатом обработки.
[0092] Для устройства 66 управления, еще один опциональный вариант реализации является следующим:
[0093] Как показано на фиг. 5, устройство 66 управления может включать в себя буфер 600b, логику 600g управления сравнением, кэш 600f и очередь 600c.
[0094] Здесь, логика 600g управления сравнением может быть специализированной интегральной схемой (Application Specific Integrated Circuits, ASIC) или другой интегральной схемой.
[0095] Буфер 600b соответствует буферу, описанному выше.
[0096] Кэш 600f хранит таблицу управления (Таблицу 1).
[0097] Когда устройство 66 управления принимает запрос приложения, содержащий тег, запрос приложения сначала помещается в соответствующую очередь. Очередь может быть частью пространства кэша в буфере 600b или независимым буфером. Логика 600g управления сравнением считывает запрос приложения из очереди в буфер 600b (или буфер логики 600g управления сравнением) и посылает инструкцию считывания в кэш 600f в соответствии с тегом запроса приложения, чтобы запросить кэш 600f возвратить элемент, соответствующий тегу. Контент элемента загружается в буфер 600b (или буфер логики 600g управления сравнением); логика 600g управления сравнением выбирает соответствующую очередь из по меньшей мере двух очередей в соответствии с контентом элемента в буфере 600b (или буфере логики 600g управления сравнением), чтобы поместить запрос приложения в очередь 600c. Логика 600g управления сравнением затем удаляет запрос приложения из соответствующей очереди и посылает запрос приложения на соответствующий компонент компьютера.
[0098] Альтернативно, устройство 66 управления может дополнительно включать в себя модуль пересылки 600j данных. После помещения различных запросов приложений в различные очереди 600c, логика 600g управления сравнением может послать запрос приложения на модуль пересылки 600j данных после удаления запроса приложения из очередей, и модуль пересылки 600j данных сконфигурирован, чтобы пересылать запрос приложения на соответствующий компонент компьютера.
[0099] Аналогичным образом, логика 600g управления сравнением может дополнительно выполнять, в буфере 600b, некоторые операции предварительной обработки, такие как сжатие и шифрование, на запросе приложения.
[0100] Кроме того, устройство 66 управления может дополнительно включать в себя интерфейс 600d программирования, который сконфигурирован, чтобы редактировать таблицу управления, сохраненную в кэше 600f. В отношении конкретной функции интерфейса 600d программирования, можно сослаться на описания интерфейса 600d программирования в варианте осуществления, показанном на фиг. 3.
[0101] Следует отметить, что устройства 66 управления на компонентах компьютера 10 могут не быть абсолютно одинаковыми. Более конкретно, политики распределения ресурсов, сохраненные устройствами 66 управления, могут не быть абсолютно одинаковыми. Например, для того же самого запроса приложения, когда запрос приложения требует доступа к памяти, количество ресурсов, распределенных для запроса приложения памятью, может достигать 80%; когда запрос приложения должен быть выведен с использованием I/O-устройства, количество ресурсов, распределенных для запроса приложения I/O-сетью межсоединений, может быть только 70%.
[0102] С использованием устройства управления, обеспеченного в этом варианте осуществления настоящего изобретения, количество ресурсов, распределенных для запроса приложения, может быть определено в соответствии с тегом запроса приложения и предварительно сохраненной политикой распределения ресурсов, и компонент компьютера инструктируется обрабатывать запрос приложения в соответствии с количеством ресурсов, распределенных для запроса приложения. Таким путем, при обработке запроса приложения, компонент компьютера может выполнять обработку в соответствии с количеством ресурсов, распределенных для запроса приложения, что, в некоторой степени, препятствует взаимному перехвату некоторого количества ресурсов множеством запросов приложений и, тем самым, улучшает качество обслуживания.
[0103] В этом варианте осуществления настоящего изобретения, устройства 66 управления на компонентах компьютера могут формировать сеть устройств управления, которая используется, чтобы соединять все устройства 66 управления, как показано пунктирной линией на фиг. 1 или фиг. 2a. Каждое устройство управления включает в себя одну точку физического доступа и получает доступ к сети устройств управления с использованием точки физического доступа. Сеть устройств управления может передавать данные с использованием протокола высокопроизводительной шины подключения периферийных компонентов (Peripheral Component Interconnect Express, PCIe) или другого протокола, и тип протокола не ограничен в этом варианте осуществления настоящего изобретения.
[0104] В этом варианте осуществления настоящего изобретения, может быть дополнительно включено программное обеспечение администрирования узлов (которое не показано на фиг. 1), где программное обеспечение администрирования узлов может быть модулем в операционной системе или модулем в среднем уровне программного обеспечения (гипервизором) между операционной системой и компьютерными аппаратными средствами и исполняется на одном из множества блоков 11 обработки. Программное обеспечение администрирования узлов сконфигурировано, чтобы управлять всеми устройствами 66 управления посредством сети устройств управления, например, выполняя операцию инициализации на устройствах 66 управления, собирая значения ʺсостоянияʺ устройств 66 управления, определяя или корректируя политику распределения ресурсов в соответствии с собранными значениями ʺсостоянияʺ, посылая политику распределения ресурсов к устройствам 66 управления и т.п.
[0105] Опционально, как показано на фиг. 6, способ реализации является следующим: специализированная сеть установлена на компьютере 10, и все устройства 66 управления соединены с использованием корневого маршрутизатора, где точки физического доступа всех устройств 66 управления соединены со специализированной сетью. Специализированная сеть может обеспечивать протокол связи, протокол связи отвечает за определение формата пакета сообщения для доступа к устройствам 66 управления. Например, пакет сообщения может включать в себя, но без ограничения, номер устройства управления или ID устройства управления, команду устройства управления (например, добавление политики распределения ресурсов, удаление политики распределения ресурсов или изменение политики распределения ресурсов) и параметр команды устройства управления. Кроме того, чтобы позволить устройствам 66 управления осуществлять связь с внешним устройством компьютера 10 или программным обеспечением администрирования узлов, пакет сообщения может также передаваться после инкапсуляции с использованием протокола PCIe или другого протокола.
[0106] Опционально, другой вариант реализации является следующим: каждое устройство 66 управления выполняет обмен данными с программным обеспечением администрирования узлов способом отображения адресного пространства. Более конкретно, каждое устройство 66 управления отображает таблицу управления или политику распределения ресурсов устройства 66 управления в физическое адресное пространство компьютера 10. Программное обеспечение администрирования узлов может получать доступ к адресному пространству, чтобы реализовать редактирование таблицы управления или политики распределения ресурсов.
[0107] Как показано на фиг. 7, программное обеспечение администрирования узлов может включать в себя модуль 701 драйвера устройства управления, модуль 702 контроля и администрирования и пользовательский интерфейс 703 программирования.
[0108] Модуль 701 драйвера устройства управления сконфигурирован, чтобы сканировать и идентифицировать новое устройство 66 управления компонента компьютера и инициализировать устройство 66 управления и посылать политику распределения ресурсов на устройство 66 управления. Кроме того, модуль 701 драйвера устройства управления дополнительно сконфигурирован, чтобы добавлять, изменять или удалять политику распределения ресурсов.
[0109] Модуль 702 контроля и администрирования сконфигурирован, чтобы хранить собранное значение ʺсостоянияʺ каждого устройства 66 управления, выполнять корреляционный анализ собранного значения ʺсостоянияʺ каждого устройства 66 управления и определять политику распределения ресурсов в комбинации с пользовательской потребностью.
[0110] Пользовательский интерфейс 703 программирования сконфигурирован, чтобы обеспечивать интерфейс программирования приложения (Application programming interface, API), так что другое программное обеспечение или прикладная программа могут реализовать программирование устройства 66 управления с использованием API. Например, API включает в себя по меньшей мере следующие интерфейсы: команду инициализации, команду для добавления политики распределения ресурсов, команду для изменения политики распределения ресурсов, команду для удаления политики распределения ресурсов и т.п.
[0111] Устройство управления, показанное на фиг. 2b, фиг. 3, фиг. 4 или фиг. 5, в вариантах осуществления настоящего изобретения является только примером, который применим к вариантам осуществления настоящего изобретения, и не предназначается для установки конкретного ограничения для применения настоящего изобретения. Например, устройство управления может также представлять собой специализированную интегральную схему. Не существенно, какова форма устройства управления, устройство управления реализует, в компьютере, функцию устройства управления. Компьютер, описанный в вариантах осуществления настоящего изобретения, может быть персональным компьютером, сервером, мобильным телефоном или портативным компьютером; настоящее изобретение не накладывает ограничения на конкретную форму реализации компьютера. Настоящий документ не описывает отдельно другие варианты осуществления системы или сценарии применения.
[0112] Далее описывается процедура, в которой устройство управления располагается внутри компьютера, чтобы реализовать обработку данных в варианте осуществления настоящего изобретения. Способ обработки данных в этом варианте осуществления настоящего изобретения может быть реализован в устройстве управления, показанном на фиг. 2b, фиг. 3, фиг. 4 или фиг. 5. Как показано на фиг. 8, способ включает в себя:
[0113] Этап S101: устройство управления принимает запрос приложения, содержащий тег.
[0114] Запрос приложения, переносящий тег, может поступать из блока 11 обработки, показанного на фиг. 1 или фиг. 2a, или может поступать от сетевого адаптера. Если запрос приложения, переносящий тег, направляется из блока 11 обработки, блоку 11 обработки необходимо присоединить тег к запросу приложения при приеме или генерации запроса приложения. Более конкретно, что касается варианта присоединения тега к запросу приложения блоком 11 обработки, можно сослаться на вариант осуществления, показанный на фиг. 2a, и детали здесь повторно не описываются.
[0115] Если запрос приложения, переносящий тег, направляется из сетевого адаптера, одним случаем будет следующий: когда сетевой адаптер принимает запрос приложения, запрос приложения представляет собой запрос приложения, содержащий тег. Другим случаем будет следующий: когда сетевой адаптер принимает пакет сообщения, запрос приложения получают путем синтаксического анализа пакета сообщения, и затем запрос приложения тегируется.
[0116] Кроме того, перед этапом S101, операционная система или гипервизор может выполнять операцию инициализации на каждом устройстве 66 управления в компьютере с использованием программного обеспечения администрирования узлов, так что каждое устройство управления находится в рабочем состоянии. После того как устройство 66 управления было подвергнуто операции инициализации, программное обеспечение администрирования узлов посылает политики распределения ресурсов на каждое устройство 66 управления через сеть устройств управления.
[0117] Этап S102: устройство управления определяет, в соответствии с тегом и предварительно сохраненной политикой распределения ресурсов, количество ресурсов, распределенных для запроса приложения, где политика распределения ресурсов включает в себя соответствие между тегом и количеством ресурсов, распределенных для запроса приложения.
[0118] Более конкретно, устройство управления записывает, в первый буфер (буфер 600b, показанный на фиг. 2b) устройства управления, запрос приложения, переносящий тег, и считывает тег из первого буфера.
[0119] Политика распределения ресурсов посылается в устройство 66 управления с использованием программного обеспечения администрирования узлов, и тег, присоединенный к запросу приложения блоком 11 обработки, таким образом, определяется с использованием программного обеспечения администрирования узлов; поэтому, тег, переносимый в запросе приложения, может быть ассоциирован с тегом в политике распределения ресурсов, и устройство управления может определить, в соответствии с тегом и предварительно сохраненной политикой распределения ресурсов, количество ресурсов, распределенных для запроса приложения.
[0120] Здесь количество ресурсов может быть количеством ресурсов, распределенных для запроса приложения компонентом компьютера, в котором находится устройство управления, или может быть процентным значением, или может дополнительно включать в себя информацию о приоритете и т.п. Например, если компонент компьютера, в котором находится устройство управления, расположен в памяти, то количеством ресурсов может быть размер пространства памяти или процентное значение (например, 80%) пространства памяти или другая информация (можно сослаться на описания ʺатрибутовʺ в Таблице 1). Этот вариант осуществления настоящего изобретения не устанавливает никакого ограничения на форму выражения количества ресурсов, и любая может включаться в объем защиты данного варианта осуществления настоящего изобретения, при условии, что она представляет приоритет или скорость обработки запроса приложения компонентом.
[0121] Кроме того, политика распределения ресурсов здесь может быть встроена в процессор устройства управления (можно сослаться на вариант реализации, показанный на фиг. 3) или может быть сохранена в кэше устройства управления (можно сослаться на вариант реализации, показанный на фиг. 3).
[0122] Этап S103: устройство управления инструктирует компонент компьютера обрабатывать запрос приложения в соответствии с количеством ресурсов, распределенных для запроса приложения.
[0123] Инструктирование компонента компьютер обрабатывать запрос приложения в соответствии с количеством ресурсов, распределенных для запроса приложения, может представлять собой посылку количества ресурсов, распределенных для запроса приложения, и запроса приложения на компонент, или может представлять собой посылку запроса приложения на компонент и уведомление компонента о способе обработки запроса приложения.
[0124] В этом варианте осуществления настоящего изобретения, устройство управления может определять, согласно тегу, переносимому в запросе приложения, и соответствию между тегом и количеством ресурсов, распределенных для запроса приложения, количество ресурсов, распределенных для запроса приложения, и затем инструктировать компонент компьютера обрабатывать запрос приложения в соответствии с количеством ресурсов, распределенных для запроса приложения. Поэтому, различные количества ресурсов могут быть распределены для различных запросов приложений, тем самым улучшая качество обслуживания.
[0125] Опционально, если обработка запроса приложения не завершена после этапа S103, еще требуется применить ресурс от другого компонента компьютера и обрабатывать запрос приложения, то обрабатываемый запрос приложения может пересылаться к устройству управления другого компонента компьютера для обработки, и его способ обработки подобен этапам S101-S103. Следует отметить, что запрос приложения, который пересылается к устройству управления на другом компоненте компьютера, также переносит тег.
[0126] Далее описывается другой вариант реализации способа обработки данных в варианте осуществления настоящего изобретения. Как показано на фиг. 9, способ включает в себя:
[0127] Этап S201: он такой же, как этап S101.
[0128] Этап S202: устройство управления получает политики распределения ресурсов из кэша (который может кратко упоминаться как кэш).
[0129] Если политика распределения ресурсов представляет собой код программного обеспечения, устройство управления может загрузить политику распределения ресурсов в буфер процессора устройства управления. Если политика распределения ресурсов представляет собой таблицу управления, такую как показанная Таблица 1, устройство управления может послать инструкцию запроса в кэш, причем инструкция запроса включает в себя тег, кэш выполняет поиск в таблице управления на наличие соответствующего элемента согласно тегу и возвращает элемент в устройство управления. Устройство управления загружает элемент в буфер процессора устройства управления. Более конкретно, элемент включает в себя соответствие между тегом и количеством ресурсов, распределенных для запроса приложения.
[0130] Этап S203: устройство управления определяет, в соответствии с тегом и предварительно сохраненной политикой распределения ресурсов, количество ресурсов, распределенных для запроса приложения.
[0131] Этап S204: он является тем же, что и этап S103.
[0132] В этом варианте осуществления настоящего изобретения, устройство управления может определять, согласно тегу, переносимому в запросе приложения, и соответствию между тегом и количеством ресурсов, распределенных для запроса приложения, количество ресурсов, распределенных для запроса приложения, и затем инструктировать компонент компьютера обрабатывать запрос приложения в соответствии с количеством ресурсов, распределенных для запроса приложения. Поэтому различные количества ресурсов могут быть распределены для различных запросов приложений, тем самым улучшая качество обслуживания.
[0133] Далее описан другой вариант реализации способа обработки данных в варианте осуществления настоящего изобретения. Как показано на фиг. 10, способ включает в себя:
[0134] Этап S301: он является тем же самым, что и этап S101.
[0135] Этап S302: он является тем же самым, что и этап S102 и является тем же самым, что и этапы S202 и S203.
[0136] Этап S303: устройство управления выбирает из по меньшей мере двух очередей в соответствии с количеством ресурсов, распределенных для запроса приложения, очередь, соответствующую запросу приложения, и сохраняет запрос приложения в очереди, соответствующей запросу приложения.
[0137] Более конкретно, устройство управления может включать в себя второй буфер, и очередь сохраняется во втором буфере (можно сослаться на вариант реализации, показанный на фиг. 3, фиг. 4 или фиг. 5). Второй буфер включает в себя по меньшей мере две очереди, причем каждая очередь соответствует диапазону величин ресурсов, и приоритет каждой очереди является различным.
[0138] Этап S304: модуль пересылки данных (например, модуль 600j пересылки данных на фиг. 3-5) устройства управления получает запрос приложения из очереди, соответствующей запросу приложения, и пересылает запрос приложения на компонент компьютера.
[0139] Этап S305: компонент компьютера получает и исполняет запрос приложения.
[0140] Следует отметить, что этап S304 является опциональным этапом, и компонент компьютера может также получать запрос приложения из соответствующей очереди.
[0141] Например, второй буфер может включать в себя три очереди, которые являются очередью высокого приоритета, очередью среднего приоритета и очередью низкого приоритета. Процентное значение количества ресурсов, которое соответствует очереди высокого приоритета, составляет 70%-80%. Если количество ресурсов, распределенных для запроса приложения, равно 76%, то запрос приложения помещается в очередь высокого приоритета. Очередь высокого приоритета означает предпочтительную последовательность обработки или относительно высокую скорость обработки. Компонент компьютера может предпочтительно получить запрос приложения из очереди высокого приоритета и исполнять запрос приложения. Опционально, устройство управления может дополнительно обращаться к другому фактору, например, количеству ресурсов, которое было использовано запросом приложения в текущий момент, чтобы учитывать, в какую очередь помещен запрос приложения. В настоящем документе, сценарии применения отдельно не описываются.
[0142] Понятно, что каждая очередь может включать в себя множество подлежащих обработке запросов приложений. Для множества подлежащих обработке запросов приложений в каждой очереди, компонент компьютера может выполнять обработку по принципу ʺпервым поступил - первым обслуженʺ или по другому принципу.
[0143]Кроме того, после того как устройство управления помещает запросы приложений в соответствующие очереди, устройство управления может также удалять запросы приложений из очереди в последовательности (когда имеется множество запросов приложений в очереди) и затем посылать запросы приложений на компонент компьютера для обработки.
[0144] В этом варианте осуществления настоящего изобретения, устройство управления может определять, согласно тегу, переносимому в запросе приложения, и соответствию между тегом и количеством ресурсов, распределенных для запроса приложения, количество ресурсов, распределенных для запроса приложения, помещать запрос приложения в соответствующую очередь в соответствии с количеством ресурсов, распределенных для запроса приложения, и затем получать запрос приложения из очереди, соответствующей запросу приложения, и посылать запрос приложения на модуль пересылки данных. Модуль пересылки данных пересылает запрос приложения на компонент компьютера для исполнения, тем самым улучшая качество обслуживания.
[0145] Опционально, в варианте реализации способа обработки данных, показанного на фиг. 8, фиг. 9 или фиг. 10, могут быть дополнительно включены следующие этапы:
[0146] После того как исполнение запроса приложения завершено, компонент компьютера может послать сообщение обратной связи на операционную систему, чтобы сообщить, что запрос приложения обработан. В этом случае, сообщение освобождения ресурса может быть послано на устройство управления с использованием программного обеспечения администрирования узлов, причем сообщение освобождения ресурса используется для удаления политики распределения ресурсов в устройстве управления.
[0147] Далее дополнительно описываются процедуры обработки на фиг. 8-10 с использованием примера, в котором обрабатывается запрос приложения для воспроизведения видео.
[0148] Этап 1: пользователь указывает (кликает) видео файл на локальном компьютере.
[0149] Этап 2: CPU генерирует запрос доступа к памяти, чтобы считать видео файл.
[0150] Этап 3: CPU тегирует запрос доступа к памяти и посылает, в устройство управления на памяти, запрос доступа к памяти, переносящий тег.
[0151] Этап 4: устройство управления на памяти определяет, в соответствии с тегом, пространство памяти, распределенное для запроса доступа к памяти, и дополнительно помещает запрос доступа к памяти в соответствующую очередь в соответствии с распределенным пространством памяти.
[0152] Этап 5: устройство управления на памяти удаляет запрос доступа к памяти из очереди и посылает запрос доступа к памяти в память, чтобы исполнять запрос доступа к памяти.
[0153] Этап 6: память посылает ответ к CPU после загрузки видео файла.
[0154] Этап 7: CPU получает видео файл из памяти и посылает запрос ускорения в GPU, чтобы запрашивать GPU выполнять аппаратное декодирование видео файла, причем запрос аппаратного ускорения переносит видео файл и тег.
[0155] Этап 8: устройство управления на GPU определяет, в соответствии с тегом, количество ресурсов аппаратного ускорения, распределенных для видео файла, и затем помещает запрос аппаратного ускорения в соответствующую очередь соответственно количеству распределенных ресурсов аппаратного ускорения.
[0156] Этап 9: устройство управления на GPU удаляет запрос аппаратного ускорения из очереди и посылает запрос аппаратного ускорения на GPU.
[0157] Этап 10: GPU выполняет обработку аппаратного ускорения на видео файле в соответствии с запросом аппаратного ускорения.
[0158] Этап 11: после того как обработка завершена, если не требуется выполнять другую обработку на видео файле, GPU может посылать запрос вывода на ʺюжный мостʺ (например, I/O-сеть управления, показанную на фиг. 1 или фиг. 2a), где запрос вывода включает в себя видео файл, который подвергнут обработке аппаратного ускорения, и тег.
[0159] Этап 12: устройство управления на южном мосту определяет, в соответствии с тегом, ширину полосы, распределенную для видео файла, и затем помещает запрос вывода в соответствующую очередь согласно распределенной ширине полосы.
[0160] Этап 13: южный мост удаляет видео файл из очереди и посылает видео файл на дисплей.
[0161] Этап 14: дисплей отображает видео файл.
[0162] Специалисту в данной области техники может быть известно, что, в комбинации с примерами, описанными в вариантах осуществления, раскрытых в настоящем описании, блоки и этапы алгоритмов могут быть реализованы электронными аппаратными средствами, компьютерным программным обеспечением или их комбинацией. Чтобы явно описать взаимозаменяемость между аппаратными средствами и программным обеспечением, состав и этапы каждого примера описаны выше в общем в соответствии с функциями. То, выполняются ли функции посредством аппаратных средств или компьютерного программного обеспечения, зависит от конкретных применений и условий конструктивных ограничений технических решений. Специалист в данной области техники может использовать различные способы, чтобы реализовать описанные функции для каждого конкретного применения, но не должно считаться, что такая реализация выходит за пределы объема настоящего изобретения.
[0163] Специалисту в данной области техники должно быть понятно, что, в целях удобства и краткости описания, в отношении детального рабочего процесса вышеуказанной системы, устройства и блока, можно сослаться на соответствующий процесс в предыдущих вариантах осуществления способа, и детали здесь повторно не описываются.
[0164] В различных вариантах осуществления, предусмотренных в настоящей заявке, должно быть понятно, что раскрытые система, устройство и способ могут быть реализованы другими путями. Например, описанный вариант осуществления устройства является только примерным. Например, разделение на блоки является только разделением на логические функции, и могут иметь место другие разделения в реальной реализации. Например, множество блоков или компонентов могут быть объединены или интегрированы в другую систему, или некоторые признаки могут игнорироваться или не выполняться. Кроме того, изображенные или описанные взаимосвязи или прямые связи или коммуникационные соединения могут быть реализованы через некоторые интерфейсы. Косвенные связи или коммуникационные соединения между устройствами или блоками могут быть реализованы в электронной, механической или других формах.
[0165] Блоки, описанные как отдельные части, могут быть или не быть физически отдельными, и части, показанные как блоки, могут быть или не быть физическими блоками, могут располагаться в одном положении или могут быть распределены по множеству сетевых блоков. Некоторые или все из блоков могут быть выбраны в соответствии с действительными потребностями для достижения целей решений вариантов осуществления настоящего изобретения.
[0166] Кроме того, функциональные блоки в вариантах осуществления настоящего изобретения могут быть интегрированы в один блок обработки, или каждый из блоков может существовать отдельно физически, или два или более блоков интегрированы в один блок. Интегрированный блок может быть реализован в форме аппаратных средств или может быть реализован в форме функционального блока программного обеспечения.
[0167] Когда интегральный блок реализован в форме функционального блока программного обеспечения и продается или используется как независимый продукт, интегральный блок может быть сохранен в считываемом компьютером носителе хранения данных. Основываясь на таком понимании, технические решения настоящего изобретения по существу или в части, вносящей вклад в уровень техники, или все или часть технических решений могут быть реализованы в форме программного продукта. Программный продукт сохранен на носителе хранения данных и включает в себя различные инструкции для инструктирования компьютерного устройства (которое может быть персональным компьютером, сервером или сетевым устройством) выполнять все или некоторые из этапов способов, описанных в вариантах осуществления настоящего изобретения. Вышеуказанный носитель хранения данных включает в себя любой носитель, который может хранить программный код, такой как USB флэш-накопитель, съемный жесткий диск, постоянная память (ROM, Read-Only Memory), оперативная память (RAM, Random Access Memory), магнитный диск или оптический диск.
[0168] Предшествующие описания являются только конкретными вариантами осуществления настоящего изобретения, но не предназначаются для ограничения объема защиты настоящего изобретения. Любые модификации или замены, легко осуществляемые специалистом в данной области техники в рамках технического объема, раскрытого в настоящем изобретении, будут подпадать под объем защиты настоящего изобретения. Поэтому объем защиты настоящего изобретения должен определяться объемом защиты формулы изобретения.