Что такое эмуляторы и для чего они нужны

Что такое эмулятор

Ваш пропуск в мир винтажных приставок и хакерских игрушек

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

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

Вот сразу список эмуляторов на будущее:

А пока вы распаковываете своего «Супер Марио», вот немного матчасти о том, как это работает.

Что такое эмулятор

Можно представить, что эмулятор — это переходник с определённой программы на другую программу или железо. Например:

Что такое эмуляторы и для чего они нужны. Смотреть фото Что такое эмуляторы и для чего они нужны. Смотреть картинку Что такое эмуляторы и для чего они нужны. Картинка про Что такое эмуляторы и для чего они нужны. Фото Что такое эмуляторы и для чего они нужны

Прочитайте нашу статью о процессорах M1 на базе ARM

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

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

Что такое эмуляторы и для чего они нужны. Смотреть фото Что такое эмуляторы и для чего они нужны. Смотреть картинку Что такое эмуляторы и для чего они нужны. Картинка про Что такое эмуляторы и для чего они нужны. Фото Что такое эмуляторы и для чего они нужны

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

Эмуляторы в играх

Существенная часть современных игр выходит на Windows. Если вы захотите поиграть в них на Mac OS, вам потребуется эмулятор Windows: это будет либо полноценная виртуальная машина Parallels или VMWare, либо частичный эмулятор вроде WINE.

У компании Valve есть площадка для игр Steam, на которой то и дело выходят игры для Mac. Некоторые из них написаны под Mac с нуля, но чаще это игры под Windows, которые обёрнуты в собственный эмулятор.

И есть великое множество эмуляторов ретроприставок, о которых мы писали в начале.

Эмуляторы во всём остальном

Самый известный сейчас пример эмулятора — Rosetta, которая позволяет запускать на новых макбуках с процессором Apple M1 старые программы, которые были написаны для архитектуры x86. С технической точки зрения Rosetta — не совсем эмулятор, скорее транслятор кода, но решает ту же самую задачу — берёт старые команды и на лету преобразует их в новый формат.

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

В старом музыкальном оборудовании могут использоваться дискеты, но они недолговечные и их неудобно считывать на современных компьютерах. Тогда используют эмуляторы дискет с использованием USB-флешек. Устройство делает вид, что оно — набор дискет на 1,44 МБ.

Что такое эмуляторы и для чего они нужны. Смотреть фото Что такое эмуляторы и для чего они нужны. Смотреть картинку Что такое эмуляторы и для чего они нужны. Картинка про Что такое эмуляторы и для чего они нужны. Фото Что такое эмуляторы и для чего они нужныЭмулятор гибкого диска. Файлы хранятся на флешке

Всё ли можно эмулировать

Теоретически — да, если нет ограничений по мощности железа, которое для этого нужно.

На практике всё сложнее: некоторые устройства по вычислительной силе вплотную подбираются к возможностям компьютера, а иногда даже превосходят их. Например, на компьютере есть эмуляторы приставок PS2 и первого Xbox — они вышли 20 лет назад и по современным меркам в них совсем слабое железо. Но PS4 и Xbox One уже не эмулируются.

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

Источник

Эмуляторы операционных систем, что это и для чего они нужны

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

реклама

Эмуляторы мобильных ОС используются геймерами и разработчиками игр. Первые получают возможность использовать в мобильных играх мышь и клавиатуру, а также контроллеры Xbox и PlayStation, и играть на большом экране монитора. А вторые могут в комфортных условиях тестировать игры на рабочем компьютере, не используя смартфон или планшет.

Эмуляторы мобильных ОС (Андроид)

Наиболее популярная мобильная операционная система это Android, для неё существует больше десятка различных эмуляторов, например, Bluestacks, Nox App Player, Tencent Gaming Buddy, MEmu, LDPlayer, AndY, KoPlayer, Droid4X, YouWave. Половина из них поддерживает русский язык, но перед установкой рекомендую почитать описание и отзывы о программе, которую собираетесь использовать. Сам я пользовался Bluestacks и Nox App Player. По совместимости с играми и приложениями первая оказалась универсальней и оставил только её. На втором месте iOS (для гаджетов от компании Apple). Некоторые эмуляторы позволяют запускать несколько версий Андроида, это нужно, чтобы протестировать игры на смартфонах, которые уже не получают обновлений.

