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

Материал из Кафедра математической кибернетики
Перейти к: навигация, поиск
Строка 53: Строка 53:
  
 
Общую шину данных в алгоритме Томасуло можно реализовать на основе мультиплексоров и демультиплексоров или любым другим способом, обеспечивающим широковещательную рассылку значений.
 
Общую шину данных в алгоритме Томасуло можно реализовать на основе мультиплексоров и демультиплексоров или любым другим способом, обеспечивающим широковещательную рассылку значений.
 +
 +
== Кэш-память ==
 +
 +
Реализовать кэш данных (''кэш инструкций - по желанию'').
 +
Допускается реализация как над однотактовым процессором (''в связи с задержками из-за промахов кэша он станет многотактовым''), так и над конвейером.
 +
Можно считать, что пропускная способность основной памяти данных - одно слово за такт.
 +
Требования к кэш-памяти:
 +
# хотя бы два слова в строке,
 +
# хотя бы восемь строк,
 +
# полуассоциативность: индекс строки - хотя бы два бита, и хотя бы две строки для каждого индекса.
 +
 +
Остальные детали реализации кэша могут выбираться любым способом.
 +
 +
== Виртуальная память ==
 +
 +
Реализовать TLB возле кэша данных.
 +
Реализация должна включать в себя:
 +
# кэш данных с виртуальной адресацией,
 +
# таблицу страниц не менее чем на 8 записей,
 +
# базовый регистр для таблицы страниц,
 +
# инструкции заполнения записей в таблице,
 +
# трансляцию адресов в командах работы с памятью,
 +
# работу со страницами размером не менее 4-х слов,
 +
# защиту от доступа за пределы доступной виртуальной памяти и за пределы выбранной страницы - например, полную остановку работы процессора, игнорирование недопустимой инструкции или фиксированные действия процессора наподобие увеличения значения в заданном регистре вместо доступа к памяти.
 +
 +
Детали реализации, включая формат новых команд, наличие механизмов обработки алиасинга, точное устройство таблицы и точный алгоритм трансляции, выбираются любым способом.
 +
 +
== Прерывания ==
 +
 +
Реализация механизма точных прерываний должна включать в себя:
 +
# конвейер,
 +
# обработчик прерываний в памяти инструкций по произвольно выбранному адресу, который можно "вшить" в дизайн,
 +
# хотя бы одно внешнее прерывание, возникающее при появлении единицы в сигнале, подаваемом процессору извне наряду с clock и reset,
 +
# прерывание по неверному коду инструкции,
 +
# прерывание по переполнению в АЛУ,
 +
# хотя бы одну инструкцию явного вызова прерывания,
 +
# корректный возврат из прерывания к следующей выполняемой инструкции,
 +
# либо произвольный выбор приоритетов прерываний с вложенной обработкой, либо блокирование вложенных прерываний до возврата из обработчика.
  
 
= Теория =
 
= Теория =

Версия 20:15, 18 апреля 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. хотя бы восемь строк,
  3. полуассоциативность: индекс строки - хотя бы два бита, и хотя бы две строки для каждого индекса.

Остальные детали реализации кэша могут выбираться любым способом.

Виртуальная память

Реализовать TLB возле кэша данных. Реализация должна включать в себя:

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

Детали реализации, включая формат новых команд, наличие механизмов обработки алиасинга, точное устройство таблицы и точный алгоритм трансляции, выбираются любым способом.

Прерывания

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

  1. конвейер,
  2. обработчик прерываний в памяти инструкций по произвольно выбранному адресу, который можно "вшить" в дизайн,
  3. хотя бы одно внешнее прерывание, возникающее при появлении единицы в сигнале, подаваемом процессору извне наряду с clock и reset,
  4. прерывание по неверному коду инструкции,
  5. прерывание по переполнению в АЛУ,
  6. хотя бы одну инструкцию явного вызова прерывания,
  7. корректный возврат из прерывания к следующей выполняемой инструкции,
  8. либо произвольный выбор приоритетов прерываний с вложенной обработкой, либо блокирование вложенных прерываний до возврата из обработчика.

Теория

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

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

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

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