English
version

Новости

18 октября 2016

Архитектура MIPS и виртуализацияСтатья в блоге Алекса Войки (Alex Voica, https://imgtec.com/blog/author/alexvoica/)

Алекс Войка, Лондон, Великобритания, 31 марта 2016 г. — Говорят, история повторяется. На пороге нового столетия многие участники компьютерной отрасли были вовлечены в жаркие споры по поводу того, как многопоточность и виртуализация могут привести к очередному большому буму в области настольных ПК и серверов, обеспечив большой прирост производительности для множества приложений с высокой пропускной способностью.

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

Обе концепции не новы: многопоточная компьютерная архитектура практикуется еще с 1950-х, а виртуализация вышла вперед в качестве «Самой многообещающей технологии года» еще в конце 1970-х.

Вместе с тем, они исключительно важны для будущего подключенных вычислений (компьютеров и сервисов, подключенных к интернету), в частности, если немного отойти назад и посмотреть на общую картину IoT. Новейшие прогнозы оценивают рынок IoT в несколько миллиардов устройств, подключенных к интернету, включая интеллектуальные датчики, межсетевые устройства, промежуточные узлы или дата-центры.

Все, и каждая из вышеупомянутых категорий, смогут только выиграть от многопоточности и виртуализации. В этой статье я объясню, что такое виртуализация, а также расскажу об архитектуре аппаратных и программных средств виртуализированных систем. И в конце я кратко опишу уровень поддержки виртуализации в процессорах MIPS.

Экспресс-курс по виртуализации

Проще говоря, виртуализация позволяет одному физическому устройству видеться системой как одно или более виртуальных устройств. Виртуализация может быть реализована на уровне процессора (напр., CPU или GPU виртуализация) или на уровне системы (т. е. SoC виртуализация).

Виртуализация отделяет программное обеспечение, запущенное на виртуальных машинах, от лежащего в основе аппаратного обеспечения

Обладая поддержкой виртуализации, платформа может создавать множество виртуальных машин (ВМ), на каждой из которых работает своя операционная система, встроенные программы или комбинация того и другого.

Аппаратное и программное обеспечение виртуализированных платформ

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

Хост-машина – это физически реальные аппаратные средства, ресурсы которых подлежат виртуализации. Например, для MIPS хост-процессор – это синоним физического устройства, процессора CPU.

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

Программное обеспечение, создающее ВМ и управляющее ею, называется гипервизором. Гипервизор является важнейшим компонентом виртуализированных систем, и представляет собой промежуточный уровень программного обеспечения между виртуальными машинами и реальным аппаратным обеспечением. Работая в корневом контексте, гипервизор напрямую управляет аппаратными средствами, и таким образом создает и поддерживает надежные, доверенные среды для исполнения программам. Основная задача гипервизора – это загрузка программного обеспечения, работающего в каждом гостевом контексте, и управление им.

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

Принципы виртуализации

Как и многопоточность, идея виртуализации не нова. В 1974 г. два известных специалиста по теории вычислительных машин и систем – Геральд Попек (Gerald J. Popek) (UCLA) и Роберт Голдберг (Robert P. Goldberg) (Гарвардский университет) – написали статью «Формальные требования для виртуализируемых архитектур третьего поколения»; эта статья содержит три главных принципа виртуализации:

Эквивалентность: поведение программы, работающей на виртуальной машине, должно выглядеть идентичным тому, которое она демонстрирует на реальном аппаратном обеспечении

Управление ресурсами: гипервизор должен полностью управлять всеми виртуализованными ресурсами

Эффективность: большинство инструкций, исполняемых виртуализированным программным обеспечением, не должны требовать вмешательства гипервизора

Гипервизоры

Существует два типа гипервизоров: гипервизор первого типа (или автономный) работает непосредственно на аппаратном обеспечении, а гостевое программное обеспечение работает на ВМ. SELTECH FEXEROX и PUCRS Hellfire – это два примера автономных гипервизоров для архитектуры MIPS.

Гипервизор второго типа (или хостовый) работает в среде базовой операционной системы. Гипервизоры второго типа также называются «trap and emulate» гипервизорами, так как все действия гостевой ОС перехватываются, и эмулируется доступ к аппаратным средствам. Известным примером гипервизора второго типа для MIPS процессоров является гипервизор KVM, который работает на ядре Linux.

В процессоре MIPS гипервизор второго типа работает в режиме ядра, а гостевая ОС работает в пользовательском режиме. Таким образом, любая попытка гостевой ОС получить доступ к привилегированной области памяти или выполнить привилегированную инструкцию вызывает исключение, которое обрабатывается гипервизором, работающим в режиме ядра.

Модуль виртуализации MIPS (MIPS VZ) и процессоры MIPS OmniShield-ready

Виртуализация может реализовываться только программными средствами (напр., паравиртуализация) или с помощью аппаратной поддержки (полная виртуализация). Многие процессоры на базе MIPS сегодня поддерживают и обеспечивают работу паравиртуализованных операционных систем и встроенных программ.

С релиза 5 в архитектуре MIPS стала возможна виртуализация с аппаратной поддержкой. Внедрение полной виртуализации в процессорах MIPS Warrior CPU обеспечило прирост производительности без каких-либо модификаций гостевых операционных систем.

Процессоры MIPS Warrior CPU поддерживают различные уровни полной виртуализации с аппаратной поддержкой. Примечательно, что мы внедрили эту технологию во всю линейку процессоров, от топовых P-класса и энергоэффективных I-класса прикладных процессоров до M5150 и M5100 микроконтроллерных процессоров.

Наличие полной виртуализации во всей линейке процессоров MIPS – это уникальная особенность архитектуры MIPS на рынке процессорных IP-блоков.

На графике ниже представлено максимальное количество гостевых операционных систем, которое способен поддерживать каждый процессор MIPS Warrior CPU:

Более подробную информацию о модуле MIPS VZ вы найдете на нашей специальной страничке здесь.

Для обеспечения требований безопасности и надежности подключенных устройств нового поколения, Imagination добавила аппаратную поддержку виртуализации в графические процессора PowerVR Series7 GPU, а также в другие процессоры. Реализация полной аппаратной виртуализации в процессорах MIPS и PowerVR позволяет дизайнерам систем на кристалле строить OmniShield-ready платформы.

OmniShield – это передовая программно-аппаратная технология, которая обеспечивает безопасность на уровне системы. Более подробно читайте про OmniShield здесь и здесь.

Оригинал этой статьи: https://imgtec.com/blog/the-mips-architecture-and-virtualization/