Технологии повышения производительности МП

Содержание

Слайд 2

Термины Команда. Микрооперация или микрокоманда. Микропрограмма. Микропрограммный автомат.

Термины

Команда.
Микрооперация или микрокоманда.
Микропрограмма.
Микропрограммный автомат.

Слайд 3

Повышение производительности процессоров Конвейеризация. Суперскаляризация. Увеличение количества исполнительных блоков. Введение принципа

Повышение производительности процессоров

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

команд на уровне процессоров.

В 5-10 раз

более чем в 100 раз

Слайд 4

Архитектура процессоров с параллелизмом уровня команд Как способ повышения производительности процессора

Архитектура процессоров с параллелизмом уровня команд

Как способ повышения производительности процессора

Так было

в начале эры ВС

На каждом такте результат

На каждом такте два результата

Слайд 5

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

Суперконвейеризация

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

задающего генератора
Слайд 6

Оценка производительности идеального конвейера Предположим Твк=20; Тдк=15; Твд=20; Тик=25; Тзр=20; t

Оценка производительности идеального конвейера

Предположим Твк=20; Тдк=15; Твд=20; Тик=25; Тзр=20;
t = 5

– промежуточное время определяемое необходимостью записи промежуточных результатов.
Тогда время такта
Т = max{Твк=20; Тдк=15; Твд=20; Тик=25; Тзр=20} + t = 30
При последовательной обработке время выполнения N команд:
Т посл.= N*(Твк + Тдк + Твд + Тик + Тзр) = 100N
Т конв.= 5*Т+ (N-1) * Т
N=10 Тпосл.=1000 Тконв.=420
N=100 Тпосл.=10000 Тконв.=3120

Идеальный – значит все команды выполняются последовательно
за один такт и процесс состоит из пяти этапов одинаковой длинны.

Слайд 7

Конвейер с точки зрения схемотехники КС RG КС RG КС RG

Конвейер с точки зрения схемотехники

КС

RG

КС

RG

КС

RG

CИ1

CИ2

CИ3

n

Чем проще схемотехника функционального узела, тем быстрее

скорость
вычисления.

F1

F3

F2

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

Слайд 8

Конфликты в конвейере Конфликты – это ситуации при конвейерной обработке, которые

Конфликты в конвейере

Конфликты – это ситуации при конвейерной обработке, которые препятствуют

выполнению очередной команды.
Три группы конфликтов:
- Структурные:
- время выполнения команд разное;
- конфликт обращений к ресурсам;
- По управлению;
- условные и безусловные переходы;
- По данным.
- команда исполняется, а данные не готовы
Слайд 9

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

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

Скорость конвейера определяется скоростью

исполнения самого медленного этапа исполнения команды.

ВК

ДК

ВД

ИК

ЗР

0

0

ВК

ВК

ДК

ДК

ИК

ИК

ИК

ВД

ЗР

ЗР

ВД

ИК

Команда 1

Команда 2

Команда 3

«Пузырь» - время задержки исполнения 3 команды

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

НЕ хватает исполнительных ресурсов для выполнения команды?

ПРИМЕР

Слайд 10

Конвейерная обработка команд суперскалярный процессор Блок выборки команд Блок декодирования Блок

Конвейерная обработка команд суперскалярный процессор

Блок
выборки
команд

Блок
декодирования

Блок
выборки
операндов

АЛУ

АЛУ

Блок
загрузки

Блок
сохранения

Блок
с плавающей
точкой

Блок
возврата

Блок
исполнения

Команды

выполняются с разной
скоростью.

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

Линии конвейера

Слайд 11

Суперскалярный процессор В общем случае суперскалярный процессор может менять порядок выполнения

Суперскалярный процессор

В общем случае суперскалярный процессор может менять порядок
выполнения машинных

команд, заданный в исходном коде программы,
не нарушая логики ее работы.
Слайд 12

Конвейерное исполнение команд Принцип неупорядоченного выполнения команд Блок выборки команд Блок

