О курсе

Содержание

  1. О курсе
    1. О курсе
    2. Программа
      1. Осенний семестр
      2. Весенний семестр
    3. Материалы
    4. Полезные ресурсы
    5. Задания

О курсе

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

  • загрузка исполняемых файлов (ELF),
  • динамическая двоичная трансляция и JIT-компиляция,
  • организация виртуальной памяти и MMU,
  • трассировочная, событийная и параллельная симуляция (TDS, DES, PDES),
  • проектирование предметно-ориентированных языков описания архитектуры (ADL/DSL) и автоматическая генерация симуляторов,
  • микроархитектура процессора (кэш-память, конвейер, внеочередное исполнение),
  • цифровая логика и языки описания аппаратуры (HDL),
  • арифметика с плавающей точкой и векторные расширения (SIMD).

Изучаются промышленные инструменты полносистемной симуляции (gem5, QEMU, Simics) и языки описания устройств (SystemC, DML). Особое внимание уделяется методологии автоматизированного тестирования и функциональной верификации процессорных моделей (фаззинг, косимуляция, символическое исполнение).

Студенты реализуют функциональную модель RISC-V, участвуют в развитии Protea — открытого языка описания архитектур и устройств — и приобретают навыки командной разработки ПО (VCS, CI, статический анализ).

Программа

Осенний семестр

  1. Программное моделирование
  2. Простые интерпретаторы
  3. Введение в Ruby, метапрограммирование
  4. Виртуальная память и ELF
  5. Двоичная трансляция
  6. Языки описания архитектуры (ADL)
  7. MMU
  8. Симуляция на основе трасс (TDS)
  9. Полносистемная симуляция (FSS)
  10. Параллельная симуляция (PDES)

Весенний семестр

  1. Классификация симуляторов и знакомство с Protea
  2. Тестирование и верификация
  3. Кэш-память
  4. Цифровая логика
  5. Конвейер
  6. Потактовые модели
  7. Языки описания систем и устройств
  8. Плавающая точка и SIMD

Материалы

Все материалы курса будут дополняться в репозитории на GitHub:

Полезные ресурсы

Задания

Перечень домашних заданий с техническими заданиями — на странице Домашние задания.