О курсе
Содержание
О курсе
Годовой образовательный курс посвящён изучению симуляции центрального процессора и полной вычислительной системы. Дисциплина охватывает полный цикл разработки программных моделей — от построения интерпретатора системы команд RISC-V до полносистемной симуляции с аппаратной периферией. В рамках курса рассматриваются:
- загрузка исполняемых файлов (ELF),
- динамическая двоичная трансляция и JIT-компиляция,
- организация виртуальной памяти и MMU,
- трассировочная, событийная и параллельная симуляция (TDS, DES, PDES),
- проектирование предметно-ориентированных языков описания архитектуры (ADL/DSL) и автоматическая генерация симуляторов,
- микроархитектура процессора (кэш-память, конвейер, внеочередное исполнение),
- цифровая логика и языки описания аппаратуры (HDL),
- арифметика с плавающей точкой и векторные расширения (SIMD).
Изучаются промышленные инструменты полносистемной симуляции (gem5, QEMU, Simics) и языки описания устройств (SystemC, DML). Особое внимание уделяется методологии автоматизированного тестирования и функциональной верификации процессорных моделей (фаззинг, косимуляция, символическое исполнение).
Студенты реализуют функциональную модель RISC-V, участвуют в развитии Protea — открытого языка описания архитектур и устройств — и приобретают навыки командной разработки ПО (VCS, CI, статический анализ).
Программа
Осенний семестр
- Программное моделирование
- Простые интерпретаторы
- Введение в Ruby, метапрограммирование
- Виртуальная память и ELF
- Двоичная трансляция
- Языки описания архитектуры (ADL)
- MMU
- Симуляция на основе трасс (TDS)
- Полносистемная симуляция (FSS)
- Параллельная симуляция (PDES)
Весенний семестр
- Классификация симуляторов и знакомство с Protea
- Тестирование и верификация
- Кэш-память
- Цифровая логика
- Конвейер
- Потактовые модели
- Языки описания систем и устройств
- Плавающая точка и SIMD
Материалы
Все материалы курса будут дополняться в репозитории на GitHub:
Полезные ресурсы
Задания
Перечень домашних заданий с техническими заданиями — на странице Домашние задания.