×
20.01.2016
216.013.a269

Результат интеллектуальной деятельности: СПОСОБ И УСТРОЙСТВА ОБРАБОТКИ ВИРТУАЛИЗАЦИИ И КОМПЬЮТЕРНАЯ СИСТЕМА

Вид РИД

Изобретение

№ охранного документа
0002573219
Дата охранного документа
20.01.2016
Аннотация: Изобретение относится к обработке виртуализации в компьютерной системе. Технический результат заключается в обеспечении совместимости средств виртуализации с устройствами, использующимися в компьютерной системе. Вычислительный узел включает в себя: аппаратный уровень, хост, и, по меньшей мере, одну виртуальную машину VM, выполняющуюся на хосте, с несколькими соответствующими устройствами виртуальной функции VF, полученными из устройства I/O, хост имеет несколько экземпляров программного обеспечения VF и несколько устройств VF, находящихся во взаимно однозначном соответствии. Хост дополнительно имеет экземпляр внутренней стороны BE виртуального устройства I/O, однотипного устройству I/O, VM имеет экземпляр внешней стороны FE виртуального устройства I/O; BE на хосте связана с неактивным экземпляром программного обеспечения VF. 4 н. и 14 з.п. ф-лы, 19 ил.

Перекрестная ссылка на родственные заявки

[0001] Данная заявка является продолжением международной заявки № PCT/CN2012/075846, поданной 22 мая 2012 г., которая испрашивает приоритет по заявке на патент Китая №201110458345.8, поданной 31 декабря 2011 г., которые обе, таким образом, включены посредством ссылки в полном объеме.

Область техники, к которой относится изобретение

[0002] Настоящее изобретение относится к области компьютерных технологий и, в частности, к способу и устройствам обработки виртуализации и компьютерной системе.

Уровень техники

[0003] Технология виртуализации является технологией развязки для отделения аппаратного устройства низкого уровня от операционной системы и прикладных программ более высокого уровня, и, согласно фиг. 1, уровень монитора виртуальной машины (VMM, монитор виртуальной машины) предложен для непосредственного управления аппаратными ресурсами низкого уровня, создания виртуальной машины (VM, виртуальная машина), не зависящей от оборудования низкого уровня, для использования операционной системой и прикладными программами более высокого уровня.

[0004] Технология виртуализации, в качестве одной из важных поддерживающих технологий популярной в настоящее время платформы облачных вычислений (облачные вычисления) может значительно повышать эффективность использования ресурсов физического устройства. По сравнению с традиционным физическим сервером, виртуальная машина имеет лучшую изоляцию и инкапсуляцию, и информация виртуальной машины в целом может сохраняться в виртуальном образе диска (VDI, виртуальный образ диска), для удобства осуществления операций, например, фотографирования, резервного копирования, клонирования и доставки для виртуальной машины.

[0005] С развитием процессора x86, технология виртуализации центрального процессора (ЦП, центральный процессор) и памяти постоянно совершенствуется, при этом служебная нагрузка постоянно снижается. Согласно данным по последнему процессору, служебная нагрузка виртуализации ЦП и памяти для большинства приложений составляла менее 10%. В области виртуализации ввода/вывода (I/O, ввод/вывод), решение I/O виртуализации, имеющее высокую производительность и низкую задержку, все еще является ключевой технической задачей в области виртуализации. Традиционное решение виртуализации I/O включает в себя два типа, а именно, программное решение и аппаратное решение. Однако традиционные программное решение и аппаратное решение имеют выдающиеся преимущества и недостатки. Например, традиционное программное решение имеет преимущество в совместимости, но имеет большую потерю производительности; аппаратное решение может обеспечивать желаемую производительность, но сталкивается с такими проблемами, как совместимость признаков и совместимость гостевой операционной системы (гостевой OS).

Сущность изобретения

[0006] Варианты осуществления настоящего изобретения предусматривают способ и устройства обработки виртуализации, и компьютерную систему, для оптимизации производительность и совместимость системы виртуализации.

[0007] Для решения вышеупомянутых технических проблем варианты осуществления настоящего изобретения предусматривают следующие технические решения.

[0008] В одном аспекте, вариант осуществления настоящего изобретения предусматривает способ обработки виртуализации, который применяется к вычислительному узлу, и вычислительный узел включает в себя:

аппаратный уровень, хост, выполняющийся на аппаратном уровне, и, по меньшей мере, одну виртуальную машину VM, выполняющуюся на хосте, где аппаратный уровень включает в себя устройство ввода/вывода I/O, несколько соответствующих устройств виртуальной функции VF виртуализируется из устройства I/O, хост имеет несколько экземпляров программного обеспечения VF, несколько экземпляров программного обеспечения VF и несколько устройств VF находятся во взаимно-однозначном соответствии; хост дополнительно имеет экземпляр внутренней стороны BE виртуального устройства I/O, однотипного устройству I/O, VM имеет экземпляр внешней стороны FE виртуального устройства I/O; BE на хосте связана с неактивным экземпляром программного обеспечения VF;

способ включает в себя этапы, на которых:

предварительно выделяют, посредством FE, кэш-память для прямого доступа к памяти DMA;

получают, посредством экземпляра программного обеспечения VF, связанного с BE, адрес, соответствующий кэш-памяти для DMA, через экспортирующий интерфейс прикладного программирования BE, записывают полученный адрес, соответствующий кэш-памяти для DMA, в первый блок хранения устройства VF, соответствующего экземпляру программного обеспечения VF; выбирают, посредством устройства VF, адрес, соответствующий кэш-памяти для DMA, из первого блока хранения при наличии данных, подлежащих приему, и инициируют запрос записи DMA с использованием выбранного адреса, соответствующего кэш-памяти для DMA, в качестве целевого адреса; объявляют, посредством устройства VF, экземпляр программного обеспечения VF, который соответствует устройству VF и находится на хосте, после выполнения запроса записи DMA, так что экземпляр программного обеспечения VF запускает FE для приема данных, записанных в кэш-память, соответствующую адресу.

[0009] В другом аспекте, вариант осуществления настоящего изобретения дополнительно предусматривает способ обработки виртуализации, включающий в себя этапы, на которых:

после активации виртуальной функции I/O устройства ввода/вывода I/O, генерируют несколько экземпляров программного обеспечения VF на хосте; где несколько соответствующих устройств виртуальной функции VF виртуализируется из устройства I/O при активированной виртуальной функции I/O; несколько экземпляров программного обеспечения VF и несколько устройств VF находятся во взаимно-однозначном соответствии;

создают, посредством хоста, виртуальное устройство I/O, однотипное устройству I/O,

где экземпляр внутренней стороны BE виртуального устройства I/O создается на хосте, экземпляр внешней стороны FE виртуального устройства I/O создается в инициированной виртуальной машине VM; и

связывают BE с неактивным экземпляром программного обеспечения VF.

[0010] В другом аспекте, вариант осуществления настоящего изобретения дополнительно предусматривает вычислительный узел, включающий в себя: аппаратный уровень, хост, выполняющийся на аппаратном уровне, и, по меньшей мере, одну виртуальную машину VM, выполняющуюся на хосте, где аппаратный уровень включает в себя устройство ввода/вывода I/O, несколько соответствующих устройств виртуальной функции VF виртуализируется из устройства I/O, хост имеет несколько экземпляров программного обеспечения VF, несколько экземпляров программного обеспечения VF и несколько устройств VF находятся во взаимно-однозначном соответствии; хост дополнительно имеет экземпляр внутренней стороны BE виртуального устройства I/O, однотипного устройству I/O, VM имеет экземпляр внешней стороны FE виртуального устройства I/O; BE на хосте связана с неактивным экземпляром программного обеспечения VF;

где FE выполнен с возможностью предварительного выделения кэш-памяти для прямого доступа к памяти DMA;

экземпляр программного обеспечения VF, связанный с BE, выполнен с возможностью получения адреса, соответствующего кэш-памяти для DMA, через экспортирующий интерфейс прикладного программирования BE, записи полученного адреса, соответствующего кэш-памяти для DMA, в первый блок хранения в устройстве VF соответствующий экземпляру программного обеспечения VF;

устройство VF выполнено с возможностью выбора адреса, соответствующего кэш-памяти для DMA, из первого блока хранения при наличии данных, подлежащих приему, и инициирования запроса записи DMA с использованием выбранного адреса, соответствующего кэш-памяти для DMA, в качестве целевого адреса; и объявления экземпляра программного обеспечения VF, который соответствует устройству VF и находится на хосте, после выполнения запроса записи DMA, так что экземпляр программного обеспечения VF запускает FE для приема данных, записанных в кэш-память, соответствующую адресу.

[0011] В другом аспекте, вариант осуществления настоящего изобретения дополнительно предусматривает хост, включающий в себя:

первый модуль создания, выполненный с возможностью, после активации виртуальной функции I/O устройства ввода/вывода I/O, генерировать несколько экземпляров программного обеспечения VF на хосте; где несколько соответствующих устройств виртуальной функции VF виртуализируется из устройства I/O при активированной виртуальной функции I/O; несколько экземпляров программного обеспечения VF и несколько устройств VF находятся во взаимно-однозначном соответствии;

второй модуль создания, выполненный с возможностью создания виртуального устройства I/O, однотипного устройству I/O,

где, экземпляр внутренней стороны BE виртуального устройства I/O создается на хосте, экземпляр внешней стороны FE виртуального устройства I/O создается в инициированной виртуальной машине VM; и

модуль связывания, выполненный с возможностью связывания BE, созданного вторым модулем создания, с неактивным экземпляром программного обеспечения VF, созданным первым модулем создания.

[0012] Можно видеть, что, вычислительный узел в вариантах осуществления настоящего изобретения может включать в себя: аппаратный уровень, хост, выполняющийся на аппаратном уровне, и, по меньшей мере, одну VM, выполняющуюся на хосте, аппаратный уровень включает в себя устройство ввода/вывода I/O, несколько соответствующих устройств виртуальной функции VF виртуализируется из устройства I/O, хост имеет несколько экземпляров программного обеспечения VF, несколько экземпляров программного обеспечения VF и несколько устройств VF находятся во взаимно-однозначном соответствии; хост дополнительно имеет экземпляр внутренней стороны BE виртуального устройства I/O, однотипного устройству I/O, VM имеет экземпляр внешней стороны FE виртуального устройства I/O; где BE на хосте связана с неактивным экземпляром программного обеспечения VF. Таким образом, устанавливается архитектура приложения, в которой каждая VM может независимо использовать одно устройство VF, между одним устройством VF, виртуализированным из устройства I/O, и экземпляром внешней стороны FE в одной VM, проходит канал, так что FE может осуществлять доступ к устройству VF через BE на хосте. Устройство VF, виртуализированное из устройства I/O, по отдельности выделяется VM для использования, и устройство VF может обеспечивать высокоэффективный интерфейс устройства, поэтому VM полезно получать примерно такую же производительность, как у физической машины, задержка невелика, и возникновение какой-либо дополнительной служебной нагрузки ЦП маловероятно. Кроме того, привод внешней стороны (то есть, FE) виртуального устройства I/O находится в VM, поэтому FE переносит данные через привод внутренней стороны (то есть, BE) на хосте, и VM не воспринимает реальное физическое устройство хоста, что удобно для перехода и реализации совместного использования устройства, таким образом, реализуя оптимизацию совместимости системы виртуализации.

Краткое описание чертежей

[0013] Для пояснения технических решений вариантов осуществления настоящего изобретения или уровня техники, прилагаемые чертежи, используемые в описании вариантов осуществления или уровня техники, кратко описаны ниже. Очевидно, прилагаемые чертежи иллюстрируют некоторые иллюстративные варианты осуществления настоящего изобретения, и специалисты в данной области техники может получить другие чертежи на основании этих чертежей без применения творческих способностей.

[0014] Фиг. 1 - упрощенная архитектурная схема традиционной технологии виртуализации;

[0015] фиг. 2-a - упрощенная архитектурная схема программной и аппаратной системы виртуализации, предусмотренной согласно варианту осуществления настоящего изобретения;

[0016] фиг. 2-b - упрощенная архитектурная схема другой программной и аппаратной системы виртуализации, предусмотренной согласно варианту осуществления настоящего изобретения;

[0017] фиг. 3 - упрощенная блок-схема операций способа обработки виртуализации, предусмотренного согласно варианту осуществления настоящего изобретения;

[0018] фиг. 4 - упрощенная блок-схема операций другого способа обработки виртуализации, предусмотренного согласно варианту осуществления настоящего изобретения;

[0019] фиг. 5 - упрощенная блок-схема операций другого способа обработки виртуализации, предусмотренного согласно варианту осуществления настоящего изобретения;

[0020] фиг. 6-a - упрощенная блок-схема операций другого способа обработки виртуализации, предусмотренного согласно варианту осуществления настоящего изобретения;

[0021] фиг. 6-b - упрощенная схема трансляции адреса GPA и HPA, предусмотренной согласно варианту осуществления настоящего изобретения;

[0022] фиг. 7-a - упрощенная блок-схема операций другого способа обработки виртуализации, предусмотренного согласно варианту осуществления настоящего изобретения;

[0023] фиг. 7-b - упрощенная схема другой трансляции адреса GPA и HPA, предусмотренной согласно варианту осуществления настоящего изобретения;

[0024] фиг. 8-a - упрощенная блок-схема операций другого способа обработки виртуализации, предусмотренного согласно варианту осуществления настоящего изобретения;

[0025] фиг. 8-b - упрощенная схема другой трансляции адреса GPA и HPA, предусмотренной согласно варианту осуществления настоящего изобретения;

[0026] фиг. 9-a - упрощенная блок-схема операций другого способа обработки виртуализации, предусмотренного согласно варианту осуществления настоящего изобретения;

[0027] фиг. 9-b - упрощенная схема другой трансляции адреса GPA и HPA, предусмотренной согласно варианту осуществления настоящего изобретения;

[0028] фиг. 10 - упрощенная схема модульной архитектуры хоста, предусмотренной согласно варианту осуществления настоящего изобретения;

[0029] фиг. 11-a - упрощенная схема вычислительного узла, предусмотренного согласно варианту осуществления настоящего изобретения;

[0030] фиг. 11-b - упрощенная схема другого вычислительного узла, предусмотренного согласно варианту осуществления настоящего изобретения;

[0031] фиг. 11-c - упрощенная схема другого вычислительного узла, предусмотренного согласно варианту осуществления настоящего изобретения; и

[0032] фиг. 12 - упрощенная схема компьютерной системы, предусмотренной согласно варианту осуществления настоящего изобретения.

Подробное описание вариантов осуществления

[0033] Варианты осуществления настоящего изобретения предусматривают способ и устройства обработки виртуализации, и компьютерную систему, для оптимизации производительности и совместимости системы виртуализации.

