Программный комплекс Wind River® Simics® позволяет создать удобную платформу для совместной разработки, полностью моделируя разнообразные компьютерные архитектуры. Simics способен запускать немодифицированный программный код, аналогичный тому, что запускается на платформе: boot loader, BIOS, firmware, операционная система, board support package (BSP), middleware и приложения. С его помощью можно смоделировать компьютерную систему любого размера и сложности – от отдельного процессора до полной платформы, набора платформ, а также распределённых систем, таких как авиационные системы, сети данных, индустриальные системы управления, сети мобильной связи.
Ядро симулятора Simics – это симулятор набора команд для процессора. Simics также моделирует компьютерную память, периферийные устройства, интерконнекторы, диски, сети, создавая полноценную модель системы, которая не отличается от реальной системы с точки зрения запущенных программ. Симулятор обладает достаточным быстродействием, чтобы запускать реальные программное обеспечение и масштабируется для моделирования больших систем, используя многоядерные системы и кластеры.
Дизайн
При использовании традиционных подходов, основанных на компьютерном «железе», системные архитекторы тратят несколько недель или даже месяцев для определения оптимальной конфигурации системы.
Когда же для исследований используется Simics, это позволяет выполнить исследования буквально в течение нескольких дней. Разработчикам, использующим виртуальные платформы, нет необходимости изменять дизайн компьютерного «железа», покупать запасные детали, соединять их в единое целое и т.д. Вместо этого, они могут быстро изменить число процессоров на материнской плате, число плат или даже их тип просто с помощью правки конфигурационных файлов или скриптов Simics.
Разработка
При традиционной технологии разработки программисты могут приступать к написанию кода только тогда, когда будут доступны первые прототипы платформ. До этого момента взаимодействие между командами, разрабатывающими программы и компьютерное «железо» ограничено. С Simics взаимодействие становится более эффективным: команды, разрабатывающие компьютерное «железо» могут предоставить для девелоперов виртуальные платформы намного раньше того момента, когда прототипы станут доступны. Таким образом, разработка низкоуровневых программ и аппаратной части будет осуществляться параллельно.
Поскольку модели Simics являются программными, они могут быть использованы в любых количествах, таким образом, устраняя проблемы с доступностью компьютерного оборудования для разработки низкоуровнего программного обеспечения. Кроме того, при портировании операционной системы на новую архитектуру или создании BSP нет необходимости беспокоиться о наличии необходимого «железа».
Simics позволяет отлаживать код на уровне операционной системы: продвигаться на один шаг вперёд или назад при отладке, делать break во время обращения к платформе и для исключений, инспектировать состояние памяти (MMU) и точное состояние любого процессора платформы, а также исследовать содержимое виртуальной и физической памяти. Симулятор позволяет осуществлять отладку без доступа к реальному оборудования, что ускоряет низкоуровневую отладку. Отладка возможна ещё до того, как ICE, JTAG или последовательные соединения доступны.
Как только под систему было создано базовое программное обеспечение, начинается процесс интеграции стека операционной системы с платформой и добавляется middleware. Таким образом, комплексная программно-аппаратная платформа становится готовой для разработки приложений. На этой стадии Simics может обеспечить стабильную платформу, доступную любому числу разработчиков в любой точке мира. Также Simics позволяет программными методами убрать компоненты платформы, которые не готовы к моменту первого запуска, а также программные компоненты, которые не были портированы на платформу.
Использованы материалы windriver.com.