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

Материал из Кафедра математической кибернетики
Перейти к: навигация, поиск
Строка 10: Строка 10:
 
Курс содержит пять обязательных тем:
 
Курс содержит пять обязательных тем:
 
# конвейер,
 
# конвейер,
# внеочередная выборка команд,
+
# внеочередное исполнение команд,
 
# кэш-память,
 
# кэш-память,
 
# виртуальная память,
 
# виртуальная память,
Строка 29: Строка 29:
 
* выложить в неглавную ветку git-репозитория "mips_simplified_processor".
 
* выложить в неглавную ветку git-репозитория "mips_simplified_processor".
  
== Конвейер ==
+
По умолчанию все темы реализуются для однотактового или, по желанию, более сложно устроенного процессора, поддерживающего набор инструкций, содержащий:
 
+
Конвейер может быть реализован над однотактовым процессором для набора инструкций, содержащего:
+
 
* хотя бы одну арифметико-логическую R-инструкцию,
 
* хотя бы одну арифметико-логическую R-инструкцию,
 
* хотя бы одну арифметико-логическую I-инструкцию,
 
* хотя бы одну арифметико-логическую I-инструкцию,
Строка 38: Строка 36:
 
* инструкцию чтения из памяти в регистр,
 
* инструкцию чтения из памяти в регистр,
 
* инструкцию записи в память из регистра.  
 
* инструкцию записи в память из регистра.  
 +
 +
== Конвейер ==
  
 
Реализация конвейера должна корректно разрешать все конфликты (hazards) и содержать:
 
Реализация конвейера должна корректно разрешать все конфликты (hazards) и содержать:
 
# пять классических стадий выполнения инструкции;
 
# пять классических стадий выполнения инструкции;
 
# пересылку значений (bypass) хотя бы для одного типа конфликтов чтения после записи (read-after-write hazard);
 
# пересылку значений (bypass) хотя бы для одного типа конфликтов чтения после записи (read-after-write hazard);
# спекулятивное исполнение для обхода конфликтов по управлению, возникающих при исполнении инструкций условного ветвления.
+
# спекулятивное исполнение для ускоренного разрешения конфликтов по управлению, возникающих при исполнении инструкций условного ветвления.
 +
 
 +
== Внеочередное исполнение команд ==
 +
 
 +
Реализация внеочередного исполнения команд должна корректно исполнять произвольные входные программы и содержать:
 +
# конвейер,
 +
# команду умножения целых чисел (формат - такой же, как у всех R-инструкций, младшие 6 бит можно определить произвольно либо согласно известным стандартам),
 +
# отдельное арифметико-логическое устройство, умножающее два целых числа за '''3 такта''' работы конвейера,
 +
# внеочередное исполнение согласно алгоритму Томасуло.
 +
 
 +
Общую шину данных в алгоритме Томасуло можно реализовать на основе мультиплексоров и демультиплексоров или любым другим способом, обеспечивающим широковещательную рассылку значений.
  
 
= Теория =
 
= Теория =
Строка 59: Строка 69:
 
#* пересылка значений,
 
#* пересылка значений,
 
#* спекулятивное исполнение.
 
#* спекулятивное исполнение.
 +
# Внеочередное исполнение команд:
 +
#* параллелизм на уровне инструкций и сравнение производительности процессора с внеочередным и очередным исполнениями инструкций,
 +
#* конфликты конвейера при введении внеочередного исполнения,
 +
#* табличный алгоритм: стадии конвейера, буфер инструкций, конфликты и их разрешение, производительность,
 +
#* алгоритм Томасуло: стадии конвейера, буфер инструкций, станции резервирования, конфликты и их разрешение, производительность.
  
 
[[Категория:Лекционные курсы кафедры МК]]
 
[[Категория:Лекционные курсы кафедры МК]]
 
[[Категория:Магистерская программа Дискретные управляющие системы и их приложения]]
 
[[Категория:Магистерская программа Дискретные управляющие системы и их приложения]]

Версия 18:40, 19 февраля 2017

Курс по магистерской программе Дискретные управляющие системы и их приложения (группа 518/2).

Общая информация

Руководители курса

Шуплецов М.С., Подымов В.В.

Критерии оценки

Курс содержит пять обязательных тем:

  1. конвейер,
  2. внеочередное исполнение команд,
  3. кэш-память,
  4. виртуальная память,
  5. стек и прерывания.

Для получения оценки "Отлично" требуется покрыть каждую тему практикой или ответом на экзамене (теорией). При этом хотя бы две темы должны быть покрыты практикой. Каждая непокрытая тема снижает итоговую оценку на один балл.

Практика

В этом разделе будут появляться требования к покрытию тем курса практикой.

Покрытие темы практикой - это написание кода на языке Verilog, реализующего понятия темы. Реализацию можно

  • выслать на почты обоих руководителей курса,
  • выложить в свой git-репозиторий, отдельно убедившись, что оба руководителя приглашены в репозиторий, или
  • выложить в неглавную ветку git-репозитория "mips_simplified_processor".

По умолчанию все темы реализуются для однотактового или, по желанию, более сложно устроенного процессора, поддерживающего набор инструкций, содержащий:

  • хотя бы одну арифметико-логическую R-инструкцию,
  • хотя бы одну арифметико-логическую I-инструкцию,
  • хотя бы одну инструкцию условного ветвления,
  • инструкцию безусловного ветвления,
  • инструкцию чтения из памяти в регистр,
  • инструкцию записи в память из регистра.

Конвейер

Реализация конвейера должна корректно разрешать все конфликты (hazards) и содержать:

  1. пять классических стадий выполнения инструкции;
  2. пересылку значений (bypass) хотя бы для одного типа конфликтов чтения после записи (read-after-write hazard);
  3. спекулятивное исполнение для ускоренного разрешения конфликтов по управлению, возникающих при исполнении инструкций условного ветвления.

Внеочередное исполнение команд

Реализация внеочередного исполнения команд должна корректно исполнять произвольные входные программы и содержать:

  1. конвейер,
  2. команду умножения целых чисел (формат - такой же, как у всех R-инструкций, младшие 6 бит можно определить произвольно либо согласно известным стандартам),
  3. отдельное арифметико-логическое устройство, умножающее два целых числа за 3 такта работы конвейера,
  4. внеочередное исполнение согласно алгоритму Томасуло.

Общую шину данных в алгоритме Томасуло можно реализовать на основе мультиплексоров и демультиплексоров или любым другим способом, обеспечивающим широковещательную рассылку значений.

Теория

В отличие от практики, выполняющейся в течение всего семестра, экзамен проходит по завершении курса, и потому предполагает знание у сдающего всех ключевых тем курса. При ответе ключевой темы на экзамене требуется также и знание приложений понятий этой темы к другим ключевым темам.

Рабочая программа

Здесь будет появляться список ключевых понятий и тем для ответа на экзамене.

  1. Конвейер:
    • пять классических стадий исполнения инструкции (выборка, декодирование, исполнение, доступ к памяти, запись в регистр),
    • латентность и производительность,
    • конфликты (структурные, по данным, по управлению),
    • пересылка значений,
    • спекулятивное исполнение.
  2. Внеочередное исполнение команд:
    • параллелизм на уровне инструкций и сравнение производительности процессора с внеочередным и очередным исполнениями инструкций,
    • конфликты конвейера при введении внеочередного исполнения,
    • табличный алгоритм: стадии конвейера, буфер инструкций, конфликты и их разрешение, производительность,
    • алгоритм Томасуло: стадии конвейера, буфер инструкций, станции резервирования, конфликты и их разрешение, производительность.