Архитектура ЭВМ и язык Ассемблера

Проект курса 2 семестра обучения на ВМК МГУ.

Предполагается 72 аудиторных часа: 48 часов лекций и 24 часа практикума. Также возможно 24 дополнительных часа СРС в виде домашних заданий.

Каждая тема рассчитана на двухчасовую лекцию. Часть тем воспроизводят курс Архитектура и язык ассемблера RISC-V, возможно, в несколько большем объёме.

Терминология курса и учебные машины

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

  1. Введение. От вычислителя к ЭВМ

  2. Модельные ЭВМ

  3. УМ-3: условия и циклы

  4. Самомодификация кода, УМ-2 и УМ-1

  5. УМ-П и стековые машины

  6. УМ-М: регистры и косвенная адресация

Литература по разделу доступна на сайте кафедры АЯ и mc@msu (в частности, Модельные ЭВМ. Учебное пособие для студентов 1 курса, Архитектура ЭВМ. Учебные машины. Методическое пособие)

Архитектура и язык ассемблера RISC-V

В этом разделе изучаются основные принципы организации современных ЭВМ на примере архитектуры RISC-V. Темы этого раздела полностью включают в себя спекцурс Архитектура и язык ассемблера RISC-V. Часть тем освещается более полно, чем в спецкурсе. Главная особенность этого (и предыдущего) разделов — поддержка соответствующих тем практикумом. По состоянию на 2024-06-23 курс базируется на эмуляторах RARS (основной) и Ripes (демонстрация конвейера).

  1. Принципы развития архитектур ЭВМ; происхождение RISC-V

  2. Архитектура, система команд и ассемблер RISC-V

  3. Регистры и адресация со смещением

  4. Косвенная адресация и массивы

  5. Концевые подпрограммы

  6. Стек и универсальные подпрограммы

  7. Математический сопроцессор

  8. Практика программирования на языке ассемблера в RARS

  9. Кадр стека и внешние вызовы

  10. Статические труктуры данных TODO это две лекции

  11. Регистры статуса и управления; исключительные ситуации

  12. Ввод/вывод: поллинг и MMIO

  13. Прерывания по таймеру

  14. Конвейер

  15. Кеш и предсказание перехода

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

Обзор современных вычислительных архитектур

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

  1. Механизмы защиты памяти. Виртуальная память.
  2. Вторая половина 15_DataStructures

  3. Hardware threads, многоядерные и многопроцессорные системы
  4. Уровни выполнения, аппаратная вирутализация (+ обзор архитектур?)

TODO PIC и GOT/PLT отсюда

TODO Взаимодействие процессор-память + DMA отсюда

TODO См. первые две ссылки ниже

Ссылки

LecturesCMC/ArchitectureAssemblerProject (последним исправлял пользователь FrBrGeorge 2024-08-14 21:07:58)