Конвейерное исполнение команд

Принцип неупорядоченного выполнения
команд

Блок
выборки
команд

Блок
буфера
команд

Буфер
очереди
команд

Блок
выборки
данных

Блок
неупорядоченного
выполнения
команд

Блок
восстановления
последовательности
выполнения
команд

Динамический принцип исполнения команд

Слайд 13

Конфликты по управлению Возникают при конвейеризации команд меняющих значение счетчика команд.

Конфликты по управлению

Возникают при конвейеризации команд меняющих значение счетчика команд.

Метод
выжидания

Метод
«задержанных
переходов»

Метод
предсказания
переходов

Статический

Динамический

R1=R2+R3
If R2=0,

then

Слот задержки

условные

безусловные

Память целевого адреса

Статические – используют компилятор.
Динамические – имеют сложную аппаратную часть.

Останавливается выполнение
команд следующих за переходом,
пока не станет известно направление перехода

1

2

3

Компилятор

Слайд 14

Статическое предсказание переходов Осуществляется на основе некоторой априорной информации о подлежащей

Статическое предсказание переходов

Осуществляется на основе некоторой априорной информации о подлежащей исполнению

программе. Известны следующие стратегии:
- переход происходит всегда;
- переход не происходит никогда;
- предсказание осуществляется по результатам профилирования;
- предсказание определяется кодом операции команды перехода;
- при первом выполнении команды переход происходит всегда. И.т.д.
Слайд 15

Статическое прогнозирование переходов ИСПОЛНЕНИЕ ПО ПРЕДПОЛОЖЕНИЮ При компилировании программы можно создать

Статическое прогнозирование переходов ИСПОЛНЕНИЕ ПО ПРЕДПОЛОЖЕНИЮ

При компилировании программы можно создать граф

предполагаемых ветвлений и задать вероятность направлений в процентах.

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

НЕДОСТАТОК – возможно принятие неправильного решения

Слайд 16

Предикативное выполнение Предикация Блок 1 Блок 2 Блок 3 Блок 5

Предикативное выполнение

Предикация

Блок 1

Блок 2

Блок 3

Блок 5

Блок 4

Блок 6

IN

out

Выполнение команды до

того как станет известно нужна ли она.

1

2

6

4

5

3

Компилятор
анализирует
ветвления и
помечает их
предикатами
(метками - ^)

Устраняет более половины ветвлений

-123 - 34^6 - 35^6 -

Слайд 17

Динамическое предсказание переходов Решение о наиболее вероятном исходе команды перехода принимается

Динамическое предсказание переходов

Решение о наиболее вероятном исходе команды перехода принимается в

ходе вычислений исходя из информации о предшествующих переходах.
Динамические предсказания более точный инструмент
Слайд 18

Динамическое прогнозирование ветвлений Аппаратная реализация таблиц переходов Адрес\Тег перехода Бит перехода

Динамическое прогнозирование ветвлений

Аппаратная реализация таблиц переходов

Адрес\Тег перехода

Бит перехода

Бит достоверности

Целевой адрес

Вариант 1

Вариант

2

к

К-1

К-2

Сдвиговый регистр динамики переходов

Вариант 3

Таблица
переходов

Прогноз – куда пойдет программа при выполнении перехода?

«1» - как раньше
«0» - по другому

ЗАДАЧА – ускорить определение адреса команды, следующей за переходом.

BTB буфер

Счетчик к переходов

1

Слайд 19

Гибридный предиктор Макфарлинга Схема имеет два независимых предиктора, отличающиеся глубиной предыстории

Гибридный предиктор Макфарлинга

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

Счетчик выбора

предиктора

Младшие разряды команды перехода

Слайд 20

Общая схема гибридного предиктора

Общая схема гибридного предиктора

Слайд 21

Опережающее чтение данных Спекулятивное выполнение команды Команда 1 Чтение с опережением

Опережающее чтение данных