[0034] Чтобы решения настоящего изобретения стали понятнее специалистам в данной области техники, технические решения в вариантах осуществления настоящего изобретения отчетливо и полностью описаны ниже со ссылкой на прилагаемые чертежи в вариантах осуществления настоящего изобретения. Очевидно, что варианты осуществления, подлежащие описанию, составляют лишь часть, а не все из вариантов осуществления настоящего изобретения. Все остальные варианты осуществления, полученные специалистами в данной области техники на основании вариантов осуществления настоящего изобретения без применения творческих способностей, должны попадать в объем защиты настоящего изобретения.

[0035] Для облегчения понимания вариантов осуществления настоящего изобретения, сначала проиллюстрируем несколько элементов, которые будут введены в описании вариантов осуществления настоящего изобретения.

[0036] Виртуальная машина VM:

Один или более виртуальных компьютеров можно имитировать на физическом компьютере посредством программного обеспечения виртуальной машины, и эти виртуальные машины работают, как реальные компьютеры, виртуальная машина может иметь операционную систему и установленные прикладные программы, и виртуальная машина также может обращаться к сетевым ресурсам. Для прикладной программы, выполняющейся на виртуальной машине, виртуальная машина ничем не отличается от реального компьютера.

[0037] Аппаратный уровень:

Аппаратная платформа выполняется в среде виртуализации. Аппаратный уровень может включать в себя множественные типы оборудования, например аппаратный уровень вычислительного узла может включать в себя ЦП и память, и может включать в себя высокоскоростные/низкоскоростные устройства ввода/вывода (I/O, ввод/вывод), например, сетевую карту и хранилище, и другие устройства, имеющие конкретные функции обработки, например, блок управления памятью ввода/вывода (IOMMU, блок управления памятью ввода/вывода), где IOMMU может быть выполнен с возможностью трансляции физического адреса виртуальной машины и физического адреса хоста.

[0038] Виртуальная функция I/O:

Соответствующее устройство физической функции (PF, физическая функция) и несколько устройств виртуальной функции (VF, виртуальная функция) можно виртуализировать из устройства I/O, имеющего виртуальную функцию I/O, после активации виртуальной функции I/O, где устройство PF, виртуализированное из устройства I/O, в основном, отвечает за функцию управления, и устройство VF, в основном, отвечает за функцию обработки.

[0039] Хост (Хост):

Хост, в качестве уровня управления, выполнен с возможностью выполнения управления и выделения аппаратных ресурсов; представления виртуальной аппаратной платформы для виртуальной машины; и реализации планирования и изоляции виртуальной машины. Хостом может быть монитор виртуальной машины (VMM); и, кроме того, иногда, VMM может объединяться с одной прерогативной виртуальной машиной для формирования хоста. Виртуальная аппаратная платформа обеспечивает различные аппаратные ресурсы для виртуальных машин, выполняющихся на платформе, например, обеспечивает виртуальный ЦП, память, виртуальный диск, виртуальную сетевую карту и т.д. Виртуальный диск может соответствовать одному файлу или одному устройству логического блока хоста. Виртуальная машина выполняется на виртуальной аппаратной платформе, подготовленной хостом, и хост может иметь одну или более виртуальных машин выполняющихся на хосте.

[0040] На фиг. 2-a и фиг. 2-b, фиг. 2-a и фиг. 2-b показаны упрощенные архитектурные схемы программных и аппаратных систем двух решений виртуализации, предусмотренных в вариантах осуществления настоящего изобретения. Архитектура системы, в основном, включает в себя три уровня: аппаратный уровень, хост и виртуальную машину (VM). Аппаратный уровень, показанный на фиг. 2-a или фиг. 2-b, включает в себя устройство I/O, и аппаратный уровень, показанный на фиг. 2-a, дополнительно включает в себя IOMMU. Хост выполняется на аппаратном уровне, и, по меньшей мере, одна виртуальная машина VM выполняется на хосте, где несколько соответствующих устройств виртуальной функции VF виртуализируется из устройства I/O, хост имеет несколько экземпляров программного обеспечения VF, несколько экземпляров программного обеспечения VF и несколько устройств VF находятся во взаимно-однозначном соответствии; хост дополнительно имеет экземпляр внутренней стороны (BE, внутренняя сторона) виртуального устройства I/O, однотипного устройству I/O, VM имеет экземпляр внешней стороны (FE, внешняя сторона) виртуального устройства I/O; BE на хосте связана с неактивным экземпляром программного обеспечения VF. В техническом решении варианта осуществления настоящего изобретения, BE в VM можно рассматривать как драйвер внешней стороны виртуального устройства I/O, FE на хосте можно рассматривать как драйвер внутренней стороны виртуального устройства I/O, и виртуальное устройство I/O состоит из BE и FE.

[0041] Способ обработки виртуализации согласно варианту осуществления настоящего изобретения можно применять к вычислительному узлу, где вычислительный узел содержит: аппаратный уровень, хост, выполняющийся на аппаратном уровне, и, по меньшей мере, одну VM, выполняющуюся на хосте, аппаратный уровень включает в себя устройство ввода/вывода I/O, способ обработки виртуализации может включать в себя: после активации виртуальной функции I/O устройства ввода/вывода I/O, генерацию нескольких экземпляров программного обеспечения виртуальной функции (VF, виртуальная функция) на хосте; несколько соответствующих устройств виртуальной функции (VF) виртуализируется из устройства I/O при активированной виртуальной функции I/O; несколько экземпляров программного обеспечения VF и несколько устройств VF находятся во взаимно-однозначном соответствии; создание, посредством хоста, виртуального устройства I/O, однотипного устройству I/O, где экземпляр внутренней стороны BE виртуального устройства I/O создается на хосте, в инициированной VM создается экземпляр внешней стороны FE виртуального устройства I/O; и связывание BE с неактивным экземпляром программного обеспечения VF.

[0042] Согласно фиг. 3, способ обработки виртуализации, предусмотренный согласно варианту осуществления настоящего изобретения, может включать в себя:

[0043] 301. После активации виртуальной функции I/O устройства ввода/вывода I/O, генерацию нескольких экземпляров программного обеспечения виртуальной функции VF (экземпляров VF) на хосте;

где несколько соответствующих устройств VF можно виртуализировать из устройства I/O при активированной виртуальной функции I/O; несколько экземпляров программного обеспечения VF и несколько устройств VF находятся во взаимно-однозначном соответствии. Например, хост может активировать виртуальную функцию I/O устройства I/O во время инициирования или в определенный момент после инициирования, для активации виртуальной функции I/O устройства I/O. Альтернативно, устройство I/O может автоматически активировать свою виртуальную функцию I/O после активации питания устройства, и в этом случае, хосту не требуется активировать виртуальную функцию I/O устройства I/O.

[0044] Следует отметить, что устройство I/O, упомянутое согласно варианту осуществления настоящего изобретения, может представлять собой, например, устройство высокоскоростного соединения периферийных компонентов (PCIe, Peripheral Component Interconnect Express) или устройство другого типа, например, сетевую карту.

[0045] 302. Создание, посредством хоста, виртуального устройства I/O, однотипного устройству I/O, где экземпляр внутренней стороны (BE, внутренняя сторона) виртуального устройства I/O (vDEV) создается на хосте, и экземпляр внешней стороны (FE, внешняя сторона) виртуального устройства I/O создается в инициированной VM.

[0046] 303. Связывание, посредством хоста, BE с неактивным экземпляром программного обеспечения VF.

[0047] Если хост создает несколько виртуальных устройств I/O, однотипных устройству I/O, экземпляр внутренней стороны BE каждого виртуального устройства I/O связывается с неактивным экземпляром программного обеспечения VF, и между BE и экземпляром программного обеспечения VF, которые находятся в отношении связывания, существует интерфейс взаимного доступа, например, BE может осуществлять доступ к устройству VF, соответствующему экземпляру программного обеспечения VF, через интерфейс доступа, обеспеченный экземпляром программного обеспечения VF, связанным с BF. Таким образом, устанавливается архитектура приложения, в которой каждая VM может независимо использовать одно устройство VF, между одним устройством VF, виртуализированным из устройства I/O, и экземпляром внешней стороны FE в одной VM, проходит канал, так что FE может осуществлять доступ к устройству VF через BE на хосте. Устройство VF, виртуализированное из устройства I/O, по отдельности выделяется VM для использования, поэтому VM полезно получать примерно такую же производительность, как у физической машины. На основе архитектуры приложения, построенной хостом, VM может передавать данные, принимать данные или осуществлять обработку данных в других формах.

[0048] Например, согласно фиг. 2-a и фиг. 2-b, несколько соответствующих устройств VF можно виртуализировать из устройства I/O (например, устройства PCIe) при активированной виртуальной функции I/O, и соответствующее устройство физической функции (PF, физическая функция) можно дополнительно виртуализировать из устройства I/O при активированной виртуальной функции I/O, экземпляры внутренней стороны BE нескольких виртуальных устройств I/O, однотипных с устройством I/O и созданных хостом, располагаются на хосте, и экземпляр внешней стороны FE каждого виртуального устройства I/O располагается в отдельной VM. Совместно используемую память можно дополнительно конфигурировать между хостом и VM, и экземпляр внутренней стороны BE и экземпляр внешней стороны FE виртуального устройства I/O могут, например, переносить данные через совместно используемую память.

[0049] Можно видеть, что, в этом варианте осуществления, после активации виртуальной функции I/O устройства ввода/вывода I/O, несколько экземпляров программного обеспечения VF генерируются на хосте; несколько соответствующих устройств VF виртуализируются из устройства I/O при активированной виртуальной функции I/O; несколько экземпляров программного обеспечения VF и несколько устройств VF находятся во взаимно-однозначном соответствии; хост создает виртуальное устройство I/O, однотипное устройству I/O, где экземпляр внутренней стороны BE виртуального устройства I/O создается на хосте, и в инициированной VM создается экземпляр внешней стороны FE виртуального устройства I/O; BE связана с неактивным экземпляром программного обеспечения VF. Таким образом, устанавливается архитектура приложения, в которой каждая VM может независимо использовать одно устройство VF, между одним устройством VF, виртуализированным из устройства I/O, и экземпляром внешней стороны FE в одной VM, проходит канал, так что FE может осуществлять доступ к устройству VF через BE на хосте. Устройство VF, виртуализированное из устройства I/O, по отдельности выделяется VM для использования, и устройство VF может обеспечивать высокоэффективный интерфейс устройства, поэтому VM полезно получать примерно такую же производительность, как у физической машины, задержка невелика и возникновение какой-либо дополнительной служебной нагрузки ЦП маловероятно. Кроме того, привод внешней стороны (то есть, FE) виртуального устройства находится в VM, поэтому данные переносятся через привод внутренней стороны (то есть, BE) на хосте, и VM не воспринимает реальное физическое устройство хоста, что удобно для перехода и реализации совместного использования устройства, таким образом, реализуя оптимизацию совместимости системы виртуализации.

[0050] Согласно фиг. 4, другой способ обработки виртуализации, предусмотренный согласно варианту осуществления настоящего изобретения применяется к вычислительному узлу, вычислительный узел включает в себя: аппаратный уровень, хост, выполняющийся на аппаратном уровне, и, по меньшей мере, одну VM, выполняющуюся на хосте, где аппаратный уровень включает в себя устройство ввода/вывода I/O, способ может включать в себя:

[0051] 401. Активацию, посредством хоста, виртуальной функции I/O устройства ввода/вывода I/O.

Например, хост может активировать виртуальную функцию I/O устройства I/O во время инициирования или в определенный момент после инициирования, для активации виртуальной функции I/O устройства I/O. Несколько соответствующих устройств VF виртуализируются из устройства I/O при активированной виртуальной функции I/O. Альтернативно, устройство I/O может автоматически активировать свою виртуальную функцию I/O после активации питания устройства, и в этом случае, хосту не требуется активировать виртуальную функцию I/O устройства I/O.

[0052] 402. Генерацию нескольких экземпляров программного обеспечения VF на хосте, где несколько соответствующих устройств VF можно виртуализировать из устройства I/O при активированной виртуальной функции I/O, и несколько экземпляров программного обеспечения VF и несколько устройств VF находятся во взаимно-однозначном соответствии.

[0053] 403. Создание, посредством хоста, виртуального устройства I/O, однотипного устройству I/O, где экземпляр внутренней стороны BE виртуального устройства I/O (vDEV) создается на хосте, и экземпляр внешней стороны FE виртуального устройства I/O создается в инициированной VM.

[0054] 404. Связывание, посредством хоста, BE с неактивным экземпляром программного обеспечения VF.

[0055] Если хост создает несколько виртуальных устройств I/O, однотипных устройству I/O, экземпляр внутренней стороны BE каждого виртуального устройства I/O связывается с неактивным экземпляром программного обеспечения VF, и между BE и экземпляром программного обеспечения VF, которые находятся в отношении связывания, существует интерфейс взаимного доступа, например, BE может осуществлять доступ к устройству VF, соответствующему экземпляру программного обеспечения VF, через интерфейс доступа, обеспеченный экземпляром программного обеспечения VF, связанным с BE. Таким образом, устанавливается архитектура приложения, в которой каждая VM может независимо использовать одно устройство VF, между одним устройством VF, виртуализированным из устройства I/O, и экземпляром внешней стороны FE в VM проходит канал, так что FE может осуществлять доступ к устройству VF через BE на хосте. Устройство VF, виртуализированное из устройства I/O, по отдельности выделяется VM для использования, поэтому VM полезно получать примерно такую же производительность, как у физической машины. На основе архитектуры приложения, построенной хостом, VM может передавать данные, принимать данные или осуществлять обработку данных в других формах.

[0056] Например, согласно фиг. 2-a и фиг. 2-b, несколько соответствующих устройств VF можно виртуализировать из устройства I/O (например, устройства PCIe) при активированной виртуальной функции I/O, и соответствующее устройство физической функции PF можно дополнительно виртуализировать из устройства I/O при активированной виртуальной функции I/O (хост может дополнительно генерировать экземпляр программного обеспечения PF, соответствующий устройству PF), экземпляры внутренней стороны BE нескольких виртуальных устройств I/O, однотипных с устройством I/O и созданных хостом, располагаются на хосте, и экземпляр внешней стороны FE каждого виртуального устройства I/O располагается в отдельной VM. Совместно используемую память можно дополнительно конфигурировать между хостом и VM, и экземпляр внутренней стороны BE и экземпляр внешней стороны FE виртуального устройства I/O может, например, переносить данные через совместно используемую память.

[0057] Для простоты понимания, необязательный режим взаимодействия архитектуры приложения, построенной на основании вышеупомянутого механизма, проиллюстрирован ниже на примере процедуры приема данных.

