Архитектура вычислительных систем
Специальность: Прикладная математика и информатика и Программная инженерия
Преподаватель: Линев А.В.
Цель освоения дисциплины
Освоение дисциплины «Архитектура вычислительных систем» преследует следующие цели:
- изучение принципов структурной и функциональной организации современных вычислительных систем;
- изучение базовых методов и алгоритмов, реализованных в различных компонентах вычислительной системы;
- формирование у слушателей целостного представления о ходе вычислительного процесса;
- получение навыков работы с программным кодом на языке уровня ассемблера.
Содержание
- Основные понятия и определения. Уровни абстракции электронной вычислительной системы. Фон-Неймановская модель компьютера. Этапы обработки инструкций в ЦП. Микрооперации. Метрики производительности и их применимость. Уравнение производительности ЦП. Закон Амдала.
- Архитектура системы команд. Программируемые места хранения. Режимы адресации. Типы инструкций. Кодирование инструкций. CISC и RISC.
- Однопортовый упорядоченный конвейер команд. Принцип конвейерной обработки инструкций. Пример конвейера. Производительность CPU c конвейером. Структурные конфликты. Конфликты данных, их классификация. Пересылка данных (Forwarding). Статическое планирование инструкций. Конфликты управления. Статические методы обработки условных переходов. Статическое предсказание переходов. Расширение конвейера для обработки вещественных операций.
- Параллелизм уровня инструкций (ILP). Базовый блок инструкций. Статическая оптимизация с разворачиванием циклов. Зависимости между инструкциями по данным, по именам, по управлению. Граф зависимостей.
- Динамическое планирование. Принципы реализации динамического планирования. Использование табло, его структура и контролируемые параметры. Алгоритм Томасуло, особенности конвейера, его использующего.
- Дополнительные свойства ЦП. Суперскалярность. Динамическое планирование при суперскалярности. (Очень) длинное командное слово (V)LIW. Векторные расширения. Масштабируемость и перспективы подходов.
- Динамическое предсказание ветвлений. Буфер целей переходов. Буфер предсказания ветвлений. Алгоритм Смита. Двухуровневый механизм динамического предсказания ветвлений с учетом корреляции. Схема MCFarling’а gshare. Гибридные предсказатели.
- Архитектура памяти. Уровни иерархии памяти. Кеширование. Принцип локальности. Кэш прямого отображения. Проецирующая функция. Наборно-ассоциативный кэш. Полностью ассоциативный кэш. Политика замещения в кэше. Уменьшение кэш-промахов. Стратегии записи в кэш. Обеспечение когерентности кэш памяти в многопроцессорных системах.
- Архитектура системы ввода-вывода. Отображение устройств ввода-вывода в память. Последовательный ввод-вывод. Исключения и прерывания. Характеристики исключений. Обработка исключений. Точные исключения. Аналоговый ввод-вывод.
Лабораторный практикум
- Оценка производительности простой программы.
- Оценка и повышение параллелизма программы на уровне инструкций.
- Оптимизация использования операций с плавающей точкой.
- Использование векторных инструкций.
- Уменьшение потерь по причине неверного предсказания переходов.
Литература
а) основная литература:
- Хэррис Д.М., Хэррис С.Л. Цифровая схемотехника и архитектура компьютера. 2-е издание. Издательство Morgan Kaufman, 2013.
- Хеннеси Д.Л., Паттерсон Д.А. Компьютерная архитектура. Количественный подход. Издание 5-е. Москва: ТЕХНОСФЕРА, 2016.
б) дополнительная литература:
- Кудин А.В., Линёв А.В. Архитектура и операционные системы параллельных вычислительных систем (Фонд образовательных электронных ресурсов ННГУ), 2007. http://www.unn.ru/books/met_files/PCS.pdf
- Таненбаум Э. Остин Т. Архитектура компьютера. СПб: Питер, 2016.
- Гук М., Юров В. Процессоры Pentium 4, Athlon и Duron. - СПб.: Питер, 2002.
- Касперски К. Техника оптимизации программ. Эффективное использование памяти. - СПб.: БХВ-Петербург, 2003.
- Столлингс В. Структурная организация и архитектура компьютерных систем. 5-е издание. - М.: Издательский дом "Вильямс", 2002.
в) программное обеспечение и Интернет-ресурсы
- Учебный курс "Введение в принципы функционирования и применения современных мультиядерных архитектур (на примере Intel Xeon Phi)" http://www.intuit.ru/studies/courses/10611/1095/info
- Учебный курс "Программирование на современных мультиядерных архитектурах (на примере Intel Xeon Phi)"http://www.intuit.ru/studies/courses/10612/1096/info
Отчетность
- Семестр 3: Экз