Опубликован: 17.03.2025 | Доступ: свободный | Студентов: 0 / 0 | Длительность: 07:30:00
Лекция 7:

Архитектура процессоров


Рис. 7.3.

Другими специфическими особенностями классификации, скорее микроархитектур, можно отнести следующие:

  1. Наличие регистра флагов. Например, в RISC-V отсутствует данный регистр. Применение триггеров различных признаков состояния процессора, таких как переполнение АЛУ, признак (флаг) 0. Данные триггеры объединяются в регистр флагов и применяются при построении схемы управления ветвлениями в процессорах.
  2. Наличие определенного регистра аккумулятора для работы с АЛУ (x86, микроконтроллеры PIC имеют данный регистр).

По системам команд процессоры классифицируются на:

  • безадресные (стековые);
  • одноадресные;
  • двухадресные, например, x86 и ряд RISC процессоров и микроконтроллеров;
  • трехадресные - архитектура RISC-V.

Еще одним видом классификации процессоров является степень параллелизма обработки данных:

1. SISD (Single Instruction, Single Data) - это архитектура, в которой один процессор выполняет одну инструкцию над одним набором данных в один момент времени. Это традиционная модель вычислений, используемая в большинстве обычных процессоров.

Каждый такт процессор выполняет одну инструкцию над одной частью данных, что ограничивает его производительность при обработке больших объемов данных.

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

Преимущества: простота реализации и программирования.

Недостатки: низкая эффективность в сравнении с параллельными архитектурами при выполнении сложных задач.

2. SIMD (Single Instruction, Multiple Data) - это архитектура, в которой одна и та же инструкция применяется одновременно ко многим данным. Это позволяет значительно ускорить выполнение операций над большими массивами данных.

В один момент времени одна инструкция применяется ко всем элементам векторов или массивов. Например, сложение двух векторов чисел.

Применение: широко используется в обработке изображений, машинном обучении, научных вычислениях и т.д.

Преимущества: высокая производительность при обработке больших объемов однотипных данных, эффективное использование ресурсов.

Недостатки: ограниченная гибкость, поскольку не все задачи можно разбить на операции с одинаковыми данными.

3. MIMD (Multiple Instruction, Multiple Data) - это архитектура, в которой несколько процессоров могут выполнять разные инструкции над разными наборами данных одновременно. Это наиболее универсальный тип архитектуры.

Каждый процессор может выполнять свою собственную инструкцию и работать с собственными данными, что позволяет решать разнообразные задачи параллельно.

Применение: используется в многоядерных процессорах, кластерах, распределенных системах и для высокопроизводительных вычислений.

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

Недостатки: более сложная реализация и необходимость в эффективной синхронизации и управлении потоками.

Кратко рассмотрим микроархитектуры процессоров, представленных на рынке.

Процессоры x86

Применяемые в большинстве решений вычислительных машин, процессоры реализованы на так называемой Intel совместимой архитектуре. Данные процессорные решения имеют разную микроархитектуру и совместимы между собой на уровне общих инструкций языка ассемблера. В то же время могут иметь собственные специфические инструкции, описываемые в документации разработчика. На рисунке 7.4 приведена общедоступная структурная схема процессора Intel Pentium [3], совместимость с которым у других производителей была наиболее близкой. На структурной схеме можно выделить следующие блоки:

  1. Bus Interface Unit (блок интерфейса шины) обеспечивает взаимодействие с внешней шиной и кэшом L2.
  2. Instruction Fetch Unit (блок извлечения инструкций) отвечает за извлечение инструкций из памяти.
  3. Instruction Decoder (дешифратор инструкций) декодирует извлеченные инструкции. Данный блок состоит из двух простых и одного сложного дешифраторов, отвечающих за преобразование инструкции в микрокоманды управления.
  4. Branch Target Buffer (буфер адреса перехода) ускоряет выполнение ветвящихся инструкций, обеспечивая быстрый доступ к целевым адресам.
  5. Microinstruction Sequencer (планировщик последовательности микрокоманд) обрабатывает сложные инструкции, которые не могут выполнить составные дешифраторы Instruction Decoder, формируя при этом необходимое количество микрокоманд. При работе с данным блоком активируется Reservation Station.
  6. Register Alias Table (таблица алиасов регистров) управляет именами регистров, чтобы избежать конфликтов при одновременном обращении к двух соседних команд к одному регистру. В данном блоке именные ссылки на регистры преобразуются в адреса 40 физических регистров.
  7. Reservation Station (станция ожидания) хранит инструкции, ожидающие выполнения и освобождения для них ресурсов.
  8. Memory Reorder Buffer (буфер упорядочения памяти) обеспечивает упорядоченное выполнение инструкций в отношении памяти. Пересылает данные в память тогда, когда микроинструкция осуществлявшая запись в память удалена.
  9. Data Cache Unit (блок данных кэша) хранит временные данные для быстрого доступа.
  10. Memory Interface Unit (блок интерфейса памяти) управляет взаимодействием с основной памятью.
  11. Address Generation Unit (блок генерации адресов) генерирует адреса для доступа к памяти.
  12. Integer Execution Unit (управляющий блок целых чисел) выполняет арифметические и логические операции над целыми числами.
  13. Floating-point Execution Unit (управляющий блок с плавающей запятой) отвечает за выполнение операций над числами с плавающей запятой.
  14. Reorder Buffer and Retirement Register File (буфер восстановления последовательности) управляет завершением выполнения инструкций, гарантируя, что они будут выполнены в правильном порядке. Хранит часть микрокоманд, ожидающих исполнения.