Спекулятивное выполнение команды

Команда 1

Чтение
с опережением

Команда
проверки

Команда 9
Обработка

Команда 2

Команда 3
переход

Команда 4

Команда

5

Команда 6

Команда 7

Команда 8
чтение

Компилятор
обнаруживает
чтение

Слайд 22

Выполнение одной команды зависит от результата выполнения другой Конфликты по данным

Выполнение одной команды зависит от результата выполнения другой

Конфликты по данным и

их решение

Конфликт
чтение после
записи (RAW)

Команда 1 R1=R1+R0
Команда 2 R2=R2-R1

Результат R1 готов на 5 такте,
Для команды 2 он должен быть
считан на 4 такте.

Конфликт
запись после
чтения (WAR)

Очередь команд

АЛУ 1

АЛУ 2

Блок записи результата

R1=R1+R0
R0=R0-R2

Команда 2 выполняется
быстрее команды 1

WAR, WAW путем буфера восстановления последовательности команд

Конфликт
запись после
записи (WAW)

R1=R1+R0
R1=R1-R2

1

2

3

Соревнование команд
по записи в R1

Слайд 23

Планирование загрузки конвейера. Переименование регистров МП. Решение конфликтов по данным Базовый

Планирование загрузки конвейера.
Переименование регистров МП.

Решение конфликтов по данным

Базовый
блок 1
программы

2

Команда

N

Компилятором выделяются
участки программы

без
переходов

1

2

3

4

Действие

Запись в R0

Чтение из R0

Чтение из R0

Рабочий регистр

R0 соответствует регистру PHY0

R0 соответствует регистру PHY1

Чтение из PHY1

Запись в R0

Чтение из PHY0

Таблица
отображения
регистров

Слайд 24

Технология динамического исполнения команд Суперскалярность. Предсказание переходов. Неупорядочное исполнение команд. Предварительная

Технология динамического исполнения команд

Суперскалярность.
Предсказание переходов.
Неупорядочное исполнение команд.
Предварительная загрузка данных.
Переименование регистров.
Предикативное исполнение.
Резервирующая

станция.
Восстановление последовательности исполнения команд

Данная технология позволяет увеличить производительность процессора
за счет оптимизации процесса исполнения команд

Слайд 25

Характеристика конвейeров МП Intel и AMD

Характеристика конвейeров МП Intel и AMD

Слайд 26

Технология многократного декодирование команд используя CMS Предекодер Предекодер Предекодер Декодер Исполнительные

Технология многократного декодирование команд используя CMS

Предекодер

Предекодер

Предекодер

Декодер

Исполнительные
блоки

Команды CISC/RISC

Команда VLIW

Микрооперации

Микрооперации

Микрооперации

Исполнительные
блоки

Исполнительные
блоки

Макрооперации

Декодер

Декодер

Команда RISC

Команды VLIW/CISC

Команды

CISC/RISC

Code Morphing software (CMS) – программное обеспечение модификации кодов.
Пример замены аппаратного декодирования программным.

Слайд 27

