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

Материал из Кафедра математической кибернетики
Перейти к: навигация, поиск
м
(не показаны 12 промежуточные версии 1 участника)
Строка 1: Строка 1:
Курс по магистерской программе Дискретные управляющие системы и их приложения (группа 518/2).
+
[[Категория:Лекционные курсы кафедры МК]]
 +
[[Категория:Магистерская программа Дискретные управляющие системы и их приложения]]
  
= Общая информация =
+
Обязательный курс для студентов группы 518/2.
  
== Руководители курса ==
+
Руководитель: [[Подымов Владислав Васильевич| Подымов В.В.]]
[[Шуплецов Михаил Сергеевич| Шуплецов М.С.]], [[Подымов Владислав Васильевич| Подымов В.В.]]
+
  
== Критерии оценки ==
+
Актуальность информации: '''весенний семестр 2019/2020 учебного года'''.
  
Курс содержит пять обязательных тем:
+
Для доступа к материалам курса (слайдам лекций, тексту практических заданий, критериям оценки, ...) обратитесь к [[Подымов Владислав Васильевич| Подымову В.В.]].
# конвейер,
+
# внеочередная выборка команд,
+
# кэш-память,
+
# виртуальная память,
+
# стек и прерывания.
+
  
Для получения оценки '''"Отлично"''' требуется покрыть каждую тему практикой или ответом на экзамене (''теорией'').
+
= Рабочая программа для устного опроса =
При этом хотя бы '''две''' темы должны быть покрыты практикой.
+
Каждая непокрытая тема снижает итоговую оценку на один балл.
+
 
+
= Практика =
+
 
+
''В этом разделе будут появляться требования к покрытию тем курса практикой.''
+
 
+
Покрытие темы практикой - это написание кода на языке Verilog, реализующего понятия темы.
+
Реализацию можно
+
* выслать на почты ''обоих'' руководителей курса,
+
* выложить в свой git-репозиторий, ''отдельно убедившись, что оба руководителя приглашены в репозиторий'', или
+
* выложить в неглавную ветку git-репозитория "mips_simplified_processor".
+
 
+
== Конвейер ==
+
 
+
Конвейер может быть реализован над однотактовым процессором для набора инструкций, содержащего:
+
* хотя бы одну арифметико-логическую R-инструкцию,
+
* хотя бы одну арифметико-логическую I-инструкцию,
+
* хотя бы одну инструкцию условного ветвления,
+
* инструкцию безусловного ветвления,
+
* инструкцию чтения из памяти в регистр,
+
* инструкцию записи в память из регистра.
+
 
+
Реализация конвейера должна корректно разрешать все конфликты (hazards) и содержать:
+
# пять классических стадий выполнения инструкции;
+
# пересылку значений (bypass) хотя бы для одного типа конфликтов чтения после записи (read-after-write hazard);
+
# спекулятивное исполнение для обхода конфликтов по управлению, возникающих при исполнении инструкций условного ветвления.
+
 
+
= Теория =
+
 
+
В отличие от практики, выполняющейся в течение всего семестра, экзамен проходит по завершении курса, и потому предполагает знание у сдающего всех ключевых тем курса.
+
При ответе ключевой темы на экзамене требуется также и знание приложений понятий этой темы к другим ключевым темам.
+
 
+
== Рабочая программа ==
+
 
+
''Здесь будет появляться список ключевых понятий и тем для ответа на экзамене.''
+
  
 
# Конвейер:
 
# Конвейер:
#* пять классических стадий исполнения инструкции (выборка, декодирование, исполнение, доступ к памяти, запись в регистр),
+
#* пять классических стадий выполнения команд (выборка, декодирование, исполнение, доступ к памяти, запись в регистр),
 
#* латентность и производительность,
 
#* латентность и производительность,
 
#* конфликты (структурные, по данным, по управлению),
 
#* конфликты (структурные, по данным, по управлению),
 
#* пересылка значений,
 
#* пересылка значений,
 
#* спекулятивное исполнение.
 
#* спекулятивное исполнение.
 
+
# Общая организация памяти:
[[Категория:Лекционные курсы кафедры МК]]
+
#* современное устройство ячеек памяти,
[[Категория:Магистерская программа Дискретные управляющие системы и их приложения]]
+
#* современная организация доступа к ячейкам памяти,
 +
#* область применения различных видов памяти,
 +
#* характеристики производительности памяти: латентность, частота доступа, пропускная способность, время доступа, время передачи, время цикла.
 +
# Кэш-память:
 +
#* пространственная и временная локальность доступа к памяти,
 +
#* основные понятия: строка, тэг, попадание, промах, конфликты и вытеснение,
 +
#* производительность кэша: частоты и задержки, связанные с попаданиями и промахами кэша,
 +
#* виды кэша: прямого отображения, полностью ассоциативный, полуассоциативный,
 +
#* классификация промахов кэша (''Three Cs''),
 +