[0058] В сценарии приложения, после того, как хост связывает BE и неактивный экземпляр программного обеспечения VF, FE может предварительно выделять кэш-память для прямого доступа к памяти (DMA, прямой доступ к памяти); FE может записывать физический адрес гостя (GPA, физический адрес гостя), соответствующий предварительно выделенной кэш-памяти для DMA, в память, совместно используемую между хостом и VM; через экспортирующий интерфейс прикладного программирования BE, экземпляр программного обеспечения VF, связанный с BE, может получать GPA, соответствующий кэш-памяти для DMA; экземпляр программного обеспечения VF может записывать полученный GPA, соответствующий кэш-памяти для DMA, в очередь приема устройства VF, соответствующего экземпляру программного обеспечения VF; при наличии данных, подлежащих приему, устройство VF может выбирать GPA, соответствующий кэш-памяти для DMA, из очереди приема устройства VF, и может инициировать запрос записи DMA (запрос записи DMA используется для записи данных в кэш-память) с использованием выбранного GPA в качестве целевого адреса; блок управления памятью ввода/вывода IOMMU преобразует целевой адрес GPA запроса записи DMA в соответствующий физический адрес хоста HPA (где таблица страниц трансляции адреса, например, устанавливается в IOMMU, в таблице страниц трансляции адреса задано отображение между HPA и GPA; когда запрос записи DMA проходит, IOMMU может получать HPA, соответствующий целевому адресу GPA запроса записи DMA, посредством поиска в таблице страниц трансляции адреса, и преобразовывать целевой адрес GPA запроса записи DMA в полученный HPA); после выполнения запроса записи DMA, целевой адрес которого преобразуется в HPA, устройство VF может объявлять экземпляр программного обеспечения VF, который соответствует устройству VF и находится на хосте, так что экземпляр программного обеспечения VF запускает соответствующий FE для приема данных, записанных в кэш-память, соответствующую HPA.

[0059] В другом сценарии приложения, после того, как хост связывает BE и неактивный экземпляр программного обеспечения VF, FE может предварительно выделять кэш-память для DMA; FE может записывать GPA, соответствующий предварительно выделенной кэш-памяти для DMA, в память, совместно используемую между хостом и VM; хост (например, BE или другой модуль на хосте) может преобразовывать GPA, соответствующий кэш-памяти для DMA, в соответствующий HPA (например, на хосте устанавливается таблица страниц трансляции адреса, в таблице страниц трансляции адреса задано отображение между HPA и GPA; посредством поиска в таблице страниц трансляции адреса, хост (например, BE или другой модуль на хосте) может получать HPA, соответствующий GPA, который соответствует кэш-памяти для DMA, и преобразовывать GPA, соответствующий кэш-памяти для DMA в полученный HPA); экземпляр программного обеспечения VF, связанный с BE на хосте получает, через экспортирующий интерфейс прикладного программирования BE, HPA, соответствующий кэш-памяти для DMA; полученный HPA, соответствующий кэш-памяти для DMA, записывается в очередь приема устройства VF, соответствующего экземпляру программного обеспечения VF; при наличии данных, подлежащих приему, устройство VF выбирает HPA, соответствующий кэш-памяти для DMA, из очереди приема устройства VF, и инициирует запрос записи DMA (запрос записи DMA используется для записи данных в кэш-память) с использованием выбранного HPA в качестве целевого адреса; после выполнения запроса записи DMA, устройство VF может дополнительно объявлять экземпляр программного обеспечения VF, который соответствует устройству VF и находится на хосте, так что экземпляр программного обеспечения VF запускает соответствующий FE для приема данных, записанных в кэш-память, соответствующую HPA.

[0060] Для простоты понимания, необязательный режим взаимодействия архитектуры приложения, построенной на основании вышеупомянутого механизма, проиллюстрирован ниже на примере процедуры передачи данных.

[0061] В сценарии приложения, после того, как хост связывает BE и неактивный экземпляр программного обеспечения VF, FE может записывать GPA, соответствующий кэш-памяти, где находятся данные, подлежащие передаче, в память, совместно используемую между хостом и VM; соответствующий BE может вызывать программный интерфейс передачи экземпляра программного обеспечения VF, связанного с BE, и записывать GPA, соответствующий кэш-памяти, где находятся данные, подлежащие передаче, в очередь передачи устройства VF, соответствующего экземпляру программного обеспечения VF; обнаружив наличие данных, подлежащих передаче, устройство VF инициирует запрос чтения DMA (запрос записи DMA используется для считывания данных из кэш-памяти) с использованием GPA, записанного в очереди передачи устройства VF, в качестве целевого адреса; и IOMMU преобразует целевой адрес GPA запроса чтения DMA в соответствующий HPA (где таблица страниц трансляции адреса, например, устанавливается в IOMMU, в таблице страниц трансляции адреса задано отображение между HPA и GPA; когда запрос чтения DMA проходит, IOMMU может получать HPA, соответствующий целевому адресу GPA запроса чтения DMA, посредством поиска в таблице страниц трансляции адреса, и преобразовывать целевой адрес GPA запроса чтения DMA в полученный HPA). Дополнительно, после выполнения запроса чтения DMA, устройство VF может объявлять экземпляр программного обеспечения VF, который соответствует устройству VF и находится на хосте, так что экземпляр программного обеспечения VF запускает соответствующий FE для освобождения соответствующей кэш-памяти.

[0062] В другом сценарии приложения, после того, как хост связывает BE и неактивный экземпляр программного обеспечения VF, FE может записывать GPA, соответствующий кэш-памяти, где находятся данные, подлежащие передаче, в память, совместно используемую между хостом и VM; хост (например, BE или другой модуль на хосте) может преобразовывать GPA, соответствующий кэш-памяти в соответствующий HPA (например, на хосте устанавливается таблица страниц трансляции адреса, в таблице страниц трансляции адреса задано отображение между HPA и GPA; посредством поиска в таблице страниц трансляции адреса, хост (например, BE или другой модуль на хосте) может получать HPA, соответствующий GPA, который соответствует кэш-памяти, и преобразовывать GPA, соответствующий кэш-памяти в полученный HPA), соответствующий BE может вызывать программный интерфейс передачи экземпляра программного обеспечения VF, связанного с BE, и записывать HPA, соответствующий кэш-памяти, где находятся данные, подлежащие передаче, в очередь передачи устройства VF, соответствующего экземпляру программного обеспечения VF; при обнаружении наличия данных, подлежащих передаче, устройство VF инициирует запрос чтения DMA с использованием HPA, записанного в очереди передачи устройства VF, в качестве целевого адреса. Дополнительно, после выполнения запроса чтения DMA, устройство VF может объявлять экземпляр программного обеспечения VF, который соответствует устройству VF и находится на хосте, так что экземпляр программного обеспечения VF запускает соответствующий FE для освобождения соответствующей кэш-памяти.

[0063] Необязательный режим взаимодействия архитектуры приложения, построенной на основе вышеупомянутого механизма, проиллюстрирован ниже на примере процедур передачи данных и приема данных, и режимы взаимодействия в других сценариях приложения можно вывести по аналогии.

[0064] Можно видеть, что, в этом варианте осуществления, после активации виртуальной функции I/O устройства ввода/вывода I/O, несколько экземпляров программного обеспечения VF генерируются на хосте; несколько соответствующих устройств VF виртуализируются из устройства I/O при активированной виртуальной функции I/O; несколько экземпляров программного обеспечения VF и несколько устройств VF находятся во взаимно-однозначном соответствии; хост создает виртуальное устройство I/O, однотипное устройству I/O, где экземпляр внутренней стороны BE виртуального устройства I/O создается на хосте, и экземпляр внешней стороны FE виртуального устройства I/O создается в инициированной VM; BE связана с неактивным экземпляром программного обеспечения VF. Таким образом, устанавливается архитектура приложения, в которой каждая VM может независимо использовать одно устройство VF, между одним устройством VF, виртуализированным из устройства I/O, и экземпляром внешней стороны FE в одной VM, проходит канал, так что FE может осуществлять доступ к устройству VF через BE на хосте. Устройство VF, виртуализированное из устройства I/O, по отдельности выделяется VM для использования, и устройство VF может обеспечивать высокоэффективный интерфейс устройства, поэтому VM полезно получать примерно такую же производительность, как у физической машины, задержка невелика, и возникновение какой-либо дополнительной служебной нагрузки ЦП маловероятно. Кроме того, привод внешней стороны (то есть, FE) виртуального устройства находится в VM, поэтому данные переносятся через привод внутренней стороны (то есть, BE) на хосте, и VM не воспринимает реальное физическое устройство хоста, что удобно для перехода и реализации совместного использования устройства, таким образом, реализуя оптимизацию совместимости системы виртуализации.

[0065] Вариант осуществления настоящего изобретения дополнительно предусматривает способ обработки виртуализации, который применяется к вычислительному узлу, вычислительный узел может включать в себя: аппаратный уровень, хост, выполняющийся на аппаратном уровне, и, по меньшей мере, одну VM, выполняющуюся на хосте, где аппаратный уровень включает в себя устройство ввода/вывода I/O, несколько соответствующих устройств виртуальной функции VF виртуализируется из устройства I/O, хост имеет несколько экземпляров программного обеспечения VF, несколько экземпляров программного обеспечения VF и несколько устройств VF находятся во взаимно-однозначном соответствии; хост дополнительно имеет экземпляр внутренней стороны BE виртуального устройства I/O, однотипного устройству I/O, VM имеет экземпляр внешней стороны FE виртуального устройства I/O; BE на хосте связана с неактивным экземпляром программного обеспечения VF, способ включает в себя этапы, на которых: предварительно выделяют, посредством FE, кэш-память для прямого доступа к памяти DMA; получают, посредством экземпляра программного обеспечения VF, связанного с BE, адрес, соответствующий кэш-памяти для DMA, через экспортирующий интерфейс прикладного программирования BE, записывают полученный адрес, соответствующий кэш-памяти для DMA, в первый блок хранения устройства VF, соответствующего экземпляру программного обеспечения VF; выбирают, посредством устройства VF, адрес, соответствующий кэш-памяти для DMA, из первого блока хранения при наличии данных, подлежащих приему, и инициируют запрос записи DMA с использованием выбранного адреса, соответствующего кэш-памяти для DMA, в качестве целевого адреса; объявляют, посредством устройства VF, экземпляр программного обеспечения VF, который соответствует устройству VF и находится на хосте, после выполнения запроса записи DMA, так что экземпляр программного обеспечения VF запускает FE для приема данных, записанных в кэш-память, соответствующую адресу.

[0066] Согласно фиг. 5, другой способ обработки виртуализации согласно варианту осуществления настоящего изобретения может включать в себя следующие этапы:

[0067] 501. Предварительное выделение, посредством FE, кэш-памяти для прямого доступа к памяти DMA.

[0068] 502. Получение, посредством экземпляра программного обеспечения VF, связанного с BE, адреса (адресом является, например, HPA или GPA), соответствующего кэш-памяти для DMA, через экспортирующий интерфейс прикладного программирования BE, и запись полученного адреса, соответствующего кэш-памяти для DMA, в первый блок хранения устройства VF, соответствующего экземпляру программного обеспечения VF (где первым блоком хранения является, например, очередь приема или список приема устройства VF или другая структура хранения данных, пригодная для записи адреса)

[0069] 503. Выбор, посредством устройства VF, адреса, соответствующего кэш-памяти для DMA, из первого блока хранения при наличии данных, подлежащих приему, и инициирование запроса записи DMA с использованием выбранного адреса, соответствующего кэш-памяти для DMA, в качестве целевого адреса.

[0070] 504. Объявление, посредством устройства VF, экземпляра программного обеспечения VF, который соответствует устройству VF и находится на хосте, после выполнения запроса записи DMA, так что экземпляр программного обеспечения VF запускает FE для приема данных, записанных в кэш-память, соответствующую адресу.

[0071] Можно видеть, что, в этом варианте осуществления, вычислительный узел может включать в себя: аппаратный уровень, хост, выполняющийся на аппаратном уровне, и, по меньшей мере, одну VM, выполняющуюся на хосте, где аппаратный уровень включает в себя устройство ввода/вывода I/O, несколько соответствующих устройств виртуальной функции VF виртуализируется из устройства I/O, хост имеет несколько экземпляров программного обеспечения VF, несколько экземпляров программного обеспечения VF и несколько устройств VF находятся во взаимно-однозначном соответствии; хост дополнительно имеет экземпляр внутренней стороны BE виртуального устройства I/O, однотипного устройству I/O, VM имеет экземпляр внешней стороны FE виртуального устройства I/O; BE на хосте связана с неактивным экземпляром программного обеспечения VF. Таким образом, устанавливается архитектура приложения, в которой каждая VM может независимо использовать одно устройство VF, и между одним устройством VF, виртуализированным из устройства I/O, и экземпляром внешней стороны FE в одной VM, проходит канал, так что FE может осуществлять доступ к устройству VF через BE на хосте. Устройство VF, виртуализированное из устройства I/O, по отдельности выделяется VM для использования, и устройство VF может обеспечивать высокоэффективный интерфейс устройства, поэтому VM полезно получать примерно такую же производительность, как у физической машины, задержка невелика и возникновение какой-либо дополнительной служебной нагрузки ЦП маловероятно. Кроме того, привод внешней стороны (то есть, FE) виртуального устройства I/O находится в VM, поэтому FE переносит данные через привод внутренней стороны (то есть, BE) на хосте, и VM не воспринимает реальное физическое устройство хоста, что удобно для перехода и реализации совместного использования устройства, таким образом, реализуя оптимизацию совместимости системы виртуализации.

[0072] Согласно варианту осуществления настоящего изобретения, после того, как FE предварительно выделяет кэш-память для DMA, FE может записывать GPA, соответствующий предварительно выделенной кэш-памяти для DMA, в память, совместно используемую между хостом и VM; экземпляр программного обеспечения VF, связанный с BE, может получать GPA, соответствующий кэш-памяти для DMA, из совместно используемой памяти через экспортирующий интерфейс прикладного программирования BE (определенно, FE также может объявлять GPA, соответствующий предварительно выделенной кэш-памяти для DMA, соответствующему BE; и экземпляр программного обеспечения VF, связанный с BE, может получать GPA, соответствующий кэш-памяти для DMA, через экспортирующий интерфейс прикладного программирования BE), записывать полученный GPA, соответствующего кэш-памяти для DMA, в первый блок хранения устройства VF, соответствующего экземпляру программного обеспечения VF; и, при наличии данных, подлежащих приему, устройство VF может выбирать GPA, соответствующий кэш-памяти для DMA, из первого блока хранения, и инициировать запрос записи DMA с использованием GPA, соответствующий кэш-памяти для DMA, в качестве целевого адреса; IOMMU может преобразовывать целевой адрес GPA запроса записи DMA в соответствующий HPA (например, в IOMMU устанавливается таблица страниц трансляции адреса, например, в таблице страниц трансляции адреса задано отображение между HPA и GPA; IOMMU получает HPA, соответствующий целевому адресу GPA запроса записи DMA, посредством поиска в таблице страниц трансляции адреса, и преобразует целевой адрес GPA запроса записи DMA в полученный HPA); после выполнения запроса записи DMA, целевой адрес GPA которого преобразуется в HPA, устройство VF объявляет экземпляр программного обеспечения VF, который соответствует устройству VF и находится на хосте, так что экземпляр программного обеспечения VF запускает FE для приема данных, записанных в кэш-память, соответствующую HPA.