Технология макрослияния (macrofusion) Макрослияние позволяет объединять типичные пары последовательных команд (например

Технология макрослияния (macrofusion)

Макрослияние позволяет объединять типичные пары последовательных команд (например -

сравнение и условный переход) в одну макрокоманду. И выполнять их в дальнейшем как одну.

5 к.

4 к.

Слайд 28

Технология микрослияния (Micro-op fusion) Команды при декодировании могут использовать одинаковые микрокоманды

Технология микрослияния (Micro-op fusion)

Команды при декодировании могут использовать одинаковые микрокоманды

Технология предусматривает однократный

вызов микрокоманды для
разных команд. Технология позволяет уменьшить общее количество
одновременно вызываемых микрокоманд до 10 %.

Технология применяется только в потоковых процессорах

Слайд 29

Технология резервирующей станции Команды выполняются с разным быстродействием. Команды могут зависеть

Технология резервирующей станции

Команды выполняются с разным быстродействием.
Команды могут зависеть друг от

друга.
Командам могут требоваться одинаковые ресурсы для исполнения.
Командам при выполнении необходимо обращение к памяти.
Слайд 30

Микроархитектура Pentium2 Устройство сопряжения с шиной Кэш первого уровня для команд

Микроархитектура Pentium2

Устройство сопряжения с шиной

Кэш первого
уровня для
команд

Кэш первого
уровня для
данных

Блок вызова
декодирования

Блок
отправки
выполнения

Блок
возврата

Задатчик
последовательности
микроопераций

Локальная шина

с мостом PCI

Связь с кэш второго уровня

Необходим
для обеспечения
завершения
спекулятивного
выполнения

3 линии конвейера по 14 ступеней

Слайд 31

Микроархитектура Pentium2 блок вызова декодирования Кэш первого уровня для команд Блок

Микроархитектура Pentium2 блок вызова декодирования

Кэш первого уровня для команд

Блок выбора строк кэш

Декодер

длины команд

Блок выравнивания команд

Блок формирования
очереди микроопераций

Следующий IP

Устройство динамического
прогнозирования перехода

Задатчик последовательности
микроопераций ПЗУ

Устройство статического
Прогнозирования перехода

Распределитель регистров

0

2

1

IFU0

IFU1

IFU2

ID0

ID1

RAT

ROB

Микрооперации

Стадии
конвейера

Декодер простых
команд

Переход назад возможен
вперед нет

Слайд 32

Микроархитектура Pentium2 блок отправки\выполнения Очередь микрокоманд 20 РЕЗЕРВАЦИЯ Блок выполнения операций

Микроархитектура Pentium2 блок отправки\выполнения

Очередь
микрокоманд
20
РЕЗЕРВАЦИЯ

Блок
выполнения
операций
с целыми
числами

Блок
выполнения
операций
с вещественными
числами

Блок
выполнения
команд ММХ

Блок загрузки

Блок сохранения

Блок

сохранения

Порт 0

Порт 1

Порт 2

Порт 3

Порт 4

ROB

Блок
выполнения
команд ММХ

Блок
выполнения
операций
с вещественными
числами

Блок
выполнения
операций
с целыми
числами

За 1 цикл на
исполнение можно
отправить 5 микроопераций

Решает задачу выполнения очередности микрокоманд и разрешает конфликты ресурсов

Слайд 33

Микроархитектура Pentium2 блок возврата Отвечает: - за отправку результатов в регистры

Микроархитектура Pentium2 блок возврата

Отвечает:
- за отправку результатов в регистры или устройства,

которым они требуются.
- контроль возврата после спекулятивного исполнения ( отбрасываются результаты микрокоманд, которые в дальнейшем не нужны).
- временное хранение результатов исполнения микрокоманд.
Слайд 34

Пример конвейера AMD K8 часть1

Пример конвейера AMD K8 часть1

Слайд 35

Пример конвейера AMD K8 часть 2

Пример конвейера AMD K8 часть 2

Слайд 36

Проблемы суперскальных МП Простои конвейеров из-за нерегулярной загрузки функциональных устройств МП.

Проблемы суперскальных МП

Простои конвейеров из-за нерегулярной загрузки функциональных устройств МП.
Наличие одного

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

Мультитрейдовые микропроцессоры Тред – вычислительный процесс обслуживаемый отдельным набором регистров. Однотрейдовый

Мультитрейдовые микропроцессоры

Тред – вычислительный процесс обслуживаемый отдельным набором регистров.
Однотрейдовый микропроцессор –

имеет один счетчик команд.
Мультитрейдовый МП – выполняет одновременно несколько процессов и решает проблему простоя функциональных устройств из за невозможности выполнить следующую команду.
Трейдом может быть как команда так и последовательность команд.
Слайд 38

Принцип работы мультитрейдовой архитектуры Тред 1 Тред 2 Тред N Память

Принцип работы мультитрейдовой архитектуры

Тред 1

Тред 2

Тред N

Память

Коммутатор

M

тактов

Планировщик - выделяет трейды

Переключение
на следующий


трейд происходит
принудительно или
при наступлении
простоя процессора

Xeon
Pentium 4
2 трейда

ЦП1

ЦП2

ЦПN

2 второй вариант
мультитрейда

Кольцевая загрузка регистров

Возникают проблемы
согласованности работы трейдов с памятью

Возможен
мультипрограммный
режим

Слайд 39

Технология Hyper-Threading Реализуется идея разделения времени на аппаратном уровне Задача 1

Технология Hyper-Threading

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

Задача 1

Задача 1

АЛУ

Регистры

Управление

Кэш данных

Кэш

команд

Кэш L2

Слайд 40

Технология Hyper-Threading

Технология Hyper-Threading

Слайд 41

Itanium Использование сложных команд переменной длины, обрабатываемых последовательно Использование простых команд

Itanium

Использование сложных команд
переменной длины, обрабатываемых
последовательно

Использование простых команд
одинаковой длины, сгруппированных в


связки VLIW

IA-32

IA-64

Переупорядочивание и оптимизация
команд в процессе выполнения

Переупорядочивание и оптимизация
в процессе компиляции

Попытки предсказания переходов
аппаратно

Загрузка данных по мере необходимости,
первым проверяя кэш

Параллельное выполнение
последовательностей команд без
предсказания переходов

Загрузка данных прежде, чем
они потребуются и кэш тоже

IA-64 первый компромисс между CISC и RISC. 2 режима декодирования команд VLIW и CISC c автоматическим переключением.

Основные отличия архитектур IA-32 и IA-64

Слайд 42

Этапы развития структур МП по системам команд CISC RISC VLIW VLIW

Этапы развития структур МП по системам команд

CISC

RISC

VLIW

VLIW
EPIC

Внешние команды CISC

ядро

компилятор

ядро

Аппаратная оптимизация процесса

Программная

и аппаратная

оптимизация процесса

компилятор

Причина перехода
к многоядерности

Исчерпана возможность повышения
производительности за счет повышения частоты? НЕТ – Явный параллелизм вычислений!!!

Общая шина - до 32 процессоров. При большем количестве ядер система
снижает производительность

1971

2000

2013

Слайд 43

Синтез команд для процессоров VLIW Задача эффективного планирования параллельных вычислений команд

Синтез команд для процессоров VLIW

Задача эффективного планирования параллельных вычислений команд возлагается

на «разумный» компилятор Code Morphing software (CMS).

Анализ программы

Выявление команд RISC,
которые могут быть выполнены
одновременно и без конфликтов

Объединение связок команд
в одну длинную команду

Правила формирование
команды VLIW

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

2. Простые команды должны
загружать все исполнительные
блоки процессора

Исполнение VLIW

Слайд 44

Формат связки команд Компилятор формирует связки команд длинной 128 бит. Itanium

Формат связки команд

Компилятор формирует связки команд длинной 128 бит.

Itanium

Маска 8р.

Команда 1

Команда

2

Команда 3

0

127

Определяет возможность параллельного выполнения команд.

ВАРИАНТЫ СВЯЗОК

К1 !! К2 !! К3
К1 & К2 !! К3
К1 !! К2 & К3
К1 & К2 & К3

2. ФОРМАТ КОМАНДЫ 40 бит

Код операции
13 бит

Поле
предиката 6 бит

Поле
Идентификации РОН

ПИ РОН

ПИ РОН

1.

7 бит

Слайд 45

Взаимосвязь полей команды VLIW с исполнительными блоками До 128 байт Статическая

Взаимосвязь полей команды VLIW с исполнительными блоками

До 128 байт

Статическая суперскалярная архитектура

– одно из названий VLIW процессоров

Команда

Исполнительные блоки