Архитектура вычислительных систем

Кафедра программной инженерии

Специальность: Прикладная математика и информатика и Программная инженерия

Преподаватель: Линев А.В.

Цель освоения дисциплины

Освоение дисциплины «Архитектура вычислительных систем» преследует следующие цели:

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

Содержание

  1. Основные понятия и определения. Уровни абстракции электронной вычислительной системы. Фон-Неймановская модель компьютера. Этапы обработки инструкций в ЦП. Микрооперации. Метрики производительности и их применимость. Уравнение производительности ЦП. Закон Амдала.
  2. Архитектура системы команд. Программируемые места хранения. Режимы адресации. Типы инструкций. Кодирование инструкций. CISC и RISC.
  3. Однопортовый упорядоченный конвейер команд. Принцип конвейерной обработки инструкций. Пример конвейера. Производительность CPU c конвейером. Структурные конфликты. Конфликты данных, их классификация. Пересылка данных (Forwarding). Статическое планирование инструкций. Конфликты управления. Статические методы обработки условных переходов. Статическое предсказание переходов. Расширение конвейера для обработки вещественных операций.
  4. Параллелизм уровня инструкций (ILP). Базовый блок инструкций. Статическая оптимизация с разворачиванием циклов. Зависимости между инструкциями по данным, по именам, по управлению. Граф зависимостей.
  5. Динамическое планирование. Принципы реализации динамического планирования. Использование табло, его структура и контролируемые параметры. Алгоритм Томасуло, особенности конвейера, его использующего.
  6. Дополнительные свойства ЦП. Суперскалярность. Динамическое планирование при суперскалярности. (Очень) длинное командное слово (V)LIW. Векторные расширения. Масштабируемость и перспективы подходов.
  7. Динамическое предсказание ветвлений. Буфер целей переходов. Буфер предсказания ветвлений. Алгоритм Смита. Двухуровневый механизм динамического предсказания ветвлений с учетом корреляции. Схема MCFarling’а gshare. Гибридные предсказатели.
  8. Архитектура памяти. Уровни иерархии памяти. Кеширование. Принцип локальности. Кэш прямого отображения. Проецирующая функция. Наборно-ассоциативный кэш. Полностью ассоциативный кэш. Политика замещения в кэше. Уменьшение кэш-промахов. Стратегии записи в кэш. Обеспечение когерентности кэш памяти в многопроцессорных системах.
  9. Архитектура системы ввода-вывода. Отображение устройств ввода-вывода в память. Последовательный ввод-вывод. Исключения и прерывания. Характеристики исключений. Обработка исключений. Точные исключения. Аналоговый ввод-вывод.

Лабораторный практикум

  1. Оценка производительности простой программы.
  2. Оценка и повышение параллелизма программы на уровне инструкций.
  3. Оптимизация использования операций с плавающей точкой.
  4. Использование векторных инструкций.
  5. Уменьшение потерь по причине неверного предсказания переходов.

Литература

а) основная литература:

  1. Хэррис Д.М., Хэррис С.Л. Цифровая схемотехника и архитектура компьютера. 2-е издание. Издательство Morgan Kaufman, 2013.
  2. Хеннеси Д.Л., Паттерсон Д.А. Компьютерная архитектура. Количественный подход. Издание 5-е. Москва: ТЕХНОСФЕРА, 2016.

б) дополнительная литература:

  1. Кудин А.В., Линёв А.В. Архитектура и операционные системы параллельных вычислительных систем (Фонд образовательных электронных ресурсов ННГУ), 2007. http://www.unn.ru/books/met_files/PCS.pdf
  2. Таненбаум Э. Остин Т. Архитектура компьютера. СПб: Питер, 2016.
  3. Гук М., Юров В. Процессоры Pentium 4, Athlon и Duron. - СПб.: Питер, 2002.
  4. Касперски К. Техника оптимизации программ. Эффективное использование памяти. - СПб.: БХВ-Петербург, 2003.
  5. Столлингс В. Структурная организация и архитектура компьютерных систем. 5-е издание. - М.: Издательский дом "Вильямс", 2002.

в) программное обеспечение и Интернет-ресурсы

  1. Учебный курс "Введение в принципы функционирования и применения современных мультиядерных архитектур (на примере Intel Xeon Phi)" http://www.intuit.ru/studies/courses/10611/1095/info
  1. Учебный курс "Программирование на современных мультиядерных архитектурах (на примере Intel Xeon Phi)"http://www.intuit.ru/studies/courses/10612/1096/info

Отчетность

  • Семестр 3: Экз