[0073] В другом сценарии приложения, после того, как FE предварительно выделяет кэш-память для DMA, FE может записывать GPA, соответствующий предварительно выделенной кэш-памяти для DMA, в память, совместно используемую между хостом и VM; хост может преобразовывать GPA, соответствующий кэш-памяти для DMA в совместно используемой памяти, в соответствующий HPA (например, на хосте устанавливается таблица страниц трансляции адреса, в таблице страниц трансляции адреса задано отображение между HPA и GPA; посредством поиска в таблице страниц трансляции адреса, хост может получать HPA, соответствующий GPA, который соответствует кэш-памяти для DMA в совместно используемой памяти, и преобразовывать GPA, соответствующий кэш-памяти для DMA в совместно используемой памяти, в полученный HPA. Определенно, FE также может объявлять GPA, соответствующий предварительно выделенной кэш-памяти для DMA, соответствующему BE, и хост может преобразовывать GPA, соответствующий кэш-памяти для DMA, в соответствующий HPA); экземпляр программного обеспечения VF, связанный с BE получает, через экспортирующий интерфейс прикладного программирования BE, HPA, соответствующий кэш-памяти для DMA; полученный HPA, соответствующий кэш-памяти для DMA, записывается в первый блок хранения устройства VF, соответствующего экземпляру программного обеспечения VF; при наличии данных, подлежащих приему, устройство VF выбирает HPA, соответствующий кэш-памяти для DMA, из первого блока хранения, и инициирует запрос записи DMA с использованием выбранного HPA в качестве целевого адреса.

[0074] Согласно варианту осуществления настоящего изобретения, когда FE имеет данные, подлежащие передаче, FE может записывать GPA, соответствующий кэш-памяти, где находятся данные, подлежащие передаче, в память, совместно используемую между хостом и VM; BE может получать GPA, соответствующий кэш-памяти, где находятся данные, подлежащие передаче, из совместно используемой памяти (определенно, FE также может объявлять GPA, соответствующий кэш-памяти, где находятся данные, подлежащие передаче, соответствующему BE, и BE получает, согласно объявлению, GPA, соответствующий кэш-памяти, где находятся данные, подлежащие передаче); BE вызывает программный интерфейс передачи экземпляра программного обеспечения VF, связанного с BE, и записывает GPA, соответствующий кэш-памяти, где находятся данные, подлежащие передаче, во второй блок хранения устройства VF, соответствующего экземпляру программного обеспечения VF (где вторым блоком хранения является, например, очередь передачи или список передачи устройства VF или другая структура хранения данных, пригодная для записи адреса); при обнаружении наличия данных, подлежащих передаче, устройство VF инициирует запрос чтения DMA с использованием GPA, записанного во втором блоке хранения, в качестве целевого адреса; IOMMU может преобразовывать целевой адрес GPA запроса чтения DMA в соответствующий HPA (например, в IOMMU устанавливается таблица страниц трансляции адреса, в таблице страниц трансляции адреса задано отображение между HPA и GPA; IOMMU получает HPA, соответствующий целевому адресу GPA запроса чтения DMA, посредством поиска в таблице страниц трансляции адреса, и преобразует целевой адрес GPA запроса чтения DMA в полученный HPA). Дополнительно, после выполнения запроса чтения DMA, устройство VF может объявлять экземпляр программного обеспечения VF, который соответствует устройству VF и находится на хосте, так что экземпляр программного обеспечения VF запускает FE для освобождения соответствующей кэш-памяти.

[0075] В другом варианте осуществления настоящего изобретения, когда FE имеет данные, подлежащие передаче, FE может записывать GPA, соответствующий кэш-памяти, где находятся данные, подлежащие передаче, в память, совместно используемую между хостом и VM; хост преобразует GPA, соответствующий кэш-памяти, где находятся данные, подлежащие передаче, в совместно используемой памяти, в соответствующий HPA (например, на хосте устанавливается таблица страниц трансляции адреса, в таблице страниц трансляции адреса задано отображение между HPA и GPA; посредством поиска в таблице страниц трансляции адреса, хост получает HPA, соответствующий GPA, который соответствует кэш-памяти, где находятся данные, подлежащие передаче, в совместно используемой памяти, и преобразует GPA, соответствующий кэш-памяти, где находятся данные, подлежащие передаче, в совместно используемой памяти, в соответствующий HPA. Определенно, FE также может объявлять GPA, соответствующий кэш-памяти, где находятся данные, подлежащие передаче, хосту, и хост преобразует GPA, соответствующий кэш-памяти, где находятся данные, подлежащие передаче, в соответствующий HPA); BE получает HPA, соответствующий кэш-памяти, где находятся данные, подлежащие передаче, вызывает программный интерфейс передачи экземпляра программного обеспечения VF, связанного с BE, и записывает HPA, соответствующий кэш-памяти, где находятся данные, подлежащие передаче, во второй блок хранения устройства VF, соответствующего экземпляру программного обеспечения VF (где вторым блоком хранения является, например, очередь передачи или список передачи устройства VF или другая структура хранения данных, пригодная для записи адреса); при обнаружении наличия данных, подлежащих передаче, устройство VF инициирует запрос чтения DMA с использованием HPA, записанного во втором блоке хранения, в качестве целевого адреса. Дополнительно, после выполнения запроса чтения DMA, устройство VF может объявлять экземпляр программного обеспечения VF, который соответствует устройству VF и находится на хосте, так что экземпляр программного обеспечения VF запускает FE для освобождения соответствующей кэш-памяти.

[0076] Для улучшения понимания и реализации вышеупомянутых решений в вариантах осуществления настоящего изобретения, в качестве примеров дополнительно проиллюстрировано несколько конкретных сценариев приложения приема данных и передачи данных.

[0077] Согласно фиг. 6-a, другой способ обработки виртуализации, предусмотренный согласно варианту осуществления настоящего изобретения, может включать в себя:

[0078] 601. Активацию, посредством хоста, IOMMU;

где хост может активировать IOMMU во время инициирования или в определенный момент после инициирования; определенно, IOMMU также может автоматически активировать соответствующую функцию при включении питания устройства, и в этом случае, хосту не требуется активировать IOMMU; и определенно, для активации IOMMU также можно использовать другой модуль.

[0079] 602. Установку драйверов устройства PF и устройства VF на хосте, где устройство PF и устройство VF соответствуют устройству I/O (например, обозначенному E-1).

[0080] 603. Активацию, посредством хоста, виртуальной функции I/O устройства I/O E-1;

где, например, хост может активировать виртуальную функцию I/O устройства I/O E-1 во время инициирования или в определенный момент после инициирования. Соответствующее устройство физической функции PF и несколько устройств виртуальной функции VF можно виртуализировать из устройства I/O E-1 при активированной виртуальной функции I/O, определенно, другой модуль можно использовать для активации устройства I/O E-1, и определенно, устройство I/O E-1 также может автоматически активировать свою виртуальную функцию I/O при включении питания устройства, и в этом случае, хосту или другому модулю не требуется активировать виртуальную функцию I/O устройства I/O E-1. Устройство PF, виртуализированное из устройства I/O E-1 в основном, отвечает за функцию управления, и устройство VF, в основном, отвечает за функцию обработки.

[0081] 604. Генерацию экземпляра программного обеспечения PF и нескольких экземпляров программного обеспечения VF на хосте; где соответствующее устройство PF и несколько устройств VF можно виртуализировать из устройства I/O E-1 при активированной виртуальной функции I/O; несколько экземпляров программного обеспечения VF и несколько устройств VF находятся во взаимно-однозначном соответствии, и экземпляр программного обеспечения PF, сгенерированный на хосте, соответствует устройству PF, виртуализированному из устройства I/O E-1.

[0082] 605. Создание, посредством хоста, виртуального устройства I/O (например, обозначенного vE-1), однотипного устройству I/O E-1;

где экземпляр внутренней стороны BE (например, обозначенный BE-1) виртуального устройства I/O vE-1 создается на хосте, и экземпляр внешней стороны FE (например, обозначенный FE-1) виртуального устройства I/O vE-1 создается в инициированной VM (например, обозначенной VM-1). Например, хост может запускать создание экземпляра внешней стороны FE-1, соответствующего виртуальному устройству I/O vE-1 в инициированной VM-1. Можно рассматривать, что, FE-1, созданный в VM-1, и BE-1, созданный на хосте, совместно образуют драйвер виртуального устройства I/O vE-1.

[0083] 606. Связывание, посредством хоста, созданного BE-1 с одним неактивным экземпляром программного обеспечения VF (например, обозначенным Vfe-1);

где экземпляр программного обеспечения VF Vfe-1, например, соответствует устройству VF (например, обозначенному VF-1) виртуализированному из устройства I/O E-1. Так называемый неактивный экземпляр программного обеспечения VF является экземпляром программного обеспечения VF, который не связан с другим экземпляром внутренней стороны BE.

[0084] До сих пор, между устройством VF VF-1, виртуализированным из устройства I/O E-1, и экземпляром внешней стороны FE-1 в VM-1 проходит канал, таким образом, FE-1 может осуществлять доступ к устройству VF VF-1 через BE-1 на хосте. Устройство VF VF-1 по отдельности выделяется VM-1 для использования, устройство VF VF-1 виртуализируется из устройства I/O E-1 и может обеспечивать высокоэффективный интерфейс устройства, поэтому VM-1 полезно получать примерно такую же производительность, как у физической машины, задержка невелика, и возникновение какой-либо дополнительной служебной нагрузки ЦП маловероятно. Кроме того, привод внешней стороны (то есть FE-1) виртуального устройства находится в VM-1, поэтому данные переносятся через привод внутренней стороны (то есть BE-1) на хосте, и VM-1 не воспринимает реальное физическое устройство хоста, что удобно для перехода и реализации совместного использования устройства.

[0085] 607. Предварительное выделение, посредством FE-1, кэш-памяти для прямого доступа к памяти (DMA);

[0086] Например, кэш-память, которая используется для DMA и предварительно выделяется FE-1, может быть [GPA1, Len1], … [GPAn, Lenn], то есть множественные секции кэш-памяти для DMA могут предварительно выделяться, где GPA1 представляет начальный адрес GPA кэш-памяти, Len1 представляет длину кэш-памяти, и т.д.

[0087] 608. Запись, посредством FE-1, GPA, соответствующего предварительно выделенной кэш-памяти для DMA, в совместно используемую память (совместно используемая память) между хостом и VM-1, и объявление BE-1 (определенно, возможно также, что после осуществления самообнаружения, BE-1 находит, что GPA, соответствующий кэш-памяти для DMA, записан в совместно используемую память).

[0088] 609. Получение, посредством экземпляра программного обеспечения VF Vfe-1, GPA, соответствующего кэш-памяти для DMA, через экспортирующий интерфейс прикладного программирования BE-1, и запись полученного GPA, соответствующего кэш-памяти для DMA, в очередь приема устройства VF VF-1, соответствующего экземпляру программного обеспечения VF Vfe-1.

[0089] 610. Выбор, посредством устройства VF VF-1, GPA, соответствующий кэш-памяти для DMA, из очереди приема устройства VF при наличии данных, подлежащих приему, и инициирование запроса записи DMA с использованием выбранного GPA в качестве целевого адреса;

где запрос записи DMA, инициированный устройством VF VF-1, будет проходить IOMMU.

[0090] 611. Преобразование, посредством IOMMU, целевого адреса GPA запроса записи DMA в соответствующий HPA;

где, например, в IOMMU устанавливается таблица страниц трансляции адреса, в таблице страниц трансляции адреса задано отображение между GPA и HPA (например, как показано на фиг. 6-b). Когда запрос записи DMA проходит, IOMMU может получать HPA, соответствующий целевому адресу GPA запроса записи DMA, посредством поиска в таблице страниц трансляции адреса, и преобразовывать целевой адрес GPA запроса записи DMA в полученный HPA.

[0091] 612. Объявление, посредством устройства VF VF-1, соответствующего экземпляра программного обеспечения VF Vfe-1 на хосте после выполнения запроса записи DMA, целевой адрес которого преобразуется в HPA, так что экземпляр программного обеспечения VF Vfe-1 запускает экземпляр внешней стороны FE-1 в VM-1 для приема данных, записанных в кэш-память, соответствующую HPA.

[0092] Будучи запущен экземпляром программного обеспечения VF Vfe-1, экземпляр внешней стороны FE-1 в VM-1 может считывать данные, записанные в кэш-памяти, соответствующей HPA.

[0093] Можно видеть, что, в этом варианте осуществления, после активации виртуальной функции I/O устройства I/O, активированной хостом, несколько экземпляров программного обеспечения VF генерируются на хосте; несколько соответствующих устройств VF виртуализируются из устройства I/O при активированной виртуальной функции I/O; несколько экземпляров программного обеспечения VF и несколько устройств VF находятся во взаимно-однозначном соответствии; хост создает виртуальное устройство I/O, однотипное устройству I/O, где экземпляр внутренней стороны BE виртуального устройства I/O создается на хосте, и в инициированной VM создается экземпляр внешней стороны FE виртуального устройства I/O; BE связана с неактивным экземпляром программного обеспечения VF, таким образом, устанавливается архитектура приложения, в которой каждая VM может независимо использовать одно устройство VF, и между одним устройством VF, виртуализированным из устройства I/O, и экземпляром внешней стороны FE в одной VM, проходит канал, так что FE может осуществлять доступ к устройству VF через BE на хосте. Устройство VF, виртуализированное из устройства I/O, по отдельности выделяется VM для использования, и устройство VF может обеспечивать высокоэффективный интерфейс устройства, поэтому VM полезно получать примерно такую же производительность, как у физической машины, задержка невелика и возникновение какой-либо дополнительной служебной нагрузки ЦП маловероятно. Кроме того, привод внешней стороны (то есть, FE) виртуального устройства находится в VM, поэтому данные переносятся через привод внутренней стороны (то есть, BE) на хосте, и VM не воспринимает реальное физическое устройство хоста, что удобно для перехода и реализации совместного использования устройства, таким образом, реализуя оптимизацию совместимости системы виртуализации.

[0094] Кроме того, в ходе процедуры выполнения запроса записи DMA, аппаратный модуль IOMMU реализует трансляцию между GPA и HPA, таким образом, уменьшая служебную нагрузку ЦП и дополнительно повышая производительность.

[0095] Согласно фиг. 7-a, другой способ обработки виртуализации, предусмотренный согласно варианту осуществления настоящего изобретения, может включать в себя:

[0096] 701. Установку драйверов устройства PF и устройства VF на хосте, где устройство PF и устройство VF соответствуют устройству I/O (обозначенному E-2).

[0097] 702. Активацию, посредством хоста, виртуальной функции I/O устройства I/O E-2;

