Свободный эмулятор MARS в курсе «Архитектура ЭВМ и язык ассемблера» (Михаил Рудаченко, OSEDUCONF-2017)

Материал из 0x1.tv

Версия от 23:15, 17 октября 2025; StasFomin (обсуждение | вклад)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)

Аннотация

Докладчик
Михаил Рудаченко.jpg
Михаил Рудаченко

Одной из заметных тенденций последних лет в построении курсов «Архитектура ЭВМ и язык ассемблера» (АЭиЯА) стала практика использования эмуляторов для демонстраций и решения учебных задач.

В данной работе представлен подход к формированию основных требований к эмулятору. Дан краткий обзор существующих решений. Рассмотрен свободный эмулятор MARS (MIPS Assembler and Runtime Simulator). Обсуждаются вопросы возникшие в практике применения свободного эмулятора MARS в курсе «АЭиЯА».

Видео

on youtube

Слайды

Свободный эмулятор MARS в курсе «Архитектура ЭВМ и язык ассемблера» (Михаил Рудаченко, OSEDUCONF-2017) .pdf Свободный эмулятор MARS в курсе «Архитектура ЭВМ и язык ассемблера» (Михаил Рудаченко, OSEDUCONF-2017) .pdf Свободный эмулятор MARS в курсе «Архитектура ЭВМ и язык ассемблера» (Михаил Рудаченко, OSEDUCONF-2017) .pdf Свободный эмулятор MARS в курсе «Архитектура ЭВМ и язык ассемблера» (Михаил Рудаченко, OSEDUCONF-2017) .pdf Свободный эмулятор MARS в курсе «Архитектура ЭВМ и язык ассемблера» (Михаил Рудаченко, OSEDUCONF-2017) .pdf Свободный эмулятор MARS в курсе «Архитектура ЭВМ и язык ассемблера» (Михаил Рудаченко, OSEDUCONF-2017) .pdf Свободный эмулятор MARS в курсе «Архитектура ЭВМ и язык ассемблера» (Михаил Рудаченко, OSEDUCONF-2017) .pdf Свободный эмулятор MARS в курсе «Архитектура ЭВМ и язык ассемблера» (Михаил Рудаченко, OSEDUCONF-2017) .pdf Свободный эмулятор MARS в курсе «Архитектура ЭВМ и язык ассемблера» (Михаил Рудаченко, OSEDUCONF-2017) .pdf Свободный эмулятор MARS в курсе «Архитектура ЭВМ и язык ассемблера» (Михаил Рудаченко, OSEDUCONF-2017) .pdf Свободный эмулятор MARS в курсе «Архитектура ЭВМ и язык ассемблера» (Михаил Рудаченко, OSEDUCONF-2017) .pdf Свободный эмулятор MARS в курсе «Архитектура ЭВМ и язык ассемблера» (Михаил Рудаченко, OSEDUCONF-2017) .pdf Свободный эмулятор MARS в курсе «Архитектура ЭВМ и язык ассемблера» (Михаил Рудаченко, OSEDUCONF-2017) .pdf Свободный эмулятор MARS в курсе «Архитектура ЭВМ и язык ассемблера» (Михаил Рудаченко, OSEDUCONF-2017) .pdf

Тезисы

При подготовке курса «Архитектура ЭВМ и язык ассемблера» (АЭиЯА) встал вопрос выбора эмулятора, поддерживающего архитектуру системы команд (ISA) MIPS[1]. Программных продуктов, реализующих ISA MIPS, существует большое количество. Эти системы довольно разнообразны по объёму и точности реализации ISA, объёму модулируемого оборудования и качеству работы. При выборе эмулятора необходимо учитывать и особенности учебного процесса. Для наших целей было важно учесть следующие из них:

  • Работоспособность на разных платформах
  • Покрытие материала курса
  • Удобство для студента
  • Автоматическая проверка заданий
  • Низкий порог вхождения
  • Приемлемость для преподавательского коллектива
  • Лицензия

Доступные к настоящему моменту времени MIPS-эмуляторы можно разделить на несколько групп:

  1. Образовательные SPIM[2], EduMIPS64[3], MARS[4].
  2. Промышленные среды производителей микропроцессоров и QEMU.
  3. Прочее.

В первой группе следует выделить SPIM и MARS как программы, специально ориентированные на курс Паттерсона и Хеннеси[5] [6]. EduMIPS64 примечателен удачной визуализацией работы конвейера, но реализует ISA MIPS64, что для наших целей избыточно. SPIM и MARS соответствуют всем выше перечисленным требованиям. Однако MARS оказался более удобен для преподавательского коллектива.

Промышленные среды, такие как MPLAB X, MCStudio и т. п., обладают рядом уникальных возможностей, но сложны в использовании, непрозрачны и часто непереносимы.

К третьей группе можно отнести множество представленных в сети Интернет проектов разной степени зрелости. Объединяет их одно свойство — все они непригодны для использования в курсе АЭиЯА.

MARS написан на языке программирования Java. Интерфейс программы типичен для Java Swing и реализует следующие функции:

  • Интегрированный редактор и ассемблер.
  • Контроль скорости выполнения, включая пошаговое выполнение и возможность возврата.
  • Обозреватель регистров общего назначения, регистров математического сопроцессора, специальных регистров и памяти.
  • Выбор формата отображения значений данных или адресов в десятичной или шестнадцатеричной системе, а для ячеек памяти — также в ASCII.

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

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

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

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

MARS спроектирован с учётом возможности самостоятельной модификации. Возможна реализация собственных команд ЯА и системных вызовов.

Достаточно просто могут быть реализованы собственные инструменты, так как инструмент представляет собой исполняемый в отдельном потоке класс, наследуемый от класса AbstractMarsToolAndApplication.

AbstractMarsToolAndApplication — абстрактный класс, который предоставляет общие компоненты для реализации инструмента.

Примечания и отзывы

  1. MIPS32 Instruction Set Quick Reference — imagination-technologies-cloudfront-assets.s3.amazonaws.com/.../MIPS32-QRC
  2. SPIM: A MIPS32 Simulator — spimsimulator.sourceforge.net
  3. EduMIPS64 Free cross-platform educational MIPS64 CPU Simulator — edumips.org
  4. MARS (MIPS Assembler and Runtime Simulator): An IDE for MIPS Assembly Language Programming — courses.missouristate.edu/KenVollmar/Mars
  5. Паттерсон Д., Хеннеси Д. Архитектура компьютеров и проектирование компьютерных систем. 4-е изд. — СПб.: Питер, 2012. — 784 с. ISBN 978-5-459-00291-1
  6. MARS: An Education-Oriented MIPS Assembly Language Simulator — cs.missouristate.edu/~vollmar/MARS/fp288-vollmar.pdf
  • Wolffe, G., Yurcik, W., Osborne, H., Holliday, M. Teaching Computer Organization/Architecture With Limited Resources Using Simulators. ACM SIGCSE Bulletin 34
Свободный эмулятор MARS в курсе «Архитектура ЭВМ и язык ассемблера» (Михаил Рудаченко, OSEDUCONF-2017)!.jpg



Plays:269   Comments:0