Архитектура ЭВМ и язык Ассемблера
Проект курса 2 семестра обучения на ВМК МГУ.
Предполагается 96 аудиторных часов: 48 часов лекций и 48 часов практикума. 24 из 48 аудиторных часов практических занятий могут быть перенесены в СРС в виде домашних заданий (в план не входят).
Каждая тема рассчитана на двухчасовую лекцию. Часть тем воспроизводят курс Архитектура и язык ассемблера RISC-V, возможно, в несколько большем объёме.
Планы семинарских занятий
В плане приведены темы для разбора, практической и самостоятельной работы на занятиях, но не список конкретных задач и упражнений. Более подробное содержание появится после фактического чтения курса и отработки практикума по нему. Фактический объём и соотношение теории (в том числе повторения лекционного материала), лабораторной и самостоятельной работы на занятиях практикума может сильно меняться в зависимости от уровня подготовки слушателей.
Тематические планы практикумов
Отчётность по курсу
Отчётность по лекционным материалам:
Коллоквиум по теме «Модельные ЭВМ»
Вопросы коллоквиума (по первой из трёх тем) входят в общий список экзаменационных вопросов. Их можно исключить из билетов экзамена (в этом случае вес коллоквиума в общей оценке повышается), а можно оставить для контроля остаточных знаний.
Отчётность по практикуму
- Журнал активности студентов на практикуме
В зависимости от уровня и объёма работы студентов на практикумах, вес первой и второй оценки в общем зачёте остаётся на усмотрение преподавателя.
Лекционный план
Курс состоит из двух тем — вводной, «Учебные Машины», и основной — «Архитектура RISC-V». Основная тема условно разбита на две: собственно система команд RISC-V и архитектура вычислительной системы на базе RISC-V. Часть общих вопросов (двоичная арифметика, терминология, представление данных и т. п.) рассматриваются в рамках основной темы, но прямого отношения к RISC-V не имеют.
Терминология курса и учебные машины
В этом разделе изучается архитектура т. н. «Учебной машины» — максимально упрощённого центрального процессора, аналогичного ЭВМ первого поколения без периферии. Рассматриваются несколько вариантов организации и необходимые дополнения (регистры, режимы адресации и т. п.). Параллельно изучаются базовые приёмы низкоуровневого программирования. Раздел базируется на Эмуляторе модельных машин.
Введение. От вычислителя к ЭВМ (получасовое введение)
Учебная машина с переменным размером команды и стековые машины
Литература по разделу доступна на сайте кафедры АЯ и cmc@msu (в частности, Модельные ЭВМ. Учебное пособие для студентов 1 курса, Архитектура ЭВМ. Учебные машины. Методическое пособие)
Кроме того, эмулятор сопровождается довольно подробной документацией:
Система команд и язык ассемблера RISC-V
В этом разделе изучаются основные принципы организации современных ЭВМ на примере архитектуры RISC-V. Темы этого раздела полностью включают в себя спекцурс Архитектура и язык ассемблера RISC-V. Часть тем освещается более полно, чем в спецкурсе. Главная особенность этого (и предыдущего) разделов — поддержка соответствующих тем практикумом. По состоянию на 2024-06-23 курс базируется на эмуляторах RARS1 (основной) и Ripes (демонстрация конвейера).
Надстройки классической архитектуры ЭВМ
В этом разделе изучается (на примере RISC-V) аппаратные дополнения «классической» архитектуры, которые повышают эффективность использования ЭВМ на современных задачах. Сюда входят примитивы асинхронного взаимодействия (исключения и прерывания) и практика работы с ними, базовые средства повышения быстродействия (конвейер и предсказание перехода), а также обзор про инструментов изоляции (виртуальная память и виртуализация) и экстенсивного расширения платформы (векторные операции, многоядерность и многопроцессорность)
В качестве литературы по этим двум разделам рекомендуются классические труды по архитектуре ЭВМ в адаптации к RISC-V, документация самого RISC-V (эти документы были написаны в расчёте на то, что их действительно будут читать!), а также руководства по программированию под RISC-V.
Материалы по курсу
- Эмуляторы:
Эмулятор RARS, на базе которого построен этот курс
Более продвинутый, но пока что недописанный эмулятор QtRvSim, развиваемый Чешским Технологическим Униврситетом
- (…когда-нибудь стоит перейти на этот эмулятор)
Ещё один более продвинутый, но пока что недописанный эмулятор Ripes
- (…или на него)
- Книги по архитектуре RISC-V
Digital Design and Computer Architecture, RISC-V Edition aka «H&H»
Русский перевод: Цифровая схемотехника и архитектура компьютера: RISC-V
Computer Organization and Design RISC-V Edition: The Hardware Software Interface aka «Patterson and Hennessy»
Спецификация системы команд RISC-V — в действительности вполне понятный и интересный, хотя и очень плотно написанный документ
(спасено тут: riscv-privileged.html2 и riscv-unprivileged.html2)
Упрощённый HTML-вариант2 (спасибо, @anotheraeon!)
The RISC-V Reader: An Open Architecture Atlas — компиляция из этих спецификаций в виде книги
Курс RISC-V на примере микроконтроллера GD32VF103 от нашего постоянного участника @COKPOWEHEU
Интересный проект: RISC-V Assembly Programming — учебник и онлайн-эмулятор