У некоторых симуляторов Андроида есть собственный магазин приложений, адаптированных под работу на ПК, например: Bluestack и LDPlayer. Другие заточены под конкретную игру, например Tencent Gaming Buddy изначально создавался именно под PUBG, совместим со всеми его дополнениями и имеет функционал, позволяющий запускать игру на старых ПК и ноутбуках, а на новых увеличивает частоту кадров и качество графики.

реклама

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

Существуют и устаревшие программы, такие как Droid4X, YouWave, обновления которых уже прекратились, но они до сих пор актуальны для старых приложений.

реклама

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

Другое нестандартное решение Bliss OS, это операционная система с открытым исходным кодом на базе Android, устанавливается как отдельная ОС и позволяет устанавливать себя на смартфоны и планшеты вместо Андроид. Её преимущество: отсутствие рекламных всплывающих окон и предустановленных приложений.

Настройки некоторых эмуляторов позволяют задавать число ядер центрального процессора, которые будет использовать программа, количество кадров в секунду (FPS), определить объём оперативной памяти, доступной эмулятору. А на случай проблем с совместимостью в играх, предусмотрено переключение режимов рендеринга графики с DirectX на OpenGL.

реклама

Практическое применение для дома

Я пользовался программой Bluestack для создания второго аккаунта в известной онлайн-игре, чтобы не вкладывать в неё деньги, и при этом быстро развиваться. Пробовал устанавливать WhatsApp на ПК во время ремонта смартфона. Сейчас я пользуюсь уже версией для браузера. Чтобы сын не портил зрение на маленьком экране и не сажал батарею телефона, ему на компьютер были установлены с помощью Bluestack программы со смартфона.

Эмуляторы ПК (виртуальные машины) для компьютеров

Аналогичные программы есть и для традиционных операционных систем. Они используются как разработчиками ПО, так и системными администраторами для тестирования различных программ.

Виртуальных машин довольно много, но наибольшую известность получили всего несколько: Oracle VirtualBox, VMware Workstation, Hyper-V (ранее известная как Microsoft Virtual PC).

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

VMware Workstation, Hyper-V чаще применяются уже для рабочих задач. Так VMware Workstation имеет бесплатную версию VMware Workstation Player для домашнего применения, которая из-за ограниченного функционала не стала популярной. Зато платная профессиональная версия довольно часто используется для домашних нужд. В отличие от VirtualBox, VMware Workstation эмулирует интерфейс БИОС и большее количество версий Mac OS X. VMware Workstation позволяет хранить виртуальный диск в одном или нескольких файлах на выбор пользователя и по умолчанию выделяет под него целых 60 Гб.

Hyper-V уже встроена в Windows с 7 по 10, во все версии, кроме базовой и домашней. Находится в дополнительных компонентах и по умолчанию не установлена. Она ничем не уступает остальным программам, но многие пользователи Виндовс просто не знают о её существовании. Hyper-V имеет свои особенности, например: позволяет при создании виртуального ПК задать поколение ОС (Поколение 1 или 2), которое в дальнейшем будет неизменно. Ещё можно задать для виртуальной машины использование динамической памяти (при наличии свободной у реального ПК), когда выявляется нехватка ранее выделенной памяти.

Практическое применение для дома и обучения

Ещё будучи студентом, я использовал виртуальные машины для запуска старых игр, которые уже не работали на современных операционных системах, и для освоения сетевых программ. Работу с локальной сетью лучше всего начинать с виртуальных машин, позднее перейдя на управление старым ПК, который уже стал пишущей машинкой, а только потом переходить на реальные рабочие компьютеры. Позднее я применял виртуальные машины для изучения операционных систем семейства Линукс.

Также виртуальная машина бывает полезна перед покупкой б/у ПК для обучения школьника или студента. Например, ему нужно работать с несколькими программами, и он сомневается, потянет ли их тот или иной компьютер. Виртуальная машина позволит эмулировать железо данного ПК и выявить степень его пригодности для текущих задач. Аналогично можно воссоздать апгрейд старого ПК, замену жёсткого диска на SSD или добавление оперативной памяти.

Источник

Что такое эмуляторы для ПК?