где, например, хост может активировать виртуальную функцию I/O устройства I/O E-2 во время инициирования или в определенный момент после инициирования. Соответствующее устройство физической функции PF и несколько устройств виртуальной функции VF можно виртуализировать из устройства I/O E-2 при активированной виртуальной функции I/O посредством хоста, определенно, другой модуль можно использовать для активации устройства I/O E-2, и определенно, устройство I/O E-2 также может автоматически активировать свою виртуальную функцию I/O при включении питания устройства, и в этом случае, хосту или другому модулю не требуется активировать виртуальную функцию I/O устройства I/O E-2. Устройство PF, виртуализированное из устройства I/O E-2 в основном, отвечает за функцию управления, и устройство VF, в основном, отвечает за функцию обработки.

[0098] 703. Генерацию экземпляра программного обеспечения PF и нескольких экземпляров программного обеспечения VF на хосте; где соответствующее устройство PF и несколько устройств VF можно виртуализировать из устройства I/O E-2 при активированной виртуальной функции I/O; несколько экземпляров программного обеспечения VF и несколько устройств VF находятся во взаимно-однозначном соответствии, и экземпляр программного обеспечения PF, сгенерированный на хосте, соответствует устройству PF, виртуализированному из устройства I/O E-2.

[0099] 704. Создание, посредством хоста, виртуального устройства I/O (например, обозначенного vE-2), однотипного устройству I/O E-2;

где экземпляр внутренней стороны BE (например, обозначенный BE-2) виртуального устройства I/O vE-2 создается на хосте, и экземпляр внешней стороны FE (например, обозначенный FE-2) виртуального устройства I/O vE-2 создается в инициированной VM (например, обозначенной VM-2). Например, хост может запускать создание экземпляра внешней стороны FE-2, соответствующего виртуальному устройству I/O vE-2 в инициированной VM-2. Можно рассматривать, что, FE-2, созданный в VM-2, и BE-2, созданный на хосте, совместно образуют драйвер виртуального устройства I/O vE-2.

[00100] 705. Связывание, посредством хоста, созданного BE-2 с одним неактивным экземпляром программного обеспечения VF (например, обозначенным Vfe-2);

где экземпляр программного обеспечения VF Vfe-2, например, соответствует устройству VF (например, обозначенному VF-2), виртуализированному из устройства I/O E-2. Так называемый неактивный экземпляр программного обеспечения VF является экземпляром программного обеспечения VF, который не связан с другим экземпляром внутренней стороны BE.

[0100] До сих пор, между устройством VF VF-2, виртуализированным из устройства I/O E-2, и экземпляром внешней стороны FE-2 в VM-2 проходит канал, таким образом, FE-2 может осуществлять доступ к устройству VF VF-2 через BE-2 на хосте. Устройство VF VF-2 по отдельности выделяется VM-2 для использования, устройство VF VF-2 виртуализируется из устройства I/O E-2 и может обеспечивать высокоэффективный интерфейс устройства, поэтому VM-2 полезно получать примерно такую же производительность, как у физической машины, задержка невелика и возникновение какой-либо дополнительной служебной нагрузки ЦП маловероятно. Кроме того, привод внешней стороны (то есть FE-2) виртуального устройства находится в VM-2, поэтому данные переносятся через привод внутренней стороны (то есть BE-2) на хосте, и VM-2 не воспринимает реальное физическое устройство хоста, что удобно для перехода и реализации совместного использования устройства.

[0101] 706. Предварительное выделение, посредством FE-2, кэш-памяти для прямого доступа к памяти (DMA).

[0102] Например, кэш-память, которая используется для DMA и предварительно выделяется FE-2, может быть [GPA1, Len1], … [GPAn, Lenn], то есть множественные секции кэш-памяти для DMA могут предварительно выделяться, где GPA1 представляет начальный адрес GPA кэш-памяти, Len1 представляет длину кэш-памяти, и т.д.

[0103] 707. Запись, посредством FE-2, GPA, соответствующего предварительно выделенной кэш-памяти для DMA, в совместно используемую память (совместно используемая память) между хостом и VM-2, и объявление BE-2 (определенно, возможно также, что после осуществления самообнаружения, BE-2 находит, что GPA, соответствующий кэш-памяти, где находятся данные, подлежащие передаче, записан в совместно используемую память).

[0104] 708. Преобразование, посредством хоста, GPA, соответствующего кэш-памяти для DMA в совместно используемой памяти, в соответствующий HPA;

где, например, на хосте устанавливается таблица страниц трансляции адреса, в таблице страниц трансляции адреса задано отображение между GPA и HPA (например, как показано на фиг. 7-b). Посредством поиска в таблице страниц трансляции адреса, хост может получать HPA, соответствующий GPA, который соответствует кэш-памяти для DMA, и преобразовывать GPA, соответствующий кэш-памяти для DMA в полученный HPA.

[0105] 709. Получение, посредством экземпляра программного обеспечения VF Vfe-2, HPA, соответствующего кэш-памяти для DMA, через экспортирующий интерфейс прикладного программирования BE-2, и запись полученного HPA, соответствующего кэш-памяти для DMA, в очередь приема устройства VF VF-2, соответствующего экземпляру программного обеспечения VF Vfe-2.

[0106] 710. Выбор, посредством устройства VF VF-2, HPA, соответствующего кэш-памяти для DMA, из очереди приема устройства VF при наличии данных, подлежащих приему, и инициирование запроса записи DMA с использованием выбранного HPA в качестве целевого адреса.

[0107] 711. Объявление, посредством устройства VF VF-2, соответствующего экземпляра программного обеспечения VF Vfe-2 на хосте после выполнения запроса записи DMA, так что экземпляр программного обеспечения VF Vfe-2 запускает экземпляр внешней стороны FE-2 в VM-2 для приема данных, записанных в кэш-память, соответствующую HPA.

[0108] Будучи запущен экземпляром программного обеспечения VF Vfe-2, экземпляр внешней стороны FE-2 в VM-2 может считывать данные, записанные в кэш-памяти, соответствующей HPA.

[0109] Можно видеть, что, в этом варианте осуществления, после активации виртуальной функции I/O устройства ввода/вывода I/O, активированной хостом, несколько экземпляров программного обеспечения VF генерируются на хосте; несколько соответствующих устройств VF виртуализируются из устройства I/O при активированной виртуальной функции I/O; несколько экземпляров программного обеспечения VF и несколько устройств VF находятся во взаимно-однозначном соответствии; хост создает виртуальное устройство I/O, однотипное устройству I/O, где экземпляр внутренней стороны BE виртуального устройства I/O создается на хосте, и в инициированной VM создается экземпляр внешней стороны FE виртуального устройства I/O; BE связана с неактивным экземпляром программного обеспечения VF, таким образом, устанавливается архитектура приложения, в которой каждая VM может независимо использовать одно устройство VF, между одним устройством VF, виртуализированным из устройства I/O, и экземпляром внешней стороны FE в одной VM, проходит канал, так что FE может осуществлять доступ к устройству VF через BE на хосте. Устройство VF, виртуализированное из устройства I/O, по отдельности выделяется VM для использования, и устройство VF может обеспечивать высокоэффективный интерфейс устройства, поэтому VM полезно получать примерно такую же производительность, как у физической машины, задержка невелика и возникновение какой-либо дополнительной служебной нагрузки ЦП маловероятно. Кроме того, привод внешней стороны (то есть, FE) виртуального устройства находится в VM, поэтому данные переносятся через привод внутренней стороны (то есть, BE) на хосте, и VM не воспринимает реальное физическое устройство хоста, что удобно для перехода и реализации совместного использования устройства, таким образом, реализуя оптимизацию совместимости системы виртуализации.

[0110] Кроме того, в ходе процедуры выполнения запроса записи DMA, хост реализует трансляцию между GPA и HPA, таким образом, уменьшая конфигурацию аппаратных ресурсов и упрощая последовательность обработки.

[0111] Согласно фиг. 8-a, другой способ обработки виртуализации, предусмотренный согласно варианту осуществления настоящего изобретения, может включать в себя:

[0112] 801. Активацию, посредством хоста, IOMMU;

где хост может активировать IOMMU во время инициирования или в определенный момент после инициирования; определенно, IOMMU также может автоматически активировать соответствующую функцию при включении питания устройства, и в этом случае, хосту не требуется активировать IOMMU; и определенно, для активации IOMMU также можно использовать другой модуль.

[0113] 802. Установку драйверов устройства PF и устройства VF на хосте, где устройство PF и устройство VF соответствуют устройству I/O (например, обозначенному E-3).

[0114] 803. Активацию, посредством хоста, виртуальной функции I/O устройства I/O E-3;

где, например, хост может активировать виртуальную функцию I/O устройства I/O E-3 во время инициирования или в определенный момент после инициирования. Соответствующее устройство физической функции PF и несколько устройств виртуальной функции VF можно виртуализировать из устройства I/O E3-3 при активированной виртуальной функции I/O, определенно, другой модуль можно использовать для активации устройства I/O E-3, и определенно, устройство I/O E-3 также может автоматически активировать свою виртуальную функцию I/O при включении питания устройства, и в этом случае, хосту или другому модулю не требуется активировать виртуальную функцию I/O устройства I/O E-3. Устройство PF, виртуализированное из устройства I/O E-3 в основном, отвечает за функцию управления, и устройство VF, в основном, отвечает за функцию обработки.

[0115] 804. Генерацию экземпляра программного обеспечения PF и нескольких экземпляров программного обеспечения VF на хосте; где соответствующее устройство PF и несколько устройств VF можно виртуализировать из устройства I/O E-3 при активированной виртуальной функции I/O; несколько экземпляров программного обеспечения VF и несколько устройств VF находятся во взаимно-однозначном соответствии, и экземпляр программного обеспечения PF, сгенерированный на хосте, соответствует устройству PF, виртуализированному из устройства I/O E-1.

[0116] 805. Создание, посредством хоста, виртуального устройства I/O (например, обозначенного vE-3), однотипного устройству I/O E-3;

где экземпляр внутренней стороны BE (например, обозначенный BE-3) виртуального устройства I/O vE-3 создается на хосте, и экземпляр внешней стороны FE (например, обозначенный FE-3) виртуального устройства I/O vE-3 создается в инициированной VM (например, обозначенной VM-3). Например, хост может запускать создание экземпляра внешней стороны FE-3 соответствующего виртуальному устройству I/O vE-3 в инициированной VM-3. Можно рассматривать, что, FE-3, созданный в VM-3, и BE-3, созданный на хосте, совместно образуют драйвер виртуального устройства I/O vE-3.

[0117] 806. Связывание, посредством хоста, созданного BE-3 с одним неактивным экземпляром программного обеспечения VF (например, обозначенным Vfe-3);

где экземпляр программного обеспечения VF Vfe-3, например, соответствует устройству VF (например, обозначенному VF-3), виртуализированному из устройства I/O E-3. Так называемый неактивный экземпляр программного обеспечения VF является экземпляром программного обеспечения VF, который не связан с другим экземпляром внутренней стороны BE.

[0118] До сих пор, между устройством VF VF-3, виртуализированным из устройства I/O E-3, и экземпляром внешней стороны FE-3 в VM-3 проходит канал, таким образом, FE-3 может осуществлять доступ к устройству VF VF-3 через BE-3 на хосте. Устройство VF VF-3 по отдельности выделяется VM-3 для использования, устройство VF VF-3 виртуализируется из устройства I/O E-3 и может обеспечивать высокоэффективный интерфейс устройства, поэтому VM-3 полезно получать примерно такую же производительность, как у физической машины, задержка невелика и возникновение какой-либо дополнительной служебной нагрузки ЦП маловероятно. Кроме того, привод внешней стороны (то есть FE-3) виртуального устройства находится в VM-3, поэтому данные переносятся через привод внутренней стороны (то есть BE-3) на хосте, и VM-3 не воспринимает реальное физическое устройство хоста, что удобно для перехода и реализации совместного использования устройства.

[0119] 807. Запись, посредством экземпляра внешней стороны FE-3, GPA, соответствующего кэш-памяти, где находятся данные, подлежащие передаче, в память, совместно используемую между хостом и VM-3, и объявление BE-3 (определенно, возможно также, что после осуществления самообнаружения, BE-3 находит, что GPA, соответствующий кэш-памяти, где находятся данные, подлежащие передаче, записаны в совместно используемую память).

[0120] Например, GPA, соответствующий кэш-памяти, где находятся данные, подлежащие передаче, являются [GPA1, Len1], … [ GPAn, Lenn], то есть множественные секции кэш-памяти для DMA могут предварительно выделяться, где GPA1 представляет начальный адрес GPA кэш-памяти, Len1 представляет длину кэш-памяти, и т.д.

[0121] 808. Вызов, посредством BE-3, программного интерфейса передачи экземпляра программного обеспечения VF Vfe-3, связанного с BE-3, и запись GPA, соответствующего кэш-памяти, где находятся данные, подлежащие передаче, в очередь передачи устройства VF VF-3, соответствующего экземпляру программного обеспечения VF Vfe-3.

[0122] 809. При обнаружении наличия данных, подлежащих передаче, инициирование, посредством устройства VF VF-3, запроса чтения DMA с использованием GPA, записанного в очереди передачи устройства VF, в качестве целевого адреса;

где устройство VF VF-3, например, может обнаруживать очередь передачи устройства VF периодически или непериодически, и, найдя, что GPA вновь записан в очередь передачи, предполагать наличие данных, подлежащих передаче, или экземпляр программного обеспечения VF Vfe-3 может объявлять устройство VF VF-3 после новой записи GPA в очередь передачи;

где запрос чтения DMA, инициированный посредством устройства VF VF-3, будет проходить IOMMU.

[0123] 810. Преобразование, посредством IOMMU, целевого адреса GPA запроса чтения DMA в соответствующий HPA;

где, например, в IOMMU устанавливается таблица страниц трансляции адреса, в таблице страниц трансляции адреса задано отображение между GPA и HPA (например, как показано на фиг. 8-b). Когда запрос чтения DMA проходит, IOMMU может получать HPA, соответствующий целевому адресу GPA запроса чтения DMA, посредством поиска в таблице страниц трансляции адреса, и преобразовывать целевой адрес GPA запроса чтения DMA в полученный HPA.

[0124] 811. Объявление, посредством устройства VF VF-3, соответствующего экземпляра программного обеспечения VF Vfe-3 на хосте после выполнения запроса чтения DMA, целевой адрес которого преобразуется в HPA, так что экземпляр программного обеспечения VF Vfe-3 запускает экземпляр внешней стороны FE-3 в VM-3 для освобождения кэш-памяти, соответствующей HPA.

[0125] Будучи запущен экземпляром программного обеспечения VF Vfe-3, экземпляр внешней стороны FE-3 в VM-3 может освобождать кэш-память, соответствующую HPA, для кэширования новых данных.

