• A
  • A
  • A
  • ABC
  • ABC
  • ABC
  • А
  • А
  • А
  • А
  • А
Regular version of the site

Computer Architecture and Assembly Language

2023/2024
Academic Year
RUS
Instruction in Russian
3
ECTS credits
Course type:
Compulsory course
When:
1 year, 4 module

Instructors


Aleinik, Vladislav


Егоров Данила Игоревич


Иконникова Мария Кирилловна


Padaryan, Vartan


Terlych, Nikita

Программа дисциплины

Аннотация

Дисциплина направлена на изучение студентами базовых принципов устройства современных ЭВМ на примере архитектуры x86, включая анализ характеристик различных компонент ЭВМ и того, как эти характеристики влияют на работу системных и прикладных программ. Закрепление знаний достигается посредством практического освоения языка Си++, языка ассемблера архитектуры x86, типовых механизмов реализации языка Си/Си++ и его системы программирования на платформе Linux x86.
Цель освоения дисциплины

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

  • Формирование у студентов связного представления об организации современных вычислительных систем, понимания взаимосвязей между архитектурными решениями уровней аппаратуры ЭВМ, системного и прикладного программного обеспечения, понимания факторов, влияющих на качественные и количественные характеристики ЭВМ, производительность и безопасность всей вычислительной системы в целом.
Планируемые результаты обучения

Планируемые результаты обучения

  • Знать основные принципы устройства ЭВМ, его основные компоненты, их качественные и количественные характеристики.
  • Знать свойства аппаратуры, влияющие на производительность и безопасность работы программ. Особенности двоичного (бинарного) интерфейса приложений на примере архитектуры IA-32.
  • Знать особенности архитектуры x86, влияние архитектуры набора команд на реализацию языков высокого уровня и систему программирования.
  • Знать язык ассемблера архитектуры x86, особенности реализации различных конструкций языка Си/Си++ на уровне языка ассемблера и причины, влияющие на выбор механизма реализации.
  • Уметь составлять и отлаживать многомодульные программы на языках Си/Си++ и ассемблера; реализовывать интерфейсы между модулями, реализованными на разных языках программирования (Си/Си++и ассемблер).
  • Уметь обосновано выбирать механизмы реализации конструкций языка Си/Си++ и корректно их кодировать на языке ассемблера архитектуры x86.
  • Уметь оценивать производительность программ на языках Си/Си++ и ассемблера, используя знания об особенностях устройства аппаратуры ЭВМ и аппаратные средства профилирования архитектуры x86.
  • Уметь восстанавливать по ассемблерному коду операторы и типы данных языка Си/Си++.
  • Владеть современной технологией разработки и отладки многомодульных программ на языках Си/Си++ и ассемблера.
Содержание учебной дисциплины

Содержание учебной дисциплины

  • Введение в основы Си++. Классы и структуры. Шаблоны. Наследование. Исключения. Управление память. Семантика перемещения. Умные указатели. Контейнеры и итераторы. Вывод типов, лямбда-выражения. Метапрограммирование.
  • Введение в архитектуру ЭВМ на примерах ассемблерных программ. Взаимосвязь языка Си/Си++, языка ассемблера и особенностей архитектуры ЭВМ на примере архитектуры x86.
  • Система программирования языка Си/Си++ и ее связь с архитектурой ЭВМ.
  • Архитектура ЭВМ в разных аспектах: физической организации, поддержки системных и прикладных программ.
Элементы контроля

Элементы контроля

  • неблокирующий Домашнее задание
    В течение Модуля 3 студентам предлагается выполнить четыре блока контеста (домашних задания, представляющих собой набор из 3-7 задач каждый). Финальная оценка за элемент контроля выставляется по формуле: round(x / 20), где x – количество заработанных студентом первичных баллов, а round – функция математического округления до ближайшего целого. В случае “половинного балла” оценка округляется вниз: например, 7.5 округлится до 7.
  • блокирующий Экзамен
  • неблокирующий Контрольные работы
    Две контрольные работы в 4-м модуле
Промежуточная аттестация

Промежуточная аттестация

  • 2023/2024 учебный год 4 модуль
    Экзамен является блокирующим. Для получения положительной оценки нужно набрать не менее 40% баллов. Если за экзамен получено менее 40% баллов, то оценка за элемент контроля - процент набранных за экзамен баллов, поделенный на 10 и округленный вниз до ближайшего целого (от 30% баллов -- оценка 3, менее 30% и не менее 20% баллов -- оценка 2 и проч). Если за экзамен получено не менее 40% баллов, то оценка рассчитывается с учетом накопительной части всех элементов контроля как: 0.3 * экзамен + 0.1 * ДЗ№1 + 0.1 * ДЗ№2 + 0.1 * ДЗ№3 + 0.1 * ДЗ№4 + 0.15 * контрольная работа №1 + 0.15 * контрольная работа №2.
Список литературы

Список литературы

Рекомендуемая основная литература

  • Алгоритмы: построение и анализ : пер.с англ., Кормен, Т., 2013
  • Архитектура компьютера, Таненбаум, Э., 2014
  • Язык Ассемблера для процессоров Intel, Ирвин, Кип Р., 2005
  • Язык программирования С++ : специальное издание, Страуструп, Б., 2015
  • Язык программирования С++, Страуструп, Б., 2007

Рекомендуемая дополнительная литература

  • Computer architecture : a quantitative approach, Hennessy, J. L., 2019

Авторы

  • Белеванцев Андрей Андреевич
  • Буцкая Евгения Александровна
  • Падарян Вартан Андроникович