Что такое эмуляторы и для чего они нужны. Смотреть фото Что такое эмуляторы и для чего они нужны. Смотреть картинку Что такое эмуляторы и для чего они нужны. Картинка про Что такое эмуляторы и для чего они нужны. Фото Что такое эмуляторы и для чего они нужны

Многие владельцы мобильных гаджетов недоумевают, зачем кому-то эмулировать платформу «Андроид» на локальном компьютере, тем более если ты не разработчик софта. Но на самом деле причин тому несколько и довольно веских.

Преимущества эмуляторов

Во-первых, операционная система «Андроид» – это целая экосистема, где масса интересных, полезных и главное – эксклюзивных приложений и игр. Последние написаны исключительно под эту платформу, и аналогов в среде «Виндовс» или Мас, увы, нет. Именно тогда и возникает вопрос о том, что такое эмуляторы, как они работают и помогут ли запустить желанное на персональном компьютере.

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

Что такое эмуляторы и для чего они нужны. Смотреть фото Что такое эмуляторы и для чего они нужны. Смотреть картинку Что такое эмуляторы и для чего они нужны. Картинка про Что такое эмуляторы и для чего они нужны. Фото Что такое эмуляторы и для чего они нужны

Итак, разберемся, что такое эмуляторы, на примере платформы «Андроид», какие они бывают, на что способны и имеет ли смысл вообще с ними связываться. Рассмотрим самые популярные приложения подобного плана, отличившиеся качественной составляющей и положительными отзывами от пользователей.

Bluestacks

Данное приложение является самым популярным, причем среди пользователей всех категорий – от новичков до программистов. Для многих ответом на вопрос, что такое эмуляторы, служит именно утилита Bluestacks.

Что такое эмуляторы и для чего они нужны. Смотреть фото Что такое эмуляторы и для чего они нужны. Смотреть картинку Что такое эмуляторы и для чего они нужны. Картинка про Что такое эмуляторы и для чего они нужны. Фото Что такое эмуляторы и для чего они нужны

С программой совместим практически весь софт, который пишется для платформы «Андроид». Исключением могут быть какие-то специфические приложения, где необходим доступ непосредственно к ядру мобильного гаджета.

Особенности софта

В качестве плюсов данного эмулятора «Андроид» на ПК можно отметить наличие в собственном каталоге огромного количества приложений, специально оптимизированных под Bluestacks. Разработчик хоть и не гарантирует стабильную работу стороннего софта внутри среды, но, судя по отзывам пользователей, проблем у них с этим нет.

Что такое эмуляторы и для чего они нужны. Смотреть фото Что такое эмуляторы и для чего они нужны. Смотреть картинку Что такое эмуляторы и для чего они нужны. Картинка про Что такое эмуляторы и для чего они нужны. Фото Что такое эмуляторы и для чего они нужны

Отличительные черты эмулятора

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

В качестве ложки дегтя здесь выступает прожорливость программы. Обилие функционала и отличная визуальная составляющая сказались на системных требованиях к ПК. Для работы необходим компьютер немногим выше среднего с оперативной памятью как минимум на 8 Гб. В противном случае эмулировать платформу «Андроид» на скромных ПК просто нет смысла.

Nox App Player

В отличие от предыдущего респондента, «Нокс» получился более минималистичным, но не менее эффективным эмулятором на ПК. Если во время запуска Bluestacks на рабочем столе всплывало громоздкое меню, иконки предустановленных приложений и каких-то сервисов, то в случае с «Нокс» такого нет. После запуска вы увидите ничем не примечательный рабочий стол платформы «Андроид», что называется, без лишнего шума.

Что такое эмуляторы и для чего они нужны. Смотреть фото Что такое эмуляторы и для чего они нужны. Смотреть картинку Что такое эмуляторы и для чего они нужны. Картинка про Что такое эмуляторы и для чего они нужны. Фото Что такое эмуляторы и для чего они нужны

В интерфейсе утилиты присутствуют привычные кнопки «Домой», «Назад» и «Недавние» и скромная боковая панель с доступом к быстрым функциям. Никаких баров, дополнительных окон и прочих удобностей здесь нет – только рабочая среда и минимум визуального вмешательства.

Особенности программы

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

