Математические модели и методы проектирования архитектуры сверхбольших интегральных схем

Материал из Кафедра математической кибернетики
Перейти к: навигация, поиск


Обязательный курс для студентов группы 518/2.

Руководитель: Подымов В.В.

Актуальность информации: весенний семестр 2023/2024 учебного года.

Для доступа к материалам курса (слайдам лекций, тексту практических заданий, критериям оценки, ...) обратитесь к Подымову В.В..

Рабочая программа для устного опроса

Программа будет обновляться по мере чтения курса

  1. Однотактовый процессор и архитектура.
    • Что такое процессор и что такое его архитектура.
    • Архитектура системы команд (instruction set architecture) и микроархитектура (microarchitecture).
    • Примеры архитектур систем команд, устройство команд MIPS.
    • Основные элементы процессора: счётчик команд (program counter, PC), память команд (instruction memory, IM), блок регистров (регистровый файл, register file, RF), арифметико-логическое устройство (АЛУ, arithmetic logic unit, ALU), память данных (data memory, DM).
    • Операционный и управляющий автоматы однотактового процессора.
  2. Конвейер (conveyor).
    • "Классические" стадии выполнения команд (ступени конвейера): выборка (считывание) команды (instruction fetch, IF); декодирование команды (instruction decode, ID); считывание операндов (operand read, OR); выполнение (execution, EX); доступ к памяти (memory access, MEM); запись в регистр (writeback, WB).
    • Латентность (latency) и производительность (throughput).
    • Конфликты (hazards): структурные, по данным, по управлению.
    • Способы разрешения конфликтов.
    • Виды конфликтов по данным: чтение после записи (read-after-write, RAW), запись после чтения (WAR), запись после записи (WAW).
    • Прямая подача результата (пересылка значений, продвижение данных, bypass).
    • Спекулятивное исполнение команд (исполнение по предположению, speculation).
    • Конвейер в операционном автомате процессора.
  3. Общая организация памяти.
    • Современное устройство ячеек памяти.
    • Современная организация доступа к ячейкам памяти.
    • Область применения различных видов памяти.
    • Характеристики производительности памяти: латентность, частота доступа, пропускная способность, время доступа, время передачи, время цикла.
  4. Кэш-память (cache).
    • Пространственная и временная локальность доступа к памяти (temporal locality, spatial locality).
    • Основные понятия: строка (block, line), тэг (tag), попадание (hit), промах (miss), конфликты (conflicts), вытеснение (замещение, eviction).
    • Производительность кэша: частоты и задержки, связанные с попаданиями и промахами кэша.
    • Виды кэша: прямого отображения (direct-mapped), полностью ассоциативный (associative, fully-associative), полуассоциативный (множественно-ассоциативный, set-associative).
    • Классификация промахов кэша (three Cs).
    • Политика вытеснения (eviction policy).
    • Политика записи (write policy). Сквозная запись (writethrough) и отложенная запись (обратная запись, writeback).
    • Иерархия кэш-памяти, эксклюзивный (exclusive) и инклюзивный (inclusive) кэш.
    • Оптимизация доступа к кэш-памяти: конвейеризация, кэш вытеснения (victim cache), буфер записи (write buffer), предвыборка (prefetching), многопортовый (multiport) кэш, банки (banks) кэш-памяти, неблокирующий (nonblocking) кэш.
    • Кэш-память в операционном автомате процессора с конвейером.
  5. Виртуальная память (virtual memory).
    • Физическая (абсолютная) и логическая (виртуальная) адресация.
    • Сегменты и страницы.
    • Таблицы страниц (таблицы страничного преобразования, page tables), каскады таблиц.
    • Буфер ассоциативной трансляции (translation lookaside buffer, TLB).
    • Виртуальная и физическая кэш-память, проблема синонимичности (aliasing).
    • Таблицы страниц и буфер ассоциативной трансляции в операционном автомате процессора.
  6. Прерывания (interrupts).
    • Общее понятие прерывания, точное (precise) прерывание.
    • Тонкости терминологии: прерывания, исключения (exceptions), ловушки (traps) и т.п.
    • Классификация точных прерываний: синхронные и асинхронные (synchronous, asynchronous), вызываемые и вынужденные (user-requested, coerced), маскируемые и немаскируемые (maskable, nonmaskable) и т.п.
    • Обработчик прерываний (interrupt handler).
    • Регистр прерываний (cause register).
    • Точка коммита (точка фиксации, commit point).
    • Влияние прерываний на устройство других архитектурных элементов.
    • Реализация прерываний в операционном автомате процессора.
  7. Ввод-вывод.
    • Виды шин ввода-вывода.
    • Ввод-вывод в системе команд и через память (memory-mapped).
    • Управляющий регистр (control register) и регистр данных (data register) ввода-вывода.
    • Механизмы ожидания готовности ввода-вывода: поллинг (polling), обмен по прерыванию.
  8. Внеочередное исполнение команд (out-of-order execution).
    • Параллелизм на уровне команд (instruction-level parallelism, ILP) и сравнение производительности процессора с очередным (in-order) и внеочередным исполнениями команд.
    • Конфликты конвейера при введении внеочередного исполнения.
    • Табличный алгоритм (scoreboarding): стадии конвейера, буфер команд (instruction buffer), конфликты и их разрешение, производительность.
    • Алгоритм Томасуло (Tomasulo algorithm): стадии конвейера, буфер команд, станции резервирования, конфликты и их разрешение, производительность.
    • Внеочередная выбора с учётом прерываний: уточнение стадий конвейера, буфер переупорядочивания (reorder buffer, ROB), очередь чтения-записи (load-store queue, LSQ).