[0126] Можно видеть, что, в этом варианте осуществления, после активации виртуальной функции I/O устройства ввода/вывода I/O, активированной хостом, несколько экземпляров программного обеспечения VF генерируются на хосте; несколько соответствующих устройств VF виртуализируются из устройства I/O при активированной виртуальной функции I/O; несколько экземпляров программного обеспечения VF и несколько устройств VF находятся во взаимно-однозначном соответствии; хост создает виртуальное устройство I/O, однотипное устройству I/O, где экземпляр внутренней стороны BE виртуального устройства I/O создается на хосте, и в инициированной VM создается экземпляр внешней стороны FE виртуального устройства I/O; BE связана с неактивным экземпляром программного обеспечения VF, таким образом, устанавливается архитектура приложения, в которой каждая VM может независимо использовать одно устройство VF, между одним устройством VF, виртуализированным из устройства I/O, и экземпляром внешней стороны FE в одной VM, проходит канал, так что FE может осуществлять доступ к устройству VF через BE на хосте. Устройство VF, виртуализированное из устройства I/O, по отдельности выделяется VM для использования, и устройство VF может обеспечивать высокоэффективный интерфейс устройства, поэтому VM полезно получать примерно такую же производительность, как у физической машины, задержка невелика и возникновение какой-либо дополнительной служебной нагрузки ЦП маловероятно. Кроме того, привод внешней стороны (то есть, FE) виртуального устройства находится в VM, поэтому FE переносит данные через привод внутренней стороны (то есть, BE) на хосте, и VM не воспринимает реальное физическое устройство хоста, что удобно для перехода и реализации совместного использования устройства, таким образом, реализуя оптимизацию совместимости системы виртуализации.

[0127] Кроме того, в ходе процедуры выполнения запроса чтения DMA, аппаратный модуль IOMMU реализует трансляцию между GPA и HPA, таким образом, уменьшая служебную нагрузку ЦП и дополнительно повышая производительность.

[0128] Согласно фиг. 9-a, другой способ обработки виртуализации, предусмотренный согласно варианту осуществления настоящего изобретения, может включать в себя:

[0129] 901. Установку драйверов устройства PF и устройства VF на хосте, где устройство PF и устройство VF соответствуют устройству I/O (обозначенному E-4).

[0130] 902. Активацию, посредством хоста, виртуальной функции I/O устройства I/O E-4;

где, например, хост может активировать виртуальную функцию I/O устройства I/O E-4 во время инициирования или в определенный момент после инициирования. Соответствующее устройство физической функции PF и несколько устройств виртуальной функции VF можно виртуализировать из устройства I/O E-4 при активированной виртуальной функции I/O, определенно, другой модуль можно использовать для активации устройства I/O E-4, и определенно, устройство I/O E-4 также может автоматически активировать свою виртуальную функцию I/O при включении питания устройства, и в этом случае, хосту или другому модулю не требуется активировать виртуальную функцию I/O устройства I/O E-4. Устройство PF, виртуализированное из устройства I/O E-4 в основном, отвечает за функцию управления, и устройство VF, в основном, отвечает за функцию обработки.

[0131] 903. Генерацию экземпляра программного обеспечения PF и нескольких экземпляров программного обеспечения VF на хосте; где соответствующее устройство PF и несколько устройств VF можно виртуализировать из устройства I/O E-4 при активированной виртуальной функции I/O; несколько экземпляров программного обеспечения VF и несколько устройств VF находятся во взаимно-однозначном соответствии, и экземпляр программного обеспечения PF, сгенерированный на хосте, соответствует устройству PF, виртуализированному из устройства I/O E-4.

[0132] 904. Создание, посредством хоста, виртуального устройства I/O (например, обозначенного vE-4), однотипного устройству I/O E-4;

где экземпляр внутренней стороны BE (например, обозначенный BE-4) виртуального устройства I/O vE-4 создается на хосте, и экземпляр внешней стороны FE (например, обозначенный FE-4) виртуального устройства I/O vE-4 создается в инициированной VM (например, обозначенной VM-4). Например, хост может запускать создание экземпляра внешней стороны FE-4, соответствующего виртуальному устройству I/O vE-4 в инициированной VM-4. Можно рассматривать, что, FE-4, созданный в VM-4, и BE-4, созданный на хосте, совместно образуют драйвер виртуального устройства I/O vE-4.

[0133] 905. Связывание, посредством хоста, созданного BE-4 с одним неактивным экземпляром программного обеспечения VF (например, обозначенным Vfe-4);

где экземпляр программного обеспечения VF Vfe-4, например, соответствует устройству VF (например, обозначенному VF-4), виртуализированному из устройства I/O E-4. Так называемый неактивный экземпляр программного обеспечения VF является экземпляром программного обеспечения VF, который не связан с другим экземпляром внутренней стороны BE.

[0134] До сих пор, между устройством VF VF-4, виртуализированным из устройства I/O E-4, и экземпляром внешней стороны FE-4 в VM-4 проходит канал, таким образом, FE-4 может осуществлять доступ к устройству VF VF-4 через BE-4 на хосте. Устройство VF VF-4 по отдельности выделяется VM-4 для использования, устройство VF VF-4 виртуализируется из устройства I/O E-4 и может обеспечивать высокоэффективный интерфейс устройства, поэтому VM-4 полезно получать примерно такую же производительность, как у физической машины, задержка невелика и возникновение какой-либо дополнительной служебной нагрузки ЦП маловероятно. Кроме того, привод внешней стороны (то есть FE-4) виртуального устройства находится в VM-4, поэтому данные переносятся через привод внутренней стороны (то есть BE-4) на хосте, и VM-4 не воспринимает реальное физическое устройство хоста, что удобно для перехода и реализации совместного использования устройства.

[0135] 906. Запись, посредством FE-4, GPA, соответствующего кэш-памяти, где находятся данные, подлежащие передаче, в память, совместно используемую между хостом и VM-4, и объявление BE-4 (определенно, возможно также, что после осуществления самообнаружения, BE-4 находит, что GPA, соответствующий кэш-памяти, где находятся данные, подлежащие передаче, записан в совместно используемую память).

[0136] 907. Преобразование, посредством хоста, GPA, соответствующего кэш-памяти, где находятся данные, подлежащие передаче, в совместно используемой памяти, в соответствующий HPA;

где, например, на хосте устанавливается таблица страниц трансляции адреса, в таблице страниц трансляции адреса задано отображение между GPA и HPA (например, как показано на фиг. 9-b). Посредством поиска в таблице страниц трансляции адреса, хост может, например, получать HPA, соответствующий GPA, который соответствует кэш-памяти, где находятся данные, подлежащие передаче, и преобразовывать GPA, соответствующий кэш-памяти, где находятся данные, подлежащие передаче, в полученный HPA.

[0137] 908. Вызов, посредством BE-4, программного интерфейса передачи экземпляра программного обеспечения VF Vfe-4, связанного с BE-4, и запись HPA, соответствующего кэш-памяти, где находятся данные, подлежащие передаче, в очередь передачи устройства VF VF-4, соответствующего экземпляру программного обеспечения VF Vfe-4.

[0138] 909. При обнаружении наличия данных, подлежащих передаче, инициирование, посредством устройства VF VF-4, запроса чтения DMA с использованием HPA, записанного в очереди передачи устройства VF в качестве целевого адреса;

где устройство VF VF-4 может, например, обнаруживать очередь передачи устройства VF периодически или непериодически, и, найдя, что HPA вновь записан в очередь передачи, предполагать наличие данных, подлежащих передаче, или экземпляр программного обеспечения VF Vfe-4 может объявлять устройство VF VF-4 после новой записи HPA в очередь передачи.

[0139] 910. Объявление, посредством устройства VF VF-4, соответствующего экземпляра программного обеспечения VF Vfe-4 на хосте после выполнения запроса чтения DMA, так что экземпляр программного обеспечения VF Vfe-4 запускает экземпляр внешней стороны FE-4 в VM-4 для освобождения кэш-памяти, соответствующей HPA.

[0140] Будучи запущен экземпляром программного обеспечения VF Vfe-4, экземпляр внешней стороны FE-4 в VM-4 может освобождать кэш-память, соответствующую HPA, для кэширования новых данных.

[0141] Можно видеть, что, в этом варианте осуществления, после активации виртуальной функции I/O устройства I/O, активированной хостом, несколько экземпляров программного обеспечения VF генерируются на хосте; несколько соответствующих устройств VF виртуализируются из устройства I/O при активированной виртуальной функции I/O; несколько экземпляров программного обеспечения VF и несколько устройств VF находятся во взаимно-однозначном соответствии; хост создает виртуальное устройство I/O, однотипное устройству I/O, где экземпляр внутренней стороны BE виртуального устройства I/O создается на хосте, и в инициированной VM создается экземпляр внешней стороны FE виртуального устройства I/O; BE связана с неактивным экземпляром программного обеспечения VF, таким образом, устанавливается архитектура приложения, в которой каждая VM может независимо использовать одно устройство VF, между одним устройством VF, виртуализированным из устройства I/O, и экземпляром внешней стороны FE в одной VM, проходит канал, так что FE может осуществлять доступ к устройству VF через BE на хосте. Устройство VF, виртуализированное из устройства I/O, по отдельности выделяется VM для использования, и устройство VF может обеспечивать высокоэффективный интерфейс устройства, поэтому VM полезно получать примерно такую же производительность, как у физической машины, задержка невелика и возникновение какой-либо дополнительной служебной нагрузки ЦП маловероятно. Кроме того, привод внешней стороны (то есть, FE) виртуального устройства находится в VM, поэтому данные переносятся через привод внутренней стороны (то есть, BE) на хосте, и VM не воспринимает реальное физическое устройство хоста, что удобно для перехода и реализации совместного использования устройства, таким образом, реализуя оптимизацию совместимости системы виртуализации.

[0142] Кроме того, в ходе процедуры выполнения запроса чтения DMA, хост реализует трансляцию между GPA и HPA, таким образом, уменьшая конфигурацию аппаратных ресурсов и упрощая последовательность обработки.

[0143] Для улучшения понимания и реализации вышеупомянутых способов в вариантах осуществления настоящего изобретения, дополнительно предусмотрены устройства и компьютерная система, выполненные с возможностью реализации вышеупомянутых способов.

[0144] Согласно фиг. 10, хост 1000, предусмотренный согласно варианту осуществления настоящего изобретения, может включать в себя:

первый модуль 1010 создания, второй модуль 1020 создания и модуль 1030 связывания;

первый модуль 1010 создания выполнен с возможностью, после активации виртуальной функции I/O устройства ввода/вывода I/O, генерации нескольких экземпляров программного обеспечения VF на хосте 1000, где несколько соответствующих устройств виртуальной функции VF виртуализируется из устройства I/O при активированной виртуальной функции I/O, и несколько экземпляров программного обеспечения VF, сгенерированных на хосте 1000, и несколько устройств VF находятся во взаимно-однозначном соответствии;

второй модуль 1020 создания выполнен с возможностью создания виртуального устройства I/O, однотипного устройству I/O,

где, экземпляр внутренней стороны BE виртуального устройства I/O создается на хосте 1000, экземпляр внешней стороны FE виртуального устройства I/O создается в инициированной виртуальной машине VM; и

модуль 1030 связывания выполнен с возможностью связывания BE, созданного вторым модулем 1020 создания, с неактивным экземпляром программного обеспечения VF, созданным первым модулем 1010 создания.

[0145] Можно понять, что, хост 1000 в этом варианте осуществления может быть хостом в каждом из вышеупомянутых вариантов осуществления способа, функции каждого функционального модуля могут быть конкретно реализованы согласно способу в каждом из вышеупомянутых вариантов осуществления способа. Для процедуры конкретной реализации, можно сослаться на соответствующее описание вышеупомянутых вариантов осуществления способа, и подробности здесь не повторяются.

[0146] Можно видеть, что, в этом варианте осуществления, после активации виртуальной функции I/O устройства I/O, несколько экземпляров программного обеспечения VF генерируются на хосте 1000; несколько соответствующих устройств VF виртуализируются из устройства I/O при активированной виртуальной функции I/O; несколько экземпляров программного обеспечения VF, сгенерированных на хосте 1000, и несколько устройств VF находятся во взаимно-однозначном соответствии; хост создает виртуальное устройство I/O, однотипное устройству I/O, где экземпляр внутренней стороны BE виртуального устройства I/O создается на хосте 1000, и в инициированной VM создается экземпляр внешней стороны FE виртуального устройства I/O; BE связана с неактивным экземпляром программного обеспечения VF, таким образом, устанавливается архитектура приложения, в которой каждая VM может независимо использовать одно устройство VF, между одним устройством VF, виртуализированным из устройства I/O, и экземпляром внешней стороны FE в одной VM, проходит канал, так что FE может осуществлять доступ к устройству VF через BE на хосте. Устройство VF, виртуализированное из устройства I/O, по отдельности выделяется VM для использования, и устройство VF может обеспечивать высокоэффективный интерфейс устройства, поэтому VM полезно получать примерно такую же производительность, как у физической машины, задержка невелика и возникновение какой-либо дополнительной служебной нагрузки ЦП маловероятно. Кроме того, привод внешней стороны (то есть, FE) виртуального устройства находится в VM, поэтому данные переносятся через привод внутренней стороны (то есть, BE) на хосте 1000, и VM не воспринимает реальное физическое устройство хоста 1000, что удобно для перехода и реализации совместного использования устройства, таким образом, реализуя оптимизацию совместимости системы виртуализации.

[0147] Согласно фиг. 11-a, вычислительный узел 1100, предусмотренный согласно варианту осуществления настоящего изобретения, может включать в себя,

аппаратный уровень 1110, хост 1120, выполняющийся на аппаратном уровне 1110, и, по меньшей мере, одну виртуальную машину VM 1130, выполняющуюся на хосте 1120.

[0148] Аппаратный уровень 1110 включает в себя устройство I/O 1111, несколько соответствующих устройств 11111 виртуальной функции VF виртуализируются из устройства I/O 1111, хост 1120 имеет несколько экземпляров 1121 программного обеспечения VF, несколько экземпляров 1121 программного обеспечения VF и несколько устройств VF 11111 находятся во взаимно-однозначном соответствии; хост 1120 дополнительно имеет экземпляр 1122 внутренней стороны BE виртуального устройства I/O, однотипного устройству I/O 1111, VM 1130 имеет экземпляр 1131 внешней стороны FE виртуального устройства I/O; BE 1122 на хосте 1120 связан с неактивным экземпляром 1121 программного обеспечения VF.

[0149] В сценарии приложения, FE 1131 выполнен с возможностью предварительного выделения кэш-памяти для прямого доступа к памяти DMA.

[0150] Экземпляр 1121 программного обеспечения VF, связанный с BE 1122, выполнен с возможностью получения адреса, соответствующего кэш-памяти для DMA, через экспортирующий интерфейс прикладного программирования BE 1122, и записи полученного адреса, соответствующего кэш-памяти для DMA, в первый блок хранения устройства VF 11111, соответствующего экземпляру 1121 программного обеспечения VF.

