• A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта
Бакалавриат 2018/2019

Архитектура вычислительных систем

Статус: Курс обязательный (Программная инженерия)
Направление: 09.03.04. Программная инженерия
Когда читается: 2-й курс, 1, 2 модуль
Формат изучения: Full time
Язык: русский
Кредиты: 4

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

Аннотация

Дисциплина “Архитектура вычислительных систем” раскрывает принципы построения вычислительных систем и правила взаимодействия отдельных компонентов этих систем между собою при реализации собственно преобразования информации. В качестве средства реализации процесса взаимодействия отдельных частей вычислительных систем используется низкоуровневый язык Ассемблер. Рассматриваются также современные неклассические (пост-фон-Неймановские) архитектуры вычислительных систем.
Цель освоения дисциплины

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

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

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

  • Уметь разработать алгоритм решения полученной задачи с учетом использования программно- аппаратных возможностей микропроцессоров Intel и языка программирования Ассемблер,
Содержание учебной дисциплины

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

  • История машинного счёта.
    Основные этапы развития автоматизированных вычислений (этапы - пальцевый счет, абак, палочки Непера, машины Паскаля, Лейбница, идея Лейбница о применении двоичной системы счисления, машина Беббеджа, машина Тьюринга, первые релейные машины, ламповые вычислители, транзисторная техника, квантовые вычислителя, развитие программных средств).
  • Определения понятия "Архитектура" в применении к вычислительным системам.
    Необходимость понятия "архитектура" в применении к сложным техническим системам. Вариации толкования понятия "архитектура". Первые вычислительные системы, к которым понятие "архитектура" обязательно в применении. Отдельные примеры применения понятия "архитектура". Внутренняя архитектура современных микропроцессоров. Классическая Принстонская архитектура (архитектура фон Неймана). Гарвардская архитектура, области применения. Многоядерность, закон Релэя. Кеширование, связанные с кешированием проблемы безопасности. Архитектура суперкомпьютеров. Принципы и системы классификации вычислительных систем. 4 уровня параллелизации при вычислениях.
  • Уровни управления процессом вычислений. Архитектура современных микропроцессоров. Конвейерность. Вычислители в позиционной системе счисления с основанием основанием 3. Стековая машина.
    Уровень языков сверхвысокого/высокого уровня, уровень машинных машинных команд (инструкций) уровень микрокоманд. Программно/аппаратные средства конвертации между уровнями. Особенности машинных команд процессоров ARM, ITANIUM, ЭЛЬБРУС. Понятие машинного такта (тика) процессора. Суперскалярность. Конвейерная архитектура и Сергей Лебедев. Идеологемы CISC и RISC принципов построения вычислителей. Размерность и точность представления данных, стандарт IEEE 754. Николай Брусенцов и стековая машина на основе трехзначной логики СЕТУНЬ.
  • Общие требования к программному коду. Потоковые (DATA-FLOW) вычислители. Язык программирования Ассемблер.
    Общие принципы определения последовательностии выполнения машинных команд. Принципы "Control-flow" и "Data-flow". Ограничения идеологемы "Control-flow", современные технологические проблемы "Data-Flow". Необходимость исползования ассоциативной памяти в "Data-flow" вычислительных системах. Стататическая и динамическая архитектуры "Data-Flow", проблемы условного выполнения в "Data-Flow". Современное применение "Data-Flow". Язык программирования Ассемблер - применение, достоинства и недостатки. Компиляторы с Ассемблера. Форматы команд Ассемблеры, типы данных, виды адресации. Организация аппаратного стека.
  • Недостаток процесса вычислений в позиционной системе счисления и альтернативные решения. Простейшие программы на Ассемблере.
    Принципиальная невозможность отойти от частично-последовательного характера операций над битами при вычислениях в позиционных системах счисления. Достоинства и ограничения табличных систем. Непозициолнные системы счисления. Система остаточных классов (СОК) и ее применение при разработке процессоров. Место СОК в иерархии уровней паралллизации вычислений. Израиль Акушский, технические параметры построенных на СОК вычислителей. Современное состояние СОК при разработке процессоров. Простейшие программы на Ассемблере - импорт процедур из системных библиотек, работа командной строкой, форматный вывод данных.
  • Архитектура параллельных вычислительных систем. Ассемблер - целочисленная арифметика.
    SMP и MPP архитектуры, их достоинства и недостатки. Причина повышенной масштабируемости MPP. Разница в средствах программирования для SMP и MPP. Арифметические инструкции в Ассемблере. Использование внутренних регистров процессора при реализации целочисленной арифметики. Регистры состояния (PSW) для индикации особых состояний при выполнении целочисленных команд.
  • Суперкомпьютеры. Ассемблер - организация условных и безусловных переходов.
    тестирования производительности суперкомпьютеров, Джек Донгарра, тест LinPACK. Альтернативные тесты производительности суперкомпьютеров. Потеря точности при супервычислениях. Технологии выявления параллелизма. ДНФ. Абстрактные модели параллельных вычислений, закон Брента. Двухстадийный процесс реализации условных переходов, использование PSW. "Короткие" и "длинные" переходы. Альтернативные способы реализации условного выполнения - предикация (архитектуры ARM, ITANIUM).
  • Нейронные сети и нейрокомпьютеры.
    История - перцептрон. Формальная связь со структурами мозга (биологическими нейронами). Функция активации, методика обучения при распознавании образов. Марвин Минский и "ледниковый период" в истории развития нейронных сетей. "Глубокие нейронные сети" (DNN). "Проклятие размерности" при обучении нейронных серей, сверточные сети. Нейронные сети с прямым распространение информации и с обратными связями. Методы задания информации для нейронных сетей. Современные аппаратные реализации нейронных сетей.
  • Ассемблер в архитектуре X86 - практика разработки программ. Интерактивные среды разработки. Макроассемблер.
    Процессор x86 фирмы Intel, этапы его развития. Ассемблер для 32-x и 64-бит архитектур. Ассемблер для процессоров архитектуры ARM. Поддержка операций над числами с плавающей точкой. Арифметичский сопроцессор, кольцевой регистр при операциях с плавающей точкой, extended-формат обрабатываемых чисел. Приемы вычислений с плавающей точкой. Использования макросов при работе с Ассемблером. Понятие пролога и эпилога. Стандартные соглашения о передаче параметров процедурам (stdcall, cdecl, fastcall). Двоично-десятичная арифметика (BCD) в процессорах x86. Инструкции для работы с цепочками (sequence) элементов (одномерными массивами).
  • Транспьютеры. Отладка программ на языке Ассемблер.
    Транспьютеры как первая попытка реализации распределенных вычислений. Сэр Энтони Хоар, концепция взаимодействующих последовательных процессов CSP (Communicating Sequential Process), язык программирования ОККАМ. Язык Z спецификаций. Логика Хоара (Hoare Logic) - научная основа для конструирования корректных программ, используется для определения и разработки языков программирования. Отладчики (Debuggers) программ на Ассемблере.
  • Метакомпьютинг и концепция GRID. Использование ассемблерных программ при программировании на языках высокого уровня.
    Архитектура систем поиска информации в сети InterNet. Создатели “всемирной паутины” Роберт Кайо и сэр Тимоти Джон Бернес-Ли. Закон Зипфа. Современные системы анализа и поиска данных. Эдвард Пейдж и Сергей Брин как авторы реализации поиска данным с учетом пользовательских предпочтений. Ричард Столлман - рупор концепции свободного программного обеспечения. Причины встраивания кодов Ассеьблера в программы на языках высокого уровня. Программный реинжиниринг с использованием Ассемблера.
  • Архитектура GPU фирмы NVIDIA и технология CUDA.
    Функции видеокарт как пример использования подхода SIMD (обработка множества данных единой последовательностью команд). История расширения функций видеокарт в строну арифметических сопроцессоров. Фирма nVidia и аппаратно-программная технология CUDA. Основные параметры GPU, понятие вычислительных возможностей (Compute Capability). Принципы и примеры программирования GPU. Применение GPU при супервычислениях. Графические сопроцессоры фирмы AMD.
  • Аналоговые вычислительные системы.
    Аналоговый и цифровой принципы представления информации. Область эффективности применения аналоговых вычислительных систем. "Рабочие тела" аналоговых вычислительных систем - жидкости, газы, электричество. Примеры выполнения арифметических операций с помощью аналоговых вычислительных систем. Аналоговые вычислителя в военном деле.
  • Вычислители с программируемой архитектурой, пути усовершенствования вычислительных архитектур.
    Принцип реконфигурации вычислительной системы. Изменчивость структуры вычислительной системы против статической системы. Реконфигурируемые вычислительные системы, программируемые логические интегральные схемы (ПЛИС). Этапы процесса подготовки к обработке информации по заданному алгоритму и собственно вычислениям. Эффективность вычислителей с программируемой архитектурой. Систолические матрицы (массивы). Технология сенсорных сетей ZigBee. Архитектура с тегированной памятью. Самоопределяемые данные. Реализация одноуровневой памяти.
  • Квантовые вычислители и системы передачи данных.
    Целесообразность построения квантовых вычислителей. Предел Ландауэра для необратимых вычислений. Проблема наблюдателя в квантовой теории. Кубит - аналог бита в традиционных вычислителях. Особенности кубита, принцип суперпозиции. Физическая связанность ("запутанность") состояний кубитов. Унитарные преобразования в квантовых схемах. Эффективность квантовых компьютеров на известных алгоритмах. Алгоритмы Шора, Гровера, Залки-Визнера, Дойча-Джоза. Будущее современных систем криптозащиты при реализации квантовых компьютеров. Квантовая криптография. Квантовая линия связи. "Квантовые деньги".
  • Биологические компьютеры.
    Физические параметры биологических объектов, позволяющие реализовывать хранение и обработку информации. Запись, считывание и обработка данных. "Инфузорное программирование". Клеточное программирование. Нейронные микросхемы - сращивание традиционных технологий с биологическими. "Живой микрочип". Жизнестойкость биокомпьютеров. Способность биокомпьютеров к копированию и усложнению.
Элементы контроля

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

  • неблокирующий Домашнее задание
  • неблокирующий Экзамен
Промежуточная аттестация

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

  • Промежуточная аттестация (2 модуль)
    0.5 * Домашнее задание + 0.5 * Экзамен
Список литературы

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

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

  • - Дэвид М. Харрис, Сара Л. Харрис — Цифровая схемотехника и архитектура компьютера - Издательство "ДМК Пресс" - 2017 - ISBN: 978-5-97060-522-6 - Текст электронный // ЭБС Лань - URL: https://e.lanbook.com/book/97336

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

  • Технология CUDA в примерах : введение в программирование графических процессоров, Сандерс Дж., Кэндрот Э., 2011