ФНТИ
Карта сайта

Архитектура ЭВМ
(Федотов В.А.)

  1. Общая информация об устройстве компьютера. Процессор, память, кеш, шины. Северный и южный мост, периферийные устройства. Машинное слово. Организация оперативной памяти и выравнивание.
  2. Целые числа. Порядок байт. Представление знаковых целых чисел в виде дополнения двойки. Битовые операции. Логический и арифметический сдвиг вправо. Переполнения при приведении целых типов. Усечения и расширения целых типов. Переполнения при арифметических операциях. Замечания о программировании на Си.
  3. Числа с плавающей точкой. Стандарт IEEE 754. Представление чисел с плавающей точкой одинарной и двойной точности. Нормализованные и ненормализованные числа. Специальные значения NaN, +Inf, -Inf. Коммутативность операций + и *. Неассоциативность операций + и *. Округления и потеря точности. Замечания о программировании на Си. Замечания о размере регистра на процессорах Intel.
  4. Архитектура и микроархитектура процессора. Архитектуры CISC, RICS, WLIV. Принципиальная схема процессора. Управляющее устройство, арифметико-логическое устройство, счётчик команд, регистры общего назначения, регистры специального назначения, счётчик команд. Архитектура IA32. История развития IA32.
  5. Ассемблер IA32. Синтаксис AT&T. Регистры общего назначения. Суффиксы типов данных. Синтаксис для обращения к ячейкам памяти. Команды mov*. Арифметические и логические команды. Разбор примеров.
  6. Коды условий. Метки. Условные переходы. Безусловные переходы. Трансляция инструкции if в ассемблерный код. Разбор примеров. Трансляция программ на C в ассемблерный код. Дизассемблирование бинарных файлов. Компиляция программ на C и ассемблере в единый исполняемый файл.
  7. Вызов подпрограмм. Специальное значение регистров %ebp, %esp. Соглашения об использовании стека. Регистры сохранения вызывающей процедуры. Регистры сохранения вызываемой процедуры. Разбор примеров.
  8. Работа с массивами в ассемблере. Переполнение буфера. Работа со структурами в ассемблере. Таблицы переходов. Трансляция оператора case на C в ассемблерный код. Разбор примеров.
  9. Оптимизация. Безопасные и опасные оптимизации. Вынос вычислений, уменьшение стоимости операций, уменьшение алгоритмической стоимости операций. Конвейеры. Векторные инструкции.
  10. Память компьютера. Жёсткие диски, твёрдотельные накопители. Оперативная память, чипы DRAM. Кеш процессора, чипы SRAM. Различия SRAM и DRAM. Иерархия памяти. Понятия временной и пространственной локальности. Кеширование и оптимизация. Блочное перемножение матриц.
  11. Исключения и прерывания. Обработчики исключений и прерываний. Прозрачная обработка прерываний. Защищённый режим работы процессора. Взаимодействие прикладных процессов и операционной системы, системные вызовы.
  12. Виртуальная память. История ВП. Изоляция процессов. Режимы только для чтения и чтения-записи. Разделяемые библиотеки, общая разделяемая память. Системный вызов fork.

Литература

  1. Танненбаум Э., Остин Т. Архитектура компьютера 6-е из. – Спб.: Питер, 2013.
  2. Брайант Р., О'Халларон Д. Компьютерные системы: архитектура и программирование. Пер. С англ. – Спб.: БХВ-Петербург, 2005