Вопросы соответствуют содержанию учебника Patterson, Hennessy, Computer Organization and Design: The Hardware/Software Interface, 5th Edition, 2013
8 основных идей при разработке компьютерных архитектур. Инфраструктура исполнения программ. Организация компьютера
Полупроводниковые технологии изготовления процессоров и памяти
Производительность. Физические ограничения мощности вычислительных систем. Переход к аппаратному параллелизму вычислений
Измерение производительности Intel Core i7
Представление операций и операндов в аппаратуре
Беззнаковая и знаковая целочисленная арифметика
Представление инструкций, логические операции и ветвления
Поддержка вызова процедур в аппаратуре
Работа со строками, порядок байт в слове (эндианность)
Адресация MIPS для 32 бит непосредственных аргументов и адресов
Поддержка параллелизма на уровне инструкций, синхронизация
Трансляция и запуск программы на С, пример
Массивы, ссылки, индексы и указатели
Статическая/динамическая компиляция и интерпретация программ с точки зрения исполнения на процессоре
Набор инструкций ARMv7 (32-bit)
Набор инструкций x86
Набор инструкций ARMv8 (64-bit)
Реализация в аппаратуре сложения, вычитания и умножения
Реализация в аппаратуре деления
Реализация в аппаратуре и особенности использования вычислений с плавающей точкой
Параллелизм в компьютерной арифметике, параллелизм слотов операндов
Расширения SIMD и векторные инструкции в x86
Использование SIMD для ускорения матричного умножения
Обзор устройства процессора MIPS
Принципы разработки синхронных логических схем. Строб (тактирование).
Устройство операционного автомата (Datapath). Одностадийная реализация.
Минимальная реализация процессора MIPS, добавление автомата управления
Обзор конвейерной архитектуры процессора
Конвейеризация операционного и управляющего автоматов
Обработка зависимости инструкций по данным, обходы и пропуски тактов
Обработка зависимости инструкций по управлению, предсказание переходов
Аппаратная поддержка исключений
Методы реализации параллелизма инструкций
Конвейеры ARM Cortex-A8 и Intel Core i7
Использование параллелизма инструкция для ускорения умножения матриц
Методы разработки цифровых конвейерных процессоров с использованием языков описания аппаратуры (HDL)
Технологии производства компьютерной памяти (запоминающих устройств)
Основные принципы кэширования
Измерение и улучшение производительности кэширования
Повышение надежности памяти. Измерение надежности. Корректирующие коды.
Аппаратная поддержка виртуальных машин
Виртуальная память
Общий подход к проектированию иерархической памяти
Управление состоянием кэша при помощи конечного автомата
Параллелизм и иерархическая память, когерентность кэшей
RAID массивы запоминающих устройств
Разработка кэш контроллеров
Иерархия памяти ARM Cortex-A8 и Intel Core i7
Использование предвыборки кэша для ускорения умножения матриц
Сложности разработки параллельных программ
Инструкции SISD, MIMD, SIMD, SPMD и векторные инструкции
Аппаратная поддержка многопоточных вычислений
Многоядерные и многопроцессорные системы с общей памятью
Обзор архитектуры графических процессоров (GPU)
Кластеры, дата-центры, суперкомпьютеры и другие многопроцессорные архитектуры на основе обмена сообщениями
Обзор сетевых топологий многопроцессорных систем
Обзор сетевых протоколов и оборудования для соединения узлов кластеров, дата-центров и суперкомпьютеров
Измерение и моделирование производительности многопроцессорных систем
Сравнение производительности Intel Core i7 и NVIDIA Tesla GPU 550
Использование многопроцессорных систем для ускорения умножения матриц