#* политика вытеснения и политика записи,
 +
#* иерархия кэш-памяти, эксклюзивный и инклюзивный кэш,
 +
#* оптимизация доступа к кэш-памяти: конвейеризация, кэш вытеснения (''victim cache''), буфер записи, предвыборка, многопортовый кэш, банки кэш-памяти, неблокирующий кэш.
 +
# Виртуальная память:
 +
#* физическая (абсолютная) и виртуальная адресация,
 +
#* трансляция адресов, страницы памяти, таблицы страниц, каскады таблиц,
 +
#* механизмы защиты доступа к памяти,
 +
#* буфер ассоциативной трансляции,
 +
#* виртуальная и физическая кэш-память, проблема синонимичности (aliasing),
 +
#* хэшированные таблицы страниц.
 +
# Прерывания:
 +
#* общее понятие прерывания, точное прерывание,
 +
#* прерывания, исключения и ловушки,
 +
#* обработчик прерываний, механизмы обработки прерываний,
 +
#* классификация точных прерываний: синхронные и асинхронные, вызываемые и вынужденные, маскируемые и немаскируемые, возобновляемые и терминальные,
 +
#* влияние прерываний на устройство других архитектурных концепций.
 +
# Ввод-вывод:
 +
#* виды шин ввода-вывода,
 +
#* способы организации ввода-вывода (включение в систему команд, ввод-вывод через память),
 +
#* управляющий регистр и регистр данных ввода-вывода,
 +
#* механизмы ожидания готовности ввода-вывода: поллинг, прерывания.
 +
# Внеочередное исполнение команд:
 +
#* параллелизм на уровне команд и сравнение производительности процессора с внеочередным и очередным исполнениями команд,
 +
#* конфликты конвейера при введении внеочередного исполнения,
 +
#* табличный алгоритм: стадии конвейера, буфер команд, конфликты и их разрешение, производительность,
 +
#* алгоритм Томасуло: стадии конвейера, буфер команд, станции резервирования, конфликты и их разрешение, производительность.

Версия 16:17, 13 февраля 2020


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

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

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

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

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

  1. Конвейер:
    • пять классических стадий выполнения команд (выборка, декодирование, исполнение, доступ к памяти, запись в регистр),
    • латентность и производительность,
    • конфликты (структурные, по данным, по управлению),
    • пересылка значений,
    • спекулятивное исполнение.
  2. Общая организация памяти:
    • современное устройство ячеек памяти,
    • современная организация доступа к ячейкам памяти,
    • область применения различных видов памяти,
    • характеристики производительности памяти: латентность, частота доступа, пропускная способность, время доступа, время передачи, время цикла.
  3. Кэш-память:
    • пространственная и временная локальность доступа к памяти,
    • основные понятия: строка, тэг, попадание, промах, конфликты и вытеснение,
    • производительность кэша: частоты и задержки, связанные с попаданиями и промахами кэша,
    • виды кэша: прямого отображения, полностью ассоциативный, полуассоциативный,
    • классификация промахов кэша (Three Cs),
    • политика вытеснения и политика записи,
    • иерархия кэш-памяти, эксклюзивный и инклюзивный кэш,
    • оптимизация доступа к кэш-памяти: конвейеризация, кэш вытеснения (victim cache), буфер записи, предвыборка, многопортовый кэш, банки кэш-памяти, неблокирующий кэш.
  4. Виртуальная память:
    • физическая (абсолютная) и виртуальная адресация,
    • трансляция адресов, страницы памяти, таблицы страниц, каскады таблиц,
    • механизмы защиты доступа к памяти,
    • буфер ассоциативной трансляции,
    • виртуальная и физическая кэш-память, проблема синонимичности (aliasing),
    • хэшированные таблицы страниц.
  5. Прерывания:
    • общее понятие прерывания, точное прерывание,
    • прерывания, исключения и ловушки,
    • обработчик прерываний, механизмы обработки прерываний,
    • классификация точных прерываний: синхронные и асинхронные, вызываемые и вынужденные, маскируемые и немаскируемые, возобновляемые и терминальные,
    • влияние прерываний на устройство других архитектурных концепций.
  6. Ввод-вывод:
    • виды шин ввода-вывода,
    • способы организации ввода-вывода (включение в систему команд, ввод-вывод через память),
    • управляющий регистр и регистр данных ввода-вывода,
    • механизмы ожидания готовности ввода-вывода: поллинг, прерывания.
  7. Внеочередное исполнение команд:
    • параллелизм на уровне команд и сравнение производительности процессора с внеочередным и очередным исполнениями команд,
    • конфликты конвейера при введении внеочередного исполнения,
    • табличный алгоритм: стадии конвейера, буфер команд, конфликты и их разрешение, производительность,
    • алгоритм Томасуло: стадии конвейера, буфер команд, станции резервирования, конфликты и их разрешение, производительность.