[0151] Устройство VF 11111 выполнено с возможностью выбора адреса, соответствующего кэш-памяти для DMA, из первого блока хранения при наличии данных, подлежащих приему, и инициирования запроса записи DMA с использованием адреса, соответствующего кэш-памяти для DMA, в качестве целевого адреса; объявления соответствующего экземпляра 1121 программного обеспечения VF на хосте 1120 после выполнения запроса записи DMA, так что экземпляр 1121 программного обеспечения VF запускает FE 1131 для приема данных, записанных в кэш-память, соответствующую адресу.

[0152] Согласно фиг. 11-b, в сценарии приложения, FE 1131 дополнительно выполнен с возможностью записи физического адреса гостя GPA, соответствующего предварительно выделенной кэш-памяти для DMA, в совместно используемую память 1140 между хостом 1120 и VM 1130.

[0153] Экземпляр 1121 программного обеспечения VF, связанный с BE 1122, может быть, в частности, выполнен с возможностью получения GPA, соответствующего кэш-памяти для DMA, из совместно используемой памяти 1140 через экспортирующий интерфейс прикладного программирования BE 1122, и записи полученного GPA, соответствующего кэш-памяти для DMA, в первый блок хранения устройства VF 11111, соответствующего экземпляру 1121 программного обеспечения VF.

[0154] Кроме того, FE 1131 также может объявлять GPA, соответствующий предварительно выделенной кэш-памяти для DMA, соответствующему BE 1122; и экземпляр 1121 программного обеспечения VF, связанный с BE 1122, может получать GPA, соответствующий кэш-памяти для DMA, через экспортирующий интерфейс прикладного программирования BE 1122.

[0155] Устройство VF 11111 может быть, в частности, выполнено с возможностью выбора GPA, соответствующего кэш-памяти для DMA, из первого блока хранения при наличии данных, подлежащих приему, инициирования запроса записи DMA с использованием выбранного GPA, соответствующего кэш-памяти для DMA, в качестве целевого адреса; объявления соответствующего экземпляра 1121 программного обеспечения VF на хосте 1120 после выполнения запроса записи DMA, целевой адрес GPA которого преобразуется в соответствующий HPA, так что экземпляр 1121 программного обеспечения VF запускает FE 1131 для приема данных, записанных в кэш-память, соответствующую HPA.

[0156] Аппаратный уровень 1110 вычислительного узла 1100 может дополнительно включать в себя:

блок 1112 управления памятью ввода/вывода IOMMU, выполненный с возможностью преобразования целевого адреса GPA запроса записи DMA, инициированного устройством VF 11111, в соответствующий физический адрес хоста HPA.

[0157] Например, в IOMMU устанавливается таблица страниц трансляции адреса 1112, где в таблице страниц трансляции адреса задано отображение между GPA и HPA; IOMMU 1112 может получать HPA, соответствующий целевому адресу GPA запроса записи DMA, посредством поиска в таблице страниц трансляции адреса, и преобразовывать целевой адрес GPA запроса записи DMA в полученный HPA.

[0158] Согласно фиг. 11-c, в другом сценарии приложения, FE 1131 может быть дополнительно выполнен с возможностью записи GPA, соответствующего предварительно выделенной кэш-памяти для DMA, в память 1140, совместно используемую между хостом 1120 и VM 1130.

[0159] Хост 1120 может быть выполнен с возможностью преобразования GPA, соответствующего кэш-памяти для DMA в совместно используемой памяти 1140, в соответствующий HPA.

[0160] Например, на хосте устанавливается таблица страниц трансляции адреса 1120, где в таблице страниц трансляции адреса задано отображение между GPA и HPA; посредством поиска в таблице страниц трансляции адреса, хост 1120 может получать HPA, соответствующий GPA, который соответствует кэш-памяти для DMA в совместно используемой памяти, и преобразовывать GPA, соответствующий кэш-памяти для DMA в совместно используемой памяти, в полученный HPA. Определенно, FE 1131 также может объявлять GPA, соответствующий предварительно выделенной кэш-памяти для DMA, соответствующему BE 1122, и хост 1120 может преобразовывать GPA, соответствующий кэш-памяти для DMA, в соответствующий HPA.

[0161] Экземпляр 1121 программного обеспечения VF, связанный с BE 1122, может быть, в частности, выполнен с возможностью получения HPA, соответствующего кэш-памяти для DMA, через экспортирующий интерфейс прикладного программирования BE 1122; и записи полученного HPA, соответствующего кэш-памяти для DMA, в первый блок хранения устройства VF 11111, соответствующего экземпляру 1121 программного обеспечения VF.

[0162] Устройство VF 11111 может быть, в частности, выполнено с возможностью выбора HPA, соответствующего кэш-памяти для DMA, из первого блока хранения при наличии данных, подлежащих приему, инициирования запроса записи DMA с использованием выбранного HPA в качестве целевого адреса, и объявления соответствующего экземпляра 1121 программного обеспечения VF на хосте 1120 после выполнения запроса записи DMA, так что экземпляр 1121 программного обеспечения VF запускает FE 1131 для приема данных, записанных в кэш-память, соответствующую HPA.

[0163] Дополнительно, в сценарии приложения, FE 1131 дополнительно выполнен с возможностью записи GPA, соответствующего кэш-памяти, где находятся данные, подлежащие передаче, в память 1140, совместно используемую между хостом 1120 и VM 1130.

[0164] BE 1122 может дополнительно быть выполнен с возможностью получения GPA, соответствующего кэш-памяти, где находятся данные, подлежащие передаче, из совместно используемой памяти 1140; вызова программного интерфейса передачи экземпляра 1121 программного обеспечения VF, связанного с BE 1122, и записи GPA, соответствующего кэш-памяти, где находятся данные, подлежащие передаче, во второй блок хранения устройства VF 11111, соответствующего экземпляру 1121 программного обеспечения VF.

[0165] Кроме того, FE 1131 также может объявлять GPA, соответствующий кэш-памяти, где находятся данные, подлежащие передаче, соответствующему BE 1122, и BE 1122 получает, согласно объявлению, GPA, соответствующий кэш-памяти, где находятся данные, подлежащие передаче.

[0166] Устройство VF 11111 дополнительно выполнено с возможностью инициирования запроса чтения DMA с использованием GPA, записанного во втором блоке хранения, в качестве целевого адреса, при обнаружении наличия данных, подлежащих передаче; кроме того, устройство VF 11111 может быть дополнительно выполнено с возможностью, после выполнения запроса чтения DMA, объявления соответствующего экземпляра 1121 программного обеспечения VF на хосте 1120, так что экземпляр 1121 программного обеспечения VF запускает FE 1131 для освобождения соответствующей кэш-памяти.

[0167] Аппаратный уровень 1110 вычислительного узла 1100 может дополнительно включать в себя:

блок 1112 управления памятью ввода/вывода IOMMU, выполненный с возможностью преобразования целевого адреса GPA запроса чтения DMA, инициированного устройством VF 11111, в соответствующий HPA.

[0168] Например, в IOMMU устанавливается таблица страниц трансляции адреса 1112, где в таблице страниц трансляции адреса задано отображение между GPA и HPA; IOMMU 1112 может получать HPA, соответствующий целевому адресу GPA запроса чтения DMA, посредством поиска в таблице страниц трансляции адреса, и преобразовывать целевой адрес GPA запроса чтения DMA в полученный HPA.

[0169] В другом сценарии приложения, FE 1131 может дополнительно быть выполнен с возможностью записи GPA, соответствующего кэш-памяти, где находятся данные, подлежащие передаче, в память 1140, совместно используемую между хостом 1120 и VM 1130.

[0170] Хост 1120 может быть выполнен с возможностью преобразования GPA, соответствующего кэш-памяти, где находятся данные, подлежащие передаче, в совместно используемой памяти 1140, в соответствующий HPA.

[0171] Например, на хосте устанавливается таблица страниц трансляции адреса 1120, где в таблице страниц трансляции адреса задано отображение между GPA и HPA; посредством поиска в таблице страниц трансляции адреса, хост 1120 может получать HPA, соответствующий GPA, который соответствует кэш-памяти, где находятся данные, подлежащие передаче, в совместно используемой памяти, и преобразовывать GPA, соответствующий кэш-памяти, где находятся данные, подлежащие передаче, в совместно используемой памяти, в соответствующий HPA. Определенно, FE 1131 также может объявлять GPA, соответствующий кэш-памяти, где находятся данные, подлежащие передаче, хосту 1120, и хост 1120 может преобразовывать GPA, соответствующий кэш-памяти, где находятся данные, подлежащие передаче, в соответствующий HPA.

[0172] BE 1122 дополнительно выполнен с возможностью получения HPA, соответствующего кэш-памяти, где находятся данные, подлежащие передаче; вызова программного интерфейса передачи экземпляра 1121 программного обеспечения VF, связанного с BE 1122, и записи HPA, соответствующего кэш-памяти, где находятся данные, подлежащие передаче, во второй блок хранения устройства VF 11111, соответствующего экземпляру 1121 программного обеспечения VF.

[0173] Устройство VF 11111 может быть дополнительно выполнено с возможностью инициирования запроса чтения DMA с использованием HPA, записанного во втором блоке хранения, в качестве целевого адреса, при обнаружении наличия данных, подлежащих передаче. Кроме того, устройство VF 11111 может быть дополнительно выполнено с возможностью, после выполнения запроса чтения DMA, объявления соответствующего экземпляра 1121 программного обеспечения VF на хосте 1120, так что экземпляр 1121 программного обеспечения VF запускает FE 1131 для освобождения соответствующей кэш-памяти.

[0174] Первым блоком хранения, например, является очередь приема или список приема устройства VF или другая структура хранения данных, пригодная для записи адреса. Вторым блоком хранения, например, является очередь передачи или список передачи устройства VF или другая структура хранения данных, пригодная для записи адреса.

[0175] Можно понять, что хост 1120 в этом варианте осуществления может представлять собой хост в каждом из вышеупомянутых вариантов осуществления способа, рабочий механизм системы виртуализации, на котором вычислительный узел 1100 выполняется согласно варианту осуществления, может соответствовать описанию, приведенному в вышеупомянутых вариантах осуществления способа, функции каждого функционального модуля могут быть конкретно реализованы согласно способу в каждом из вышеупомянутых вариантов осуществления способа. Для процедуры конкретной реализации, можно сослаться на соответствующее описание вышеупомянутых вариантов осуществления способа, и подробности здесь не повторяются.

[0176] Можно видеть, что, вычислительный узел 1100 согласно варианту осуществления настоящего изобретения включает в себя: аппаратный уровень, хост, выполняющийся на аппаратном уровне, и, по меньшей мере, одну VM, выполняющуюся на хосте, где аппаратный уровень включает в себя устройство ввода/вывода I/O, несколько соответствующих устройств виртуальной функции VF виртуализируется из устройства I/O; хост имеет несколько экземпляров программного обеспечения VF, и несколько экземпляров программного обеспечения VF и несколько устройств VF находятся во взаимно-однозначном соответствии; хост дополнительно имеет экземпляр внутренней стороны BE виртуального устройства I/O, однотипного устройству I/O, и VM имеет экземпляр внешней стороны FE виртуального устройства I/O, где BE на хосте связана с неактивным экземпляром программного обеспечения VF. Таким образом, устанавливается архитектура приложения, в которой каждая VM может независимо использовать одно устройство VF, между одним устройством VF, виртуализированным из устройства I/O, и экземпляром внешней стороны FE в одной VM, проходит канал, так что FE может осуществлять доступ к устройству VF через BE на хосте. Устройство VF, виртуализированное из устройства I/O, по отдельности выделяется VM для использования, и устройство VF может обеспечивать высокоэффективный интерфейс устройства, поэтому VM полезно получать примерно такую же производительность, как у физической машины, задержка невелика, и возникновение какой-либо дополнительной служебной нагрузки ЦП маловероятно. Кроме того, привод внешней стороны (то есть, FE) виртуального устройства I/O находится в VM, поэтому FE переносит данные через привод внутренней стороны (то есть, BE) на хосте, и VM не воспринимает реальное физическое устройство хоста, что удобно для перехода и реализации совместного использования устройства, таким образом, реализуя оптимизацию совместимости системы виртуализации.

[0177] Согласно фиг. 12, вариант осуществления настоящего изобретения дополнительно предусматривает компьютерную систему, которая может включать в себя:

по меньшей мере, один вычислительный узел 1100.

[0178] Следует отметить, что, согласно каждому из вышеупомянутых вариантов осуществления способа, для простого описания, способ описан как последовательность действий, но специалисты в данной области техники должны усвоить, что настоящее изобретение не ограничивается описанной последовательностью действий, поскольку согласно настоящему изобретению, некоторые этапы могут осуществляться в других последовательностях или осуществляться одновременно. Кроме того, специалисты в данной области техники должны усвоить, что все варианты осуществления, описанные в описании изобретения, являются иллюстративными вариантами осуществления, и предусмотренные операции и модули могут не требоваться для настоящего изобретения.

[0179] В вышеописанных вариантах осуществления, описание каждого варианта осуществления имеет свое ударение, и для части, которая не детализируется согласно варианту осуществления, можно сослаться на соответствующее описание других вариантов осуществления.

[0180] Ввиду вышеизложенного, вычислительный узел согласно варианту осуществления настоящего изобретения может включать в себя: аппаратный уровень, хост, выполняющийся на аппаратном уровне, и, по меньшей мере, одну VM, выполняющуюся на хосте, аппаратный уровень включает в себя устройство ввода/вывода I/O, несколько соответствующих устройств виртуальной функции VF виртуализируется из устройства I/O; хост имеет несколько экземпляров программного обеспечения VF, и несколько экземпляров программного обеспечения VF и несколько устройств VF находятся во взаимно-однозначном соответствии; хост дополнительно имеет экземпляр внутренней стороны BE виртуального устройства I/O, однотипного устройству I/O, и VM имеет экземпляр внешней стороны FE виртуального устройства I/O, где BE на хосте связана с неактивным экземпляром программного обеспечения VF. Таким образом, устанавливается архитектура приложения, в которой каждая VM может независимо использовать одно устройство VF, между одним устройством VF, виртуализированным из устройства I/O, и экземпляром внешней стороны FE в одной VM, проходит канал, так что FE может осуществлять доступ к устройству VF через BE на хосте. Устройство VF, виртуализированное из устройства I/O, по отдельности выделяется VM для использования, и устройство VF может обеспечивать высокоэффективный интерфейс устройства, поэтому VM полезно получать примерно такую же производительность, как у физической машины, задержка невелика, и возникновение какой-либо дополнительной служебной нагрузки ЦП маловероятно. Кроме того, привод внешней стороны (то есть, FE) виртуального устройства I/O находится в VM, поэтому FE переносит данные через привод внутренней стороны (то есть, BE) на хосте, и VM не воспринимает реальное физическое устройство хоста, что удобно для перехода и реализации совместного использования устройства, таким образом, реализуя оптимизацию совместимости системы виртуализации. Кроме того, не требуется, чтобы OS в VM имела последнюю аппаратную технологическую поддержку, вычислительный узел применим к различным наиболее распространенным OS, вне зависимости от приводов VM, обеспеченных поставщиками оборудования (IHV); изоляция и развязка между виртуальной машиной и физической платформой полностью сохраняются, и виртуальная машина проста в переносе; хост по-прежнему может отслеживать прием и передачу данных в VM, и по-прежнему можно использовать такие передовые признаки, как фильтрация данных и мультиплексирование памяти; часть FE внешней стороны PV можно мультиплексировать, и удобно осуществлять обновление.

