Аннотация

Архитектура процессоров RISC-V — пожалуй, наиболее стройная и понятная из всех актуальных архитектур вычислительных систем.

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

Требования к уровню знаний слушателей: дискретная математика в объёме вводных семестров бакалавриата профильных специальностей.

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

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

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

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

Практическая часть состоит в самостоятельном решении небольших задач — программ на языке ассемблера — с последующей их проверкой. Решение задач домашнего задания проводится на языке ассемблера RISC-V, в настоящей момент для проверки используется система EJudge, но при независимой постановке курса могут быть использованы и другие средства контроля знаний.

В учебном процессе используются эмулятор, среда разработки и визуализатор выполнения кода RISC-V RARS. Выбор RARS обусловлен тремя составляющими: компактностью, свободным лицензированием и наличием как визуального режима, так и режима командной строки. Принцип «одного окна» RARS IDE позволяет вести разработку и отладку учебных примеров без переключения визуальных контекстов (что важно при трансляции экрана). RARS написан на языке Java и распространяется под свободной лицензией MIT — его можно неограниченно использовать на домашних и вузовских компьютерах под управлением любой ОС. Помимо визуального IDE, RARS поддерживает режим запуска программ на языке ассемблера из командной строки, что позволяет встраивать его в системы автоматической проверки с полным сохранением синтаксиса исходных программ.

Курс читается автором как спецкурс кафедры АСВК факультета ВМиК МГУ им. М. В. Ломоносова, по ссылке можно посмотреть актуальную информацию о текущем статусе проведения курса и найти обновлённые материалы. В настоящий момент инструментальная составляющая курса включает два эмулятора RISC-V (основной, RARS, и Ripes, для наглядной иллюстрации работы конвейера), а также систему проведения олимпиад EJudge для проверки решений с помощью RARS.

Особенности преподавания научно-практических дисциплин в области ИТ

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

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

Это подразумевает постоянное присутствие в информационном пространстве лекции т. н. «второго текста». Если «первый текст» — это развёрнутый план (план-конспект) изучаемого материала, размечающий опорные точки изложения, то «второй текст» — это окно (желательно одно) инструмента разработки с исходным текстом программы и (если это требуется) метаинформацией о ходе исполнения этой программы.

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

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

Доступность материалов онлайн подразумевает возможность обсуждения и уточнения трудных для восприятия мест также онлайн. Для этого мы используем группу в мессенждере Telegram (в тексте лекций есть её упоминание).

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

Консультации по решению домашних заданий ведутся в той же группе Telegram.

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

Более подробно об особенностях преподавания см. доклад на XIX конференции «Свободные программы в высшей школе» и слайды к нему, а также статью «Академическая образовательная площадка в условиях информационной связности» в сборнике «Программные системы и инструменты» №241.

Контроль успеваемости и итоговая аттестация на основании автоматической проверки решений домашних заданий

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

В курсе два типа автоматически проверяемых задач — на ввод-вывод и на построение растрового изображения.

Задачи на ввод-вывод рассчитаны на внешние вызовы (environment calls) RARS (т. н. «SPIM system calls», их поддерживают многие эмуляторы MIPS и RISC-V) — ввод и вывод чисел (целых и вещественных), символов и строк. Тесты содержат несколько наборов входных данных для каждой задачи и эталонный вывод решения для каждого набора. Тест считается пройденным, если решение на заданных входных данных производит вывод, который не отличается от эталонного

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

Задачи на построение растрового изображения рассчитаны на использование RARS Bitmap Display — внешнего устройства, представляющего собой видеопамять, отображённую на адресное пространство процесса. Тесты для них также содержат несколько наборов входных данных, а эталонный вывод — это шестнадцатеричный дамп видеопамяти. Все задачи этого типа выполняются с такими настройками Bitmap Display: размер точки — 2×2 пикселя; размер экрана в пикселях — 512×256; базовый адрес MMIO — 0x10010000.

Для сверки с эталонным выводом следует запускать RARS с такими параметрами:

$ rars ae1 se2 sm me nc dump 0x10010000-0x10210000 HexText дамп.hex программа.asm < входные_данные.text`

Тест считается пройденным, если дамп.hex почти совпадает с эталонным выводом. Поскольку построение растрового изображения нередко связано с вещественными вычислениями, мы использовали следующий критерий сверки: с ответом должны совпадать по цвету по крайней мере те точки эталона, все 8 соседей которых имеют тот же цвет (то есть границы областей могут «плавать» в диапазоне ±1 точка).

Правила формирования тестов

Промежуточные оценки по задачам и финальный балл

  1. Задача считается решённой, если все тесты пройдены.

    • Если задача решена, за каждую неудачную попытку решения накладывается небольшой штраф (в нашем варианте -1%)
    • Если задача не решена, за каждый пройденный тест добавляется небольшой бонус (в нашем варианте +1%). В случае очень больших тестовых наборов такой бонус имеет значение (а требование решать на 100% может оказаться почти не выполнимым)

  2. Срок сдачи домашнего задания ограничен днём, в который читается следующая лекция. В варианте чтения лекций раз в неделю это 6 дней.

    • Следующая неделя остаётся «на доделку». Решённые в этот период задачи получают 50% штрафа.
    • Ещё спустя неделю штраф повышается до 75% и далее остаётся неизменным.
  3. Финальная оценка-автомат выводится из среднего арифметического по набранным баллам.
    • Градация оценок меняется в зависимости от сложности и статистики по решениям, обычно с диапазонами по 15-20% от 100% для классической четырёхбалльной схемы ОТЛ/ХОР/УДОВЛ/НЕУД
    • Некоторые задачи (сложные и/или содержащие критически важные материалы) могут быть помечены как обязательные для получения ОТЛ
  4. Оценку-автомат можно повысить на один балл, оставить без изменений или понизить на один балл на экзамене, в зависимости от успехов на нём.

    • От сдачи экзамена можно отказаться — в этом случае выставляется оценка-автомат
    • Нельзя повысить оценку НЕУД — только пересдача
    • В нашем случае экзамен состоял в ограниченном по времени решении индивидуальной задачи на построение растрового изображения (с контролем списывания)

Система штрафов и бонусов рассчитана так:

Приложение

Файл настроек EJudge:

Документация EJudge

  1. Программные системы и инструменты : Тематический сборник / Под ред. Р.Л. Смелянского. – М. : Издательский отдел факультета ВМК МГУ имени М. В. Ломоносова МАКС Пресс, 2024. – № 24. – 184 с., с 55-66 (1)

LecturesCMC/ArchitectureAssembler2024/Annotation (последним исправлял пользователь FrBrGeorge 2024-12-04 23:08:29)