Различия между версиями 5 и 6
Версия 5 от 2019-02-11 23:20:50
Размер: 6109
Редактор: FrBrGeorge
Комментарий:
Версия 6 от 2019-02-12 00:00:46
Размер: 8318
Редактор: FrBrGeorge
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 47: Строка 47:
   * + отсутствие дублирующих инструкций (см. далее относительно псевдоинструкций),    * + отсутствие дублирующих инструкций, псевдоинструкции
Строка 52: Строка 52:
  * Организация системы команд:
   * '''TODO'''
   * удобство чтения/написания инструкций ассемблера и ''неудобство'' чтения машинного кода человеком (упаковка битов, псевдоинструкции и т. п.)
   * т. н. исключения — нормальное состояние программы, а не ошибка
  * Организация системы команд MIPS32:
   * (''на лекции '''не''' перечисляются все команды, даются только примеры, подбор команд по таблице — это ДЗ'')
   * 32 регистра общего назначения, доступа к специализированных регистрами ''нет'' (в т. ч. нет регистра флагов!)
   * 3 базовых типа команд (с 26-битной частью адреса, с 16-битной и безадресные)
   * знаковая и беззнаковая арифметика; регистры LO/HI для умножения/деления; побитовые операции
   * условная пересылка и сравнение
   * работа с памятью (в т. ч. псевдоинструкции типа `li`)
   * переходы
  * Пример программ для Mars
 1. Работа с линейной моделью памяти
  * Понятие о конвенциях. Конвенция по использованию регистров.
  * Линейная модель памяти MARS
  * Метки в коде программы на языке ассемблера
  * Директивы ассемблера по размещению данных, выравнивание
  * '''TODO'''
----
 1. Стек и подпрограмммы, конвенции на этот счёт
 1. Системные вызовы и исключения
 1. Математический сопроцессор
 1. Прерывания, MMIO и внешние устройства
 1. Кэш
 1. Конвейер
 1. Возможности ассемблера: директивы, макросы, многофайловая сборка
 1. Моделирование структкр данных

Архитектура и Ассемблер MIPS

Описание

Название
Архитектура и ассемблер процессоров MIPS
  • Расширенный курс: Особенности архитектуры и программирования MIPS-процессоров
Title
MIPS systems architecture and assembler
  • MIPS processor programming and architecture features
Аннотация
Архитектура процессоров MIPS — пожалуй, наиболее стройная и понятная из всех ныне действующих распространённых архитектур вычислительных систем. В курсе прослеживается связь между конкретной организацией процессора и общими принципами построения вычислительных систем. Планируется решение задач на языке ассемблера с последующей проверкой в системе EJudge. В учебном процессе используются как эмуляторы, так и полноценные системы на базе микропроцессоров семейства «Байкал-Т».
Annotation
MIPS is probably the most coherent ISA among the current popular architectures, so we use it to illustrate basic principles of computational systems. Course practice includes assembly language programming with automatic EJudge checking and involves both emulators and real Baikal-T hardware.
Требования к уровню знаний слушателей
Дискретная математика в объёме первого курса бакалавриата ВМК МГУ.

Тематический план курса

  1. Введение:
    • Требования к алгоритмически полному вычислителю
    • Превращение вычислительного прибора в ЭВМ
      • хранение данных и инструкций в памяти
      • адрес как способ референции данных и инструкций
      • последовательное выполнение инструкций
      • подмена адреса следующей инструкции для организации условных и итеративных вычислений
    • ⇒ Архитектура фон Неймана как исторический казус
    • Общий принцип развития ЭВМ:
      1. появление новой задачи,
      2. победа одного-двух частных решений этой задачи,
      3. «канонизация» этих решений (legacy).
    • (!) Установка и работа с MARS

    • Понятие о машинном коде и языке ассемблера. Достоинства языка ассемблера:
      • Мнемоничность команд
      • Двухпроходное вычисление меток
      • Удобное представление данных
      • Макро, многофайловая сборка, библиотеки и пр.
  2. Общая структура системы команд MIPS.
    • Принципы RISC:
      • отсутствие вычислительно сложных инструкций,
      • фиксированная длина инструкции,
      • большое количество регистров общего назначения,
      • ограничения на работу непосредственно с оперативной памятью как с медленным устройством
    • …и их реализация в MIPS:
      • + отсутствие дублирующих инструкций, псевдоинструкции
      • + трёхадресность,
      • + разделение памяти данных и команд,
      • + оптимизация под конвейер (см. далее)
      • удобство чтения/написания инструкций ассемблера и неудобство чтения машинного кода человеком (упаковка битов, псевдоинструкции и т. п.)

      • т. н. исключения — нормальное состояние программы, а не ошибка
    • Организация системы команд MIPS32:
      • (на лекции не перечисляются все команды, даются только примеры, подбор команд по таблице — это ДЗ)

      • 32 регистра общего назначения, доступа к специализированных регистрами нет (в т. ч. нет регистра флагов!)

      • 3 базовых типа команд (с 26-битной частью адреса, с 16-битной и безадресные)
      • знаковая и беззнаковая арифметика; регистры LO/HI для умножения/деления; побитовые операции
      • условная пересылка и сравнение
      • работа с памятью (в т. ч. псевдоинструкции типа li)

      • переходы
    • Пример программ для Mars
  3. Работа с линейной моделью памяти
    • Понятие о конвенциях. Конвенция по использованию регистров.
    • Линейная модель памяти MARS
    • Метки в коде программы на языке ассемблера
    • Директивы ассемблера по размещению данных, выравнивание
    • TODO


  1. Стек и подпрограмммы, конвенции на этот счёт
  2. Системные вызовы и исключения
  3. Математический сопроцессор
  4. Прерывания, MMIO и внешние устройства
  5. Кэш
  6. Конвейер
  7. Возможности ассемблера: директивы, макросы, многофайловая сборка
  8. Моделирование структкр данных

Материалы

Ссылки


CategoryLectures

LecturesCMC/ArchitectureAssembler2019 (последним исправлял пользователь FrBrGeorge 2019-10-09 11:35:30)