+7 (812) 703-02-02 info@hse.spbstu.ru

Архитектура современных компьютеров

Длительность дисциплины: 12 ак.ч.


Аннотация

Подобно тому, как возникновение механизмов для перевозки и обработки повысило скорости процессов материального производства, изобретение и быстрое развитие компьютеров было вызвано потребностью ускорить процессы обработки нематериальной субстанции – информации. Основной критерий при использовании средств компьютерной техники – насколько велико достигаемое ускорение.

В течение  периода с 1940-х годов до 1990-х основным средством ускорения компьютеров было повышение тактовой частоты (приблизительно в миллион раз к 2000 г). Производительность компьютеров при этом росла пропорционально и почти не зависела от того, как программист писал код.

Однако с середины 1980-х годов все больший вклад в ускорение стало вкладывать структурное усложнение аппаратуры. При этом структура алгоритмов и особенности их программной реализации все сильнее оказываются связаны с этой усложняющейся аппаратной структурой.

Язык программирования Си/Си++ разрабатывался и в последующем используется для достижения максимальной эффективности, проявляющейся в высокой скорости исполнения.

Различие по скорости исполнения между более удачной и менее удачной программной реализацией одного алгоритма на языке Си/Си++ может составлять по скорости 10 и более раз, в зависимости от того, насколько программист учитывает влияние на эту скорость связей между структурой аппаратной части компьютера и структурой реализации алгоритма в программе.

Во столько же раз будут различаться суммарные затраты на компьютерные вычисления, достигающие для сложных задач многих миллионов долларов.

Если программист осведомлен об этих связях, он может при реализации программы принимать решения, дающие повышение скорости исполнения кода.


Знания и умения, полученные в результате изучения

Вот некоторые вопросы, ответы на которые будут даны в курсе:

  • Как располагаются данные (операнды) в памяти компьютера, и почему некоторые способы размещения оказываются более эффективными, нежели прочие.
  • Какой набор действий с операндами (система команд) бывает обычно реализован в цифровом процессоре.
  • В чем могут состоять причины расширения (либо сокращения) набора команд, и как набор команд может быть связан со скоростью исполнения и с размером памяти, требуемыми для исполнения программы
  • Какие структурные и схемные приемы были изобретены разработчиками аппаратной части, чтобы получить дополнительное ускорение исполнения программы без повышения скорости работы (тактовой частоты) элементной базы компьютера.
  • Что привело к организации компьютерной памяти в виде многоуровневой иерархической структуры, как переход к такой структуре памяти позволил максимизировать скорость исполнения программы при той же цене системы.
  • Как связаны многоуровневая организация памяти и программная реализация алгоритма, и как эта связь может влиять на скорость исполнения.
  • Что способствует и что препятствует разбиению программы на части, которые могут выполняться в компьютере одновременно (многоядерная архитектура).
  • Какие структурные изобретения в организации компьютера позволяют максимизировать степень использования процессора в целом и отдельных его блоков....

И многие другие ответы, которые помогут программистам повысить эффективность разрабатываемых ими программ.

 

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


Содержание дисциплины

Тема 1. Базовая структура цифрового компьютера

1.1. Основные понятия электронной цифровой информационной техники

  • Типы данных (операндов) в программировании.
  • Двоичное кодирование в электронной цифровой информационной технике.
  • Операции с элементами данных и комбинационные исполнительные блоки. Электронные элементы с памятью и хранение элементов данных.
  • Структура простейшего тракта цифровой обработки и понятие тактирования в цифровом устройстве.

1.2. Классы цифровых компьютеров и развитие классификации

  • Простейший цифровой компьютер с хранимой программой и его составные части.
  • Процессорный (исполнительный) блок, его назначение и выполняемые функции. Реализация системы команд процессора и расширения АСК.
  • Основная память: адресная организация.
  • Процессорные команды и инструкции языка высокого уровня.
  • Трансляция.
  • Цикл выполнения процессорной команды (кратко)

1.3. Основы организации цифрового процессора

  • Структура команды «в пространстве битов» и экономичное кодирование команды. Структурные способы ускорения выполнения потока команд. Суперскалярность как средство выравнивания времени выполнения микроопераций. Многопоточность.

Практические занятия по Теме 1:

  • Изучение операций с элементами данных
  • Знакомство с комбинационными исполнительными блоками
  • Знакомство со структурой простейшего тракта цифровой обработки

Тема 2. Организация основной памяти и коммуникаций в вычислительном узле

2.1. Адресная организация

  • Соотношение скоростей процессора и памяти.
  • Задержка доступа (Latency, Responce Time) и пропускная способность (ThroughPut, Bandwidth).
  • Уровни иерархии памяти: регистры процессора, КЭШ (многоуровневый), основная память (с адресной организацией), локальная подсистема хранения (диски), сеть.
  • Типовая организация КЭШ как многослойной памяти с ассоциативной выборкой.
  • Основная память: распределение адресов в минимальной вычислительной системе.
  • Основная память: трансляция адресов: отображение адресных пространств друг на друга – для чего и как.
  • Виртуальная память – что это.
  • Механизмы защиты памяти: аппаратная поддержка.
  • Аппаратная поддержка глобальной адресации в многоядерном компьютере с несколькими блоками локальной основной памяти.
  • Проблема обеспечения когерентности памяти в компьютере с глобальной адресацией

2.2. Коммуникационные подсистемы в компьютере

  • Параллельная адресуемая магистраль (шина).
  • Последовательные шины.
  • Причины перехода от параллельных шин к последовательным

2.3. Вычислительный узел

  • Организация подсистемы памяти в ВУ.
  • Глобальная адресация в пределах ВУ и задачи оптимизации кода.
  • Преимущества, недостатки, проблемы, связанные с использованием глобальной адресации.

Практические занятия по Теме 2:

  • Знакомство с адресной организацией
  • Использование коммуникационных подсистем в компьютере
  • Изучение организации подсистемы памяти в ВУ

Тема 3. Типы данных и действия с ними в цифровом компьютере. Организация системы команд

3.1. Целочисленные операнды

  • Двоичная система счисления, ограниченность разрядной сетки и диапазона представимых значений.
  • Знакопеременные целые и дополнительный код.
  • Правила выполнения действий с целыми и набор целочисленных команд обработки в цифровом процессоре.
  • Адреса: числа или не вполне числа?

3.2. Стандарт кодирования чисел плавающей точки

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

3.3. Нечисловые данные

  • Битовые поля: что это?
  • Примеры использования битовых полей.
  • Основные операции с битовыми полями.
  • Поддержка работы с битовыми полями в системе команд процессора.
  • Кодирование текстов. Стандарт Unicode ISO/IEC 10646.
  • Звуковая, видео- и 3D-информация: одномерный либо многомерный массив элементов

Практические занятия по Теме 3:

  • Правила выполнения действий с целыми и набор целочисленных команд обработки в цифровом процессоре
  • Проблемы точности представления и диапазона представимых значений
  • Поддержка работы с битовыми полями в системе команд процессора