[0181] Кроме того, в ходе процедуры выполнения запроса чтения/записи DMA, аппаратный модуль IOMMU реализует трансляцию между GPA и HPA, таким образом, уменьшая конфигурацию аппаратных ресурсов и упрощая последовательность обработки. Альтернативно, в ходе процедуры выполнения запроса чтения DMA, хост реализует трансляцию между GPA и HPA, таким образом, уменьшая конфигурацию аппаратных ресурсов и упрощая последовательность обработки.

[0182] Специалисты в данной области техники должны понять, что все или часть этапов способа согласно вариантам осуществления настоящего изобретения можно реализовать посредством программы, управляющей соответствующим оборудованием. Программа может храниться на машиночитаемом носителе данных, например, в постоянной памяти, оперативной памяти, магнитном диске или оптическом диске.

[0183] Подробно описаны способ и устройства обработки виртуализации, и компьютерная система, предусмотренные в вариантах осуществления настоящего изобретения. Принцип и реализация настоящего изобретения описаны здесь на конкретных примерах. Описание вариантов осуществления настоящего изобретения приведено исключительно для облегчения понимания способа и основных принципов настоящего изобретения. Специалисты в данной области техники могут предложить вариации и модификации настоящего изобретения в отношении конкретной реализации и объема применимости согласно принципам настоящего изобретения. Поэтому описание изобретения не следует рассматривать в порядке ограничения настоящего изобретения.


СПОСОБ И УСТРОЙСТВА ОБРАБОТКИ ВИРТУАЛИЗАЦИИ И КОМПЬЮТЕРНАЯ СИСТЕМА
СПОСОБ И УСТРОЙСТВА ОБРАБОТКИ ВИРТУАЛИЗАЦИИ И КОМПЬЮТЕРНАЯ СИСТЕМА
СПОСОБ И УСТРОЙСТВА ОБРАБОТКИ ВИРТУАЛИЗАЦИИ И КОМПЬЮТЕРНАЯ СИСТЕМА
СПОСОБ И УСТРОЙСТВА ОБРАБОТКИ ВИРТУАЛИЗАЦИИ И КОМПЬЮТЕРНАЯ СИСТЕМА
СПОСОБ И УСТРОЙСТВА ОБРАБОТКИ ВИРТУАЛИЗАЦИИ И КОМПЬЮТЕРНАЯ СИСТЕМА
СПОСОБ И УСТРОЙСТВА ОБРАБОТКИ ВИРТУАЛИЗАЦИИ И КОМПЬЮТЕРНАЯ СИСТЕМА
СПОСОБ И УСТРОЙСТВА ОБРАБОТКИ ВИРТУАЛИЗАЦИИ И КОМПЬЮТЕРНАЯ СИСТЕМА
СПОСОБ И УСТРОЙСТВА ОБРАБОТКИ ВИРТУАЛИЗАЦИИ И КОМПЬЮТЕРНАЯ СИСТЕМА
СПОСОБ И УСТРОЙСТВА ОБРАБОТКИ ВИРТУАЛИЗАЦИИ И КОМПЬЮТЕРНАЯ СИСТЕМА
СПОСОБ И УСТРОЙСТВА ОБРАБОТКИ ВИРТУАЛИЗАЦИИ И КОМПЬЮТЕРНАЯ СИСТЕМА
СПОСОБ И УСТРОЙСТВА ОБРАБОТКИ ВИРТУАЛИЗАЦИИ И КОМПЬЮТЕРНАЯ СИСТЕМА
СПОСОБ И УСТРОЙСТВА ОБРАБОТКИ ВИРТУАЛИЗАЦИИ И КОМПЬЮТЕРНАЯ СИСТЕМА
СПОСОБ И УСТРОЙСТВА ОБРАБОТКИ ВИРТУАЛИЗАЦИИ И КОМПЬЮТЕРНАЯ СИСТЕМА
СПОСОБ И УСТРОЙСТВА ОБРАБОТКИ ВИРТУАЛИЗАЦИИ И КОМПЬЮТЕРНАЯ СИСТЕМА
СПОСОБ И УСТРОЙСТВА ОБРАБОТКИ ВИРТУАЛИЗАЦИИ И КОМПЬЮТЕРНАЯ СИСТЕМА
СПОСОБ И УСТРОЙСТВА ОБРАБОТКИ ВИРТУАЛИЗАЦИИ И КОМПЬЮТЕРНАЯ СИСТЕМА
СПОСОБ И УСТРОЙСТВА ОБРАБОТКИ ВИРТУАЛИЗАЦИИ И КОМПЬЮТЕРНАЯ СИСТЕМА
СПОСОБ И УСТРОЙСТВА ОБРАБОТКИ ВИРТУАЛИЗАЦИИ И КОМПЬЮТЕРНАЯ СИСТЕМА
Источник поступления информации: Роспатент

Showing 81-90 of 707 items.
20.07.2014
№216.012.e133

Способ и система передачи обслуживания в сети ретрансляции, узел ретрансляции, базовая станция управления и базовая станция

Изобретение относится к мобильной связи. Технический результат заключается в обеспечении передачи обслуживания от базовой станции на узел ретрансляции. Посредством узла ретрансляции принимают первый идентификатор области, который идентифицирует узел ретрансляции; посылают широковещательное...
Тип: Изобретение
Номер охранного документа: 0002523437
Дата охранного документа: 20.07.2014
27.07.2014
№216.012.e334

Способ и устройство для получения ключа безопасности в ретрансляционной системе

Изобретение относится к технологиям связи. Технический результат - эффективное обеспечение безопасности данных в каждом сегменте радиоинтерфейса. Способ для получения ключа безопасности в ретрансляционной системе, в котором узел в ретрансляционной системе получает начальный ключ, в соответствии...
Тип: Изобретение
Номер охранного документа: 0002523954
Дата охранного документа: 27.07.2014
27.07.2014
№216.012.e4e3

Магнитный интегральный симметричный конвертер

Изобретение относится к области электротехники. Магнитный интегральный симметричный конвертер с интегральной функцией трансформатора и индуктора включает в себя: интегральный магнитный элемент, имеющий магнитный сердечник с тремя магнитными колоннами, включающий в себя, по меньшей мере, три...
Тип: Изобретение
Номер охранного документа: 0002524385
Дата охранного документа: 27.07.2014
10.09.2014
№216.012.f1e1

Способ, устройство и система доступа к беспроводной сети и отправления сообщения системы поискового вызова

Изобретение относится к средствам управления доступом к беспроводной сети и отправления сообщения системы поискового вызова. Технический результат заключается в уменьшении вероятности возникновения конфликта доступа. Принимают информацию планирования, где информация планирования указывает...
Тип: Изобретение
Номер охранного документа: 0002527743
Дата охранного документа: 10.09.2014
10.09.2014
№216.012.f1e7

Способ и устройство для реализации службы полупостоянного планирования или службы, подобной полупостоянному планированию

Изобретение описывает реализацию службы полупостоянного планирования или службы, подобной полупостоянному планированию. Технический результат состоит в поддержке режима передачи MIMO с замкнутым циклом уровня 1. Для этого предусмотрены этапы, на которых: уведомляют терминал о его периоде SPS...
Тип: Изобретение
Номер охранного документа: 0002527749
Дата охранного документа: 10.09.2014
10.09.2014
№216.012.f373

Способ, устройство и система для параллельного монтажа рекламы

Изобретение относится к области межсетевого соединения с параллельным монтажом рекламы. Технический результат заключается в снижении аппаратных ресурсов при параллельном монтаже рекламы при получении запросов на воспроизведение за счет конфигурирования мультимедийного потока. В способе...
Тип: Изобретение
Номер охранного документа: 0002528146
Дата охранного документа: 10.09.2014
10.10.2014
№216.012.faa5

Способ и устройство связи

Изобретение относится к технологии беспроводной радиосвязи, использующей агрегацию несущих, и обеспечивает апериодическую передачу сообщений о качестве канала нисходящей линии связи. В этой системе радиосвязи несколько компонентных несущих нисходящей линии связи могут быть агрегированы для...
Тип: Изобретение
Номер охранного документа: 0002530011
Дата охранного документа: 10.10.2014
10.10.2014
№216.012.fb91

Способ ретрансляции сообщений, точка доступа и система

Изобретение относится к области беспроводного доступа. Технический результат изобретения заключается в выборе оптимального режима ретрансляции путем идентификации полученного сообщения. Точка доступа получает таблицу конфигурации ретрансляции, которая содержит типы сообщения и режимы...
Тип: Изобретение
Номер охранного документа: 0002530247
Дата охранного документа: 10.10.2014
10.10.2014
№216.012.fb94

Способ и устройство для распределения виртуальной локальной сети

Изобретение раскрывает способ и устройство для распределения VLAN применительно к быстрому и гибкому распределению VLAN большому количеству терминальных устройств. Технический результат изобретения заключается в сокращении нагрузки на коммутатор и увеличении скорости обработки запроса...
Тип: Изобретение
Номер охранного документа: 0002530250
Дата охранного документа: 10.10.2014
10.10.2014
№216.012.fbbe

Антенна, базовая станция и способ обработки диаграммы направленности

Изобретение относится к антенным технологиям. Технический результат - повышение пропускной способности и упрощение устройства. Для этого способ включает в себя выполнение, посредством гибридной схемы, регулирования фазы для сигналов, принимаемых от приемопередатчика базовой станции,...
Тип: Изобретение
Номер охранного документа: 0002530292
Дата охранного документа: 10.10.2014
Showing 81-90 of 372 items.
27.06.2014
№216.012.d545

Система и способ для перенаправления сообщений в активный интерфейс многоинтерфейсного устройства

Изобретение относится к средствам перенаправления сообщений в активный интерфейс устройства. Технический результат заключается в уменьшении электропотребления многоинтерфейсных устройств. Посредством первой сети принимают первое сообщение из пользовательского устройства до того, как первый...
Тип: Изобретение
Номер охранного документа: 0002520375
Дата охранного документа: 27.06.2014
27.06.2014
№216.012.d60b

Способ, устройство и система хэндовера и обработки вызовов

Изобретение относится к мобильной связи, в частности, к технологии хэндовера (передачи обслуживания) и обработки вызовов. Техническим результатом является предотвращение сбоя вызова, происходящего по причине различия между конечными точками о типе временного разделения каналов (ВРК),...
Тип: Изобретение
Номер охранного документа: 0002520573
Дата охранного документа: 27.06.2014
27.06.2014
№216.012.d991

Способ и устройство ретрансляционной передачи

Изобретение относится к системе беспроводной связи, использующей ретрансляцию, и предназначено для повышения пропускной способности за счет осуществления ретрансляционной системы при выполнении передачи данных в соответствии со структурой ретрансляционного кадра приема дуплексной связи с...
Тип: Изобретение
Номер охранного документа: 0002521475
Дата охранного документа: 27.06.2014
20.07.2014
№216.012.e02d

Способ и устройство для поддерживания непрерывности трафика

Изобретение относится к области связи и, в частности, к области транспортировки данных трафика связи. Технический результат заключается в обеспечении поддержания непрерывности трафика. Для этого принимают с помощью объекта функции выгрузки трафика (TOF) пакет нисходящей линии связи выгружаемого...
Тип: Изобретение
Номер охранного документа: 0002523175
Дата охранного документа: 20.07.2014
20.07.2014
№216.012.e133

Способ и система передачи обслуживания в сети ретрансляции, узел ретрансляции, базовая станция управления и базовая станция

Изобретение относится к мобильной связи. Технический результат заключается в обеспечении передачи обслуживания от базовой станции на узел ретрансляции. Посредством узла ретрансляции принимают первый идентификатор области, который идентифицирует узел ретрансляции; посылают широковещательное...
Тип: Изобретение
Номер охранного документа: 0002523437
Дата охранного документа: 20.07.2014
27.07.2014
№216.012.e334

Способ и устройство для получения ключа безопасности в ретрансляционной системе

Изобретение относится к технологиям связи. Технический результат - эффективное обеспечение безопасности данных в каждом сегменте радиоинтерфейса. Способ для получения ключа безопасности в ретрансляционной системе, в котором узел в ретрансляционной системе получает начальный ключ, в соответствии...
Тип: Изобретение
Номер охранного документа: 0002523954
Дата охранного документа: 27.07.2014
27.07.2014
№216.012.e4e3

Магнитный интегральный симметричный конвертер

Изобретение относится к области электротехники. Магнитный интегральный симметричный конвертер с интегральной функцией трансформатора и индуктора включает в себя: интегральный магнитный элемент, имеющий магнитный сердечник с тремя магнитными колоннами, включающий в себя, по меньшей мере, три...
Тип: Изобретение
Номер охранного документа: 0002524385
Дата охранного документа: 27.07.2014
10.09.2014
№216.012.f1e1

Способ, устройство и система доступа к беспроводной сети и отправления сообщения системы поискового вызова

Изобретение относится к средствам управления доступом к беспроводной сети и отправления сообщения системы поискового вызова. Технический результат заключается в уменьшении вероятности возникновения конфликта доступа. Принимают информацию планирования, где информация планирования указывает...
Тип: Изобретение
Номер охранного документа: 0002527743
Дата охранного документа: 10.09.2014
10.09.2014
№216.012.f1e7

Способ и устройство для реализации службы полупостоянного планирования или службы, подобной полупостоянному планированию

Изобретение описывает реализацию службы полупостоянного планирования или службы, подобной полупостоянному планированию. Технический результат состоит в поддержке режима передачи MIMO с замкнутым циклом уровня 1. Для этого предусмотрены этапы, на которых: уведомляют терминал о его периоде SPS...
Тип: Изобретение
Номер охранного документа: 0002527749
Дата охранного документа: 10.09.2014
10.09.2014
№216.012.f373

Способ, устройство и система для параллельного монтажа рекламы

Изобретение относится к области межсетевого соединения с параллельным монтажом рекламы. Технический результат заключается в снижении аппаратных ресурсов при параллельном монтаже рекламы при получении запросов на воспроизведение за счет конфигурирования мультимедийного потока. В способе...
Тип: Изобретение
Номер охранного документа: 0002528146
Дата охранного документа: 10.09.2014
+ добавить свой РИД