Настройки утилиты также внушают уважение. Можно изменить практически все, что угодно, вплоть до ограничения по производительности (использовать только два ядра или 1 Гб оперативной памяти). Каких-либо проблем даже на компьютерах со слабыми техническими характеристиками пользователи не испытывают. Все работает на должно уровне и как надо. Кстати, с последними обновлениями эмулятор получил отличную синергию с ОС «Виндовс» десятой версии, где даже уведомления отображаются корректно и почтовые службы идеально отточены.

Genymotion

Несмотря на то, что Genymotion позиционируется как мощный инструмент для разработчиков, эмулятор вполне неплохо себя чувствует в руках обычных пользователей. Утилита прекрасно работает не только на операционной системе «Виндовс», но и в среде Мас и «Линукс».

Что такое эмуляторы и для чего они нужны. Смотреть фото Что такое эмуляторы и для чего они нужны. Смотреть картинку Что такое эмуляторы и для чего они нужны. Картинка про Что такое эмуляторы и для чего они нужны. Фото Что такое эмуляторы и для чего они нужны

Обилие инструментов для программистов и разработчиков здесь просто поражает. Доступна масса шаблонов для самых разных устройств, поддерживающих платформу «Андроид»: начиная с маститых «Галакси» и «Нексусов» и заканчивая китайскими ноунейм-бюджетниками.

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

Отличительные черты эмулятора

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

Софт достаточно требователен к системным характеристикам компьютера, поэтому на слабеньких машинах запускать его смысла нет. Да и использовать утилиту исключительно для игр не совсем практично. Эмулятор имеет богатейший функциональный набор, который останется просто не у дел и будет почем зря «кушать» ресурсы ПК, если вы будете только играть на нем.

Источник

Симуляторы компьютерных систем – похожи ли на реальность

Простым и доступным языком про основные термины из области симуляторов, а также типы и уровни детализации моделей. Материал для легкого и быстрого знакомства с данным направлением.

Что такое эмуляторы и для чего они нужны. Смотреть фото Что такое эмуляторы и для чего они нужны. Смотреть картинку Что такое эмуляторы и для чего они нужны. Картинка про Что такое эмуляторы и для чего они нужны. Фото Что такое эмуляторы и для чего они нужны

Если бы меня спросили про симуляцию некоторое время назад, то первое, что пришло бы в голову – это мой сын, рассказывающий о своем больном животе накануне контрольной в школе. Однако последние десять лет я работаю с симуляторами различных компьютерных систем, от телефонов до серверов, основанных на микропроцессорах, SOC-ах (System-On-Chip) и чипсетах одного из крупнейших производителей (к сожалению, название под NDA), и мое представление о симуляции поменялось. Но обо всем по порядку.

Я уверен, что многие из вас сталкивались с симуляторами, которые часто называют виртуальными машинами, гипервизорами. Кто-то устанавливает Parallels Studio себе на Mac, чтобы запускать Windows из MacOS, кто-то пользуется продуктом от VmWare – Workstation, чтобы иметь еще одну операционную систему (ОС), запущенную внутри уже установленной. Те, кто знаком с Linux, предпочитают KVM и QEMU. Также популярен в народе VirtualBox. Люди, профессионально занимающиеся разработкой аппаратуры на базе ПЛИС (Программируемая Логическая Интегральная Схема), знают про VCS от Synopsys и Mentor Graphics Questa. И все же это лишь небольшая часть того, что можно называть симуляторами.

Что такое симулятор?

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

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

Airbnb в симуляции – гость и хост

Код, запускаемый внутри симулятора, называют «гостевым кодом», это может быть «гостевая программа» или целая «гостевая операционная система». Сама симулируемая система называется просто «гость». В свою очередь, система, компьютер, где запускается симулятор, называется «хостом» (англ. host), а операционная система, работающая на хосте, в которой запускается симулятор, называется «хостовой ОС».

Что такое эмуляторы и для чего они нужны. Смотреть фото Что такое эмуляторы и для чего они нужны. Смотреть картинку Что такое эмуляторы и для чего они нужны. Картинка про Что такое эмуляторы и для чего они нужны. Фото Что такое эмуляторы и для чего они нужны

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

Симуляция и эмуляция – какое название правильное?

