====== Вопросы по курсу «Архитектура компьютеров» ====== Вопросы соответствуют содержанию учебника 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 - Использование многопроцессорных систем для ускорения умножения матриц