Модель может повторять устройство с разной степенью точности и детализации. Часто это симуляция только внешнего поведения системы, доступного программному коду. Коду ведь «все равно», как именно внутри реализована та или иная инструкция процессора, – главное, чтобы работало. Такой вариант симуляции распространен, не сложен в разработке и довольно быстрый, не тормозит даже на обычных пользовательских компьютерах.

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

Создание эмуляторов гораздо сложнее из-за большего объема функциональности, которую необходимо реализовывать в модели. Также они функционируют намного медленнее по сравнению с симуляторами внешнего поведения устройства. С эмуляторами речь вообще не идет о запуске Windows – это может занять годы. Никто не занимается созданием программного эмулятора целиком всей платформы – это очень долго и дорого. Вместо этого эмулируются отдельные компоненты системы, такие как тот же центральный процессор, и на нем запускается лишь часть симуляционного процесса. Возможны различные гибридные схемы, когда часть симулятора является верхнеуровневой моделью, часть низкоуровневой, часть в ПЛИС, а часть вообще реальная железка.

Что такое эмуляторы и для чего они нужны. Смотреть фото Что такое эмуляторы и для чего они нужны. Смотреть картинку Что такое эмуляторы и для чего они нужны. Картинка про Что такое эмуляторы и для чего они нужны. Фото Что такое эмуляторы и для чего они нужны

4 уровня детализации симуляции

Как я написал выше, наиболее распространенным является вариант симуляции на уровне инструкций процессора, так называемый ISA (Instruction Set Architecture), или, точнее, результата их выполнения, т.е. без эмуляции всей внутренней логики того, как это происходит в реальном процессоре, и без учета времени выполнения различных инструкций. Именно такие симуляторы называют еще функциональными. Так работают VirtualBox, Vmware Workstation, Wind River Simics, KVM и QEMU. Это позволяет удобно, без лишних дополнительных действий запускать программы, предназначенные для симулируемого устройства. Другими словами, не требуется ни перекомпиляция, ни какие-либо другие манипуляции с запускаемыми программами. В таких случаях говорят, что возможен запуск немодифицированного бинарного кода.

Если говорить про более высокий уровень абстракции, то это будет реализация определенного ABI (Application Binary Interface). В двух словах, ABI описывает бинарный интерфейс взаимодействия двух программ – как правило, пользовательской программы и библиотеки или ОС. ABI покрывает соглашения о вызовах (как передавать параметры и возвращать значения), размеры типов данных, выполнение системных вызовов. Как это работает? Например, если программе, написанной для Linux, необходимо создать дополнительный тред (от англ. thread – нить) выполнения, то вызывается функция pthread_create(). А что, если сделать библиотеку с такой функцией в Windows и реализовать необходимые механизмы связывания приложения и библиотеки (динамической линковки)? В таком случае можно будет запускать Linux приложения из Windows. Windows будет «симулировать» Linux. Именно это и было сделано в Windows subsystem for Linux в Windows 10, что позволяет запускать немодифицированные бинарные Linux приложения в Windows.

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

Ниже уровня микроархитектурной симуляции идет уровень эмуляции логических элементов, из которых и состоят современные чипы. Такие эмуляторы бывают и программными, и аппаратными с использованием ПЛИС. Логика ПЛИС описывается с помощью RTL (Register Transfer Level) на языках Verilog, VHDL и др. После компиляции получается образ (bitstream), который потом прошивается в ПЛИС. Причем для этого необязательно пользоваться паяльником и разбираться в электротехнике. Плата подсоединяется к компьютеру, например, по USB или JTAG интерфейсу, а специальный софт от производителя ПЛИС платы выполняет запись. Стоимость таких плат начинается от десяти долларов за простейшие варианты до миллионов долларов для больших ПЛИС стендов размером со шкаф, используемых в крупных компаниях-производителях чипов. В таких компаниях симуляция с использованием ПЛИС является финальной стадией перед отдачей RTL в производство.

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

На рисунке ниже показаны описанные уровни симуляции.

Что такое эмуляторы и для чего они нужны. Смотреть фото Что такое эмуляторы и для чего они нужны. Смотреть картинку Что такое эмуляторы и для чего они нужны. Картинка про Что такое эмуляторы и для чего они нужны. Фото Что такое эмуляторы и для чего они нужны

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

Так что же на счет сравнения симуляторов и реальности?

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

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *