Нижегородский государственный университет им. Н.И.Лобачевского Факультет Вычислительной математики и кибернетики

Архитектура от до Phi: процессоры, производительность, энергопотребление

Линёв А.В. 2014 Нижний Новгород Содержание  Эволюция архитектур центральных процессоров.  История появления новых концепций и их реализации в процессорах архитектур Intel.  Изменения основных характеристик процессоров.  Современные направления развития архитектуры процессоров.

Нижний Новгород Архитектура Intel от i386 до : процессоры, 2014 производительность, энергопотребление 2 из 66 Архитектура и микроархитектура CPU Фон Неймановская модель компьютера  Разделение программируемой вычислительной машины на компоненты:  Центральный обрабатывающий блок (, CPU)  блок управления (Control Unit ) (декодирование инструкций, порядок операций)  тракт данных (Datapath) (регистры, арифметико-логическое устройство, шины)  Память: Хранение инструкций и их операндов  Подсистема ввода/вывода (Input/Output, I/O sub- system): шина I/O, интерфейсы, устройства  Концепция хранения программ: Инструкции из набора команд выбираются из общей памяти и исполняются последовательно

Нижний Новгород Архитектура Intel от i386 до Xeon Phi: процессоры, 2014 производительность, энергопотребление 4 из 66 Фон Неймановская модель компьютера

Компьютерная CPU I/O Devices система Control Memory Datapath Input Registers, (instructions, ALU, buses data) Главное ограничение производительности CPU: фон- Одно из ограничений Неймановская модель вычислений Output производительности: подразумевает последовательное общая память команд и исполнение инструкций по одной данных (потенциальное «узкое место»)

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

Нижний Новгород Архитектура Intel от i386 до Xeon Phi: процессоры, 2014 производительность, энергопотребление 5 из 66 Шаги обработки инструкций в CPU

Выборка Выбрать инструкцию программы из памяти инструкции Программный счетчик (Program Counter, PC / Instruction Pointer, IP) указывает на следующую для обработки инструкцию

Декодирование Определить требуемые действия и размер инструкции инструкции

Выборка операндов Найти и получить данные операндов

Исполнение Вычислить значение результата или статус

Сохранение Записать результаты в запоминающее устройство результатов для последующего использования Главное ограничение производительности CPU: фон- Неймановская модель вычислений подразумевает последовательное исполнение инструкций по одной

Нижний Новгород Архитектура Intel от i386 до Xeon Phi: процессоры, 2014 производительность, энергопотребление 6 из 66

 Первый в мире процессор общего назначения  1971 г.  740 кГц  0,06 MIPS  2250 транзис- торов  12 мм2  10 мкм техпроцесс http://ru.wikipedia.org/wiki/Intel_4004

Нижний Новгород Архитектура Intel от i386 до Xeon Phi: процессоры, 2014 производительность, энергопотребление 7 из 66 Характеристики процессоров

Процессор 4004 Год выпуска 1971 Тактовая частота 740 кГц Производительность (MIPS) 0,06 Количество транзисторов 2250 Площадь кристалла (кв.мм) 12 Техпроцесс 10 мкм

Нижний Новгород Архитектура Intel от i386 до Xeon Phi: процессоры, 2014 производительность, энергопотребление 8 из 66 , 8080

 Intel 8008 (1972)  Первый 8-битный процессор  Тактовая частота – 500 (800) кГц  Производительность – 0,05 MIPS  Количество транзисторов – 3500  Техпроцесс – 10 мкм  Поддержка прерываний  (1974)  Тактовая частота – 2 (2.5, 3) МГц  Производительность – 0,64 MIPS  Количество транзисторов – 6000  Техпроцесс – 6 мкм  Порты ввода/вывода, Stack Pointer

Нижний Новгород Архитектура Intel от i386 до Xeon Phi: процессоры, 2014 производительность, энергопотребление 9 из 66

Intel 8086/87

(1978)  Первый процессор архитектуры  Тактовая частота – 4 (10) МГц  Производительность – 0,33 (0,75) MIPS  Количество транзисторов – 29 000  Площадь кристалла – 33 кв.мм  Техпроцесс – 3 мкм  Потребляемая мощность – 0,65 Вт  Тепловыделение – 1,75 Вт  Intel 8087 (1980)  Математический сопроцессор  Производительность – ~50 000 FLOPS  Количество транзисторов – 45 000  Техпроцесс – 3 мкм  Потребляемая мощность – 2,4 Вт

Нижний Новгород Архитектура Intel от i386 до Xeon Phi: процессоры, 2014 производительность, энергопотребление 10 из 66 http://faculty.etsu.edu/tarnoff/ntes2150/uproc/arch8088.htm

Нижний Новгород Архитектура Intel от i386 до Xeon Phi: процессоры, 2014 производительность, энергопотребление 11 из 66 Конвейер команд…

 Конвейерная обработка инструкций – это метод реализации CPU, при котором множество операции над несколькими инструкциями перекрываются.  Конвейерная обработка инструкций использует программный параллелизм уровня инструкций (Instruction- Level Parallelism, ILP)  Конвейеризация увеличивает пропускную способность CPU - среднее число инструкций, завершенных за такт.  В идеальном случае происходит завершение одной инструкции за машинный такт  Конвейеризация не сокращает время выполнения отдельной инструкции (также называемое временем задержки завершения инструкции).  Минимальное время задержки завершения инструкции - n тактов, где n – число ступеней конвейера  Конвейер, описанный здесь, называется упорядоченным (in-order) конвейером так как инструкции обрабатываются или исполняются в порядке, указанном в исходной программе

Нижний Новгород Архитектура Intel от i386 до Xeon Phi: процессоры, 2014 производительность, энергопотребление 12 из 66 Однопортовый конвейер MIPS с упорядоченной обработкой целочисленных операций

Число тактов до заполнения = время разгона = число ступеней -1

Номер такта Номер инструкции 1 2 3 4 5 6 7 8 9 Время в тактах

Инструкция I IF ID EX MEM WB Первая инструкция, I Инструкция I+1 IF ID EX MEM WB завершена Инструкция I+2 IF ID EX MEM WB Инструкция I+3 IF ID EX MEM WB Инструкция I +4 IF ID EX MEM WB

Время разгона = 4 такта

Последняя инструкция, Ступени конвейера MIPS: I+4 завершена

IF = Выборка инструкции (Instruction Fetch) ID = Декодирование инструкции (Instruction Decode) EX = Исполнение (Execution) MEM = Обращение к памяти (Memory Access) WB = Запись результата (Write Back)

Нижний Новгород Архитектура Intel от i386 до Xeon Phi: процессоры, 2014 производительность, энергопотребление 13 из 66

 Intel 80286 (1982)  Тактовая частота – 6 (12,5) МГц  Производительность – 0,9 (2,66) MIPS  Количество транзисторов – 134 000  Площадь кристалла – 49 кв.мм  Техпроцесс – 1,5 мкм  0.21 Instructions Per Clock  Конвейер команд (длина - 4)  Защищенный режим  Linear Memory Management Unit (MMU)  Intel 80287 (1983)  Математический сопроцессор  Производительность – ~65 000 FLOPS

Нижний Новгород Архитектура Intel от i386 до Xeon Phi: процессоры, 2014 производительность, энергопотребление 14 из 66 Intel 80286

http://en.wikipedia.org/wiki/File:Intel_i80286_arch.svg

Нижний Новгород Архитектура Intel от i386 до Xeon Phi: процессоры, 2014 производительность, энергопотребление 15 из 66 Intel 80386

 Intel 80386DX (1985) Тактовая частота – 12 (33) МГц Производительность – 5 (11,4) MIPS Количество транзисторов – 275 000 Площадь кристалла – 104 (39) кв.мм Техпроцесс – 1,5 (1) мкм Страничное преобразование Аппаратная отладка Встроенный математический сопроцессор 80387  Производительность – ~300 000 FLOPS

Нижний Новгород Архитектура Intel от i386 до Xeon Phi: процессоры, 2014 производительность, энергопотребление 16 из 66 Intel 80386

http://en.wikipedia.org/wiki/File:80386DX_arch.png

Нижний Новгород Архитектура Intel от i386 до Xeon Phi: процессоры, 2014 производительность, энергопотребление 17 из 66 Страничная адресация Управляющий Виртуальное Регистр Адресное Таблица страниц Пространство RAM MAX Physical frame number N MAX (4 Гб) … Physical frame number 1 Physical frame number 0

0 HDD

0 Позволяет организовывать ВАП большого размера с линейной адресацией на основе разрывных блоков физической памяти

Нижний Новгород 2013 Архитектура Intel Xeon Phi 18 из 45 Конвейер команд – Конфликты

 Структурные конфликты  Возникают из-за недостатков аппаратных ресурсов когда доступное аппаратное обеспечение не в состоянии поддерживать все возможные комбинации инструкций  Конфликты данных  Возникают когда инструкция зависит от результата выполнения предыдущей инструкции так, что это проявляется при перекрытии инструкций в конвейере  Конфликты управления  Возникают при конвейеризации условных переходов и других инструкций, которые изменяют PC

Нижний Новгород Архитектура Intel от i386 до Xeon Phi: процессоры, 2014 производительность, энергопотребление 19 из 66 Единая разделяемая память для инструкций и данных

Процессор с блоком памяти, вызывающим структурные конфликты В машине с единственным портом памяти будет возникать конфликт при любом обращении к памяти.

Нижний Новгород Архитектура Intel от i386 до Xeon Phi: процессоры, 2014 производительность, энергопотребление 20 из 66 Единая разделяемая память для данных и инструкций

Разрешение структурного конфликта при помощи тактов простоя Структурный конфликт приводит к необходимости вставки «пузырей» в конвейер.

Нижний Новгород Архитектура Intel от i386 до Xeon Phi: процессоры, 2014 производительность, энергопотребление 21 из 66 Многотактовый конвейер вещественных операций

Задержка = 6 Целочисленный блок (Задержка= 0 Период запуска = 1) Конфликты: Период запуска = 1 RAW, WAW Конвейеризуемое возможны WAR невозможен Структурные: Вещественное (FP)/целочисленное умножение возможны Управления: возможны

EX IF ID FP сумматор MEM WB

Задержка = 3 FP/целочисленное деление Период запуска = 1 Задержка = 24 Конвейеризуемое Период запуска = 25 Неконвейеризуемое

Однопортовый конвейер MIPS с упорядоченной обработкой и поддержкой FP Супер-конвейерный CPU: Конвейерный CPU с конвейеризуемыми FP блоками

Нижний Новгород Архитектура Intel от i386 до Xeon Phi: процессоры, 2014 производительность, энергопотребление 22 из 66 Latency Throughput Latency Throughput DisplayFamily_DisplayModel 06_2AH, 06_2AH, 06_3AH 06_3AH 06_2DH 06_2DH VMOVDDUP ymm1, ymm2 1 1

VMULPD/PS ymm1, ymm2, ymm3 5 1

VSUBPD/PS ymm1, ymm2, imm 3 1

VDIVPD ymm1, ymm2, ymm3 35 45 28 44

VDIVPS ymm1, ymm2, ymm3 21 29 14 28

VSQRTPD ymm1, ymm2 35 45 28 44

VMULPD/PS ymm1, ymm2, ymm3 5 1

VRSQRTPS ymm1, ymm2 7 1

FSQRT EP 43 FPU

F2XM1 90-150 X87 FPU

FCOS 190-240 X87 FPU FPATAN 150-300 X87 FPU

Нижний Новгород Архитектура Intel от i386 до Xeon Phi: процессоры, 2014 производительность, энергопотребление 23 из 66 Конфликты данных I (Write) I (Read) I .. разделяемый разделяемый операнд .. операнд

J J (Write) J (Read) Порядок в Write after Read (WAR) программе Read after Write (RAW) I (Write) I (Read)

разделяемый разделяемый операнд операнд J (Read) J (Write) Read after Read (RAR) Write after Write (WAW) нет конфликта Нижний Новгород Архитектура Intel от i386 до Xeon Phi: процессоры, 2014 производительность, энергопотребление 24 из 66 1

2

3

4 Пример

конфликта данных 5

Использование результата инструкции DADD в инструкциях 2-4 вызывает конфликт данных: пока не выполнится запись в регистр, эти инструкции не смогут его прочитать.

Нижний Новгород Архитектура Intel от i386 до Xeon Phi: процессоры, 2014 производительность, энергопотребление 25 из 66 Конфликт данных, требующий простоя (Простой+пересылка)

Блокировка при загрузке приводит к необходимости вставки «пузыря» на такте 4, задерживая инструкцию SUB и следующие за ней на 1 такт

Нижний Новгород Архитектура Intel от i386 до Xeon Phi: процессоры, 2014 производительность, энергопотребление 26 из 66 Конфликты управления При выполнении условного перехода, может измениться PC что, если не принять специальных мер, ведет к остановке конвейера на много тактов, пока не будет вычислено условие перехода (переход определится).  Иначе PC может быть неверным, когда потребуется на ступени IF. В рассматриваемом конвейере MIPS, условный переход определится на ступени 4 (MEM), приводя к трем тактам простоя, как показано ниже:

Branch instruction IF ID EX MEM WB Branch successor stall stall stall IF ID EX MEM WB Branch successor + 1 IF ID EX MEM WB Branch successor + 2 IF ID EX MEM Branch successor + 3 IF ID

3 такта простоя = Здесь известен корректный PC = потери из-за перехода (конец ступени/такта MEM) Предположим, что мы останавливаем или сбрасываем конвейер при инструкции перехода, тогда в рассматриваемом конвейере MIPS, тратится впустую три такта для каждого перехода. Потери из-за перехода = номер ступени, когда переход определится - 1 здесь потери = 4 - 1 = 3 такта

Нижний Новгород Архитектура Intel от i386 до Xeon Phi: процессоры, 2014 производительность, энергопотребление 27 из 66 Конвейерная обработка данных и использование параллелизма уровня инструкций(ILP)

 Параллелизм уровня инструкций (ILP) существует, когда инструкции в последовательности независимы и поэтому могут исполняться в конвейере параллельно (с перекрытием).  Конвейерная обработка повышает производительность именно за счет перекрытия при исполнении независимых инструкций и таким образом использует ILP кода.  Программы, обладающие большим ILP (меньше зависимостей) обычно показывают лучшую производительность на CPU с конвейером

Нижний Новгород Архитектура Intel от i386 до Xeon Phi: процессоры, 2014 производительность, энергопотребление 28 из 66 Пример статического планирования инструкций компилятором Для последовательности кода: a = b + c a, b, c, d ,e, и f d = e - f находятся в памяти Считая, что загрузки занимают один такт, следующий код (планирование конвейера компилятором) исключает простои: Исходный код с простоями: Перепланированный код без простоев: LD Rb,b LD Rb,b LD Rc,c простой LD Rc,c DADD Ra,Rb,Rc LD Re,e SD Ra,a DADD Ra,Rb,Rc LD Re,e LD Rf,f простой LD Rf,f SD Ra,a DSUB Rd,Re,Rf DSUB Rd,Re,Rf SD Rd,d SD Rd,d 2 простоя в исходном коде Предполагается, что конвейер поддерживает пересылку

Нижний Новгород Архитектура Intel от i386 до Xeon Phi: процессоры, 2014 производительность, энергопотребление 29 из 66 Статическое предсказание переходов компилятором  Статическое предсказание переходов кодируется в инструкциях перехода используя один бит предсказания: 0 = не происходит, 1 = происходит  Требует поддержки ISA  Существует два основных метода для статического предсказания переходов во время компиляции:  Сбор информации о поведении программы при ее запусках и использование при перекомпиляции (профилирование).  Например, профиль программы может показать, что большинство переходов вперед и назад (это часто вызвано циклами) происходят. Простейшая схема в данном случае - всегда предсказывать, что переход происходит.  Эвристическое предсказание переходов на основе направления перехода, помечая переходы назад как происходящие и переходы вперед как не происходящие

Нижний Новгород Архитектура Intel от i386 до Xeon Phi: процессоры, 2014 производительность, энергопотребление 30 из 66 Предсказание переходов компилятором на основе профиля Доля неправильных предсказаний для SPEC92

Целочисленные Вещественные _ Среднее 15% Среднее 9% => содержат больше циклов Доля неправильных для предсказаний, основанных на профиле, широко варьируется, но обычно лучше для программ с FP, которые имеют среднюю долю неправильных предсказаний в 9 % со стандартным отклонением в 4%, чем для программ с целочисленными операциями, которые имеют среднюю долю неправильных предсказаний в 15 % со стандартным отклонением в 5%.

Нижний Новгород Архитектура Intel от i386 до Xeon Phi: процессоры, 2014 производительность, энергопотребление 31 из 66 Стандартные подходы и механизмы для повышения ILP  Статическое планирование (компилятор)  (Очень) длинное командное слово (V)LIW  Статическое предсказание переходов компилятором

 Динамическое планирование (CPU)  Динамическое предсказание переходов в CPU и спекулятивное выполнение  SMT (Simultaneous Multi-Threading)

Нижний Новгород Архитектура Intel от i386 до Xeon Phi: процессоры, 2014 производительность, энергопотребление 32 из 66 Intel 80486

 Intel 80486DX (1989)  Тактовая частота – 25 (50) МГц  Производительность – 20 (41) MIPS  Количество транзисторов – 1,185 млн.  Площадь кристалла – 81 (67) кв.мм  Техпроцесс – 1 (0,8) мкм  Длина конвейера – 5  Встроенный математический сопроцессор  Производительность – ~1,44 MFLOPS  Кеш  L1: 8 Кбайт  L2: на материнской плате  4-канальная наборно-ассоциативная архитектура  Тепловыделение 4,73 Вт  Желательно внешнее охлаждение Рисунок: http://people.apache.org/~xli/presentations/history_Intel_CPU.pdf

Нижний Новгород Архитектура Intel от i386 до Xeon Phi: процессоры, 2014 производительность, энергопотребление 33 из 66 http://commons.wikimedia.org/wiki/File:80486DX2_arch.png?uselang=ru

Нижний Новгород Архитектура Intel от i386 до Xeon Phi: процессоры, 2014 производительность, энергопотребление 34 из 66 Intel 80486 – иерархия памяти

http://commons.wikimedia.org/wiki/File:Intel486_Иерархия_Памяти.png?uselang=ru

Нижний Новгород Архитектура Intel от i386 до Xeon Phi: процессоры, 2014 производительность, энергопотребление 35 из 66 Иерархия памяти

Внутр. регистры Быстрее общего назначения CPU доступ ISA 16-128 Дальше от ЦП:

Один или более уровней (SRAM): Регистры Меньше цена

1: внутр. 16-128K Больше емкость 2: внутр. 256K-16M Кэш Больше задержки 3: внутр. или внеш. 1M-36M Меньше Динамическая память пропускная (DRAM) 256M-64G Основная память способность

Интерфейсы: SCSI, RAID, Жесткий диск IDE, 1394 (Виртуальная память) 10киGb - 1цыPb Оптические диски или магнитная лента

Нижний Новгород Архитектура Intel от i386 до Xeon Phi: процессоры, 2014 производительность, энергопотребление 36 из 66 Разрыв между временем доступа к памяти и временем такта ЦП ЦП 1000 CPU

60%/год

100 Процессор-память. Разница в скорости (прирост 50% в год) 10 Память

DRAM 7%/год

1

Производительность

1980 1982 1984 1986 1988 1990 1992 1994 1996 1998 2000 Идеальное время доступа к памяти = 1 такт ЦП Реальное время доступа к памяти >> 1 такт ЦП

Нижний Новгород Архитектура Intel от i386 до Xeon Phi: процессоры, 2014 производительность, энергопотребление 37 из 66 Ivy bridge

Latency Bandwidth Size

SRAM (L1, L2, 1-2ns 200GBps 1-20MB L3) DRAM 70ns 20GBps 1-20GB (memory) Flash (disk) 70-90µs 200MBps 100- 1000GB HDD (disk) 10ms 1-150MBps 500- 3000GB

Нижний Новгород Архитектура Intel от i386 до Xeon Phi: процессоры, 2014 производительность, энергопотребление 38 из 66 Базовая модель кэша  Q1: Как можно разместить блок в кеше? (Политика размещения блоков и организация кэша)  Полностью ассоциативный, наборно-ассоциативный, кэш с прямым отображением.  Q2: Как проверяется наличие блока в кэше (попадание/промах)? (Идентификация блока)  Сравнение тегов.  Q3: Какой блок должен быть заменен в случае промаха? (Алгоритм замещения блока)  Случайный, LRU, FIFO.  Q4: Что происходит при записи? (Политика записи кэша)  Write through, write back.

Нижний Новгород Архитектура Intel от i386 до Xeon Phi: процессоры, 2014 производительность, энергопотребление 39 из 66 Кэш прямого отображения N блоков памяти могут проецироваться только на одну позицию в кэше. Если код требует доступа к 2 или более блокам проецирующимся на одну позицию кэша, то возникает конфликт и блоки поочередно вытесняют друг друга. (Адрес блока) MOD (Число блоков в кэше)

Пример:

Для каждой строки

0

0 1 0 1

1 0

0

0

0 1 1

0 1

1

0 0 0 0 1 (Адрес блока) MOD (8) 1 кэша нужно хранить:

V Имеем кэш из 8 строк. Кэш Тег Данные Объем памяти в 4 раза больше, то есть 4 блока памяти могут конкурировать 29-й блок за «честь» попасть в строку кэша.

29 MOD 8 = 5 (11101) MOD (1000) = 101

То есть 29-й блок памяти проецируется на 5-ю строку кеша. 0 0 0 0 1 0 0 1 0 1 0 1 0 0 1 0 1 1 0 1 1 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 1 1 0 1

Нижний Новгород Архитектура Intel от i386 до Xeon Phi: процессоры,Память 2014 производительность, энергопотребление 40 из 66 Способы организации кэш-памяти Рассмотрим варианты организации кэша из 8-ми строк. Для каждой строки кэша нужно хранить: V Тег Данные

№ № № строки Tag Data набора Tag Data Tag Data набора Tag Data Tag Data Tag Data Tag Data 0 0 0 1 1 1 2 2 4-way set associative: 3 3 4 строки в наборе 4 2-way set associative: 5 2 строки в наборе 6 7 В наборно-ассоциативном кэше меньше промахов в 1-way set associative: результате уменьшения числа конфликтов между (direct mapped) блоками, которые были бы спроецированы в одну и ту 1 строка в наборе же строку в кэше прямого отображения.

Tag Data Tag Data Tag Data Tag Data Tag Data Tag Data Tag Data Tag Data

8-way set associative: 8 строк в наборе Кэш превратился в полностью ассоциативный, поскольку общее количество строк = 8

Нижний Новгород Архитектура Intel от i386 до Xeon Phi: процессоры, 2014 производительность, энергопотребление 41 из 66 Intel

 Intel Pentium (1993)  Тактовая частота – 60 (233) МГц  Производительность – 120 (400) MIPS  Количество транзисторов – 3,1 (3,3) млн.  Площадь кристалла – 294 (90 и 83) кв.мм  Техпроцесс – 0,8 (0,35) мкм  Длина конвейера – 5  Суперскалярная архитектура  Механизм предсказания адресов ветвления  Встроенный математический сопроцессор  Производительность – ~1,44 MFLOPS  Кеш  L1: 16 Кбайт (8 Kb Data + 8 Kb Code)  L2: на материнской плате 1 Мбайт  4-канальная наборно-ассоциативная архитектура  Тепловыделение 8 (15) Вт  Требуется внешнее охлаждение Рисунок: http://commons.wikimedia.org/wiki/File:Pentium-60-front.jpg?uselang=ru Нижний Новгород Архитектура Intel от i386 до Xeon Phi: процессоры, 2014 производительность, энергопотребление 42 из 66 http://bitsavers.informatik.uni-stuttgart.de/pdf/intel/pentium/1993_Intel_Pentium_Processor_Users_Manual_Volume_1.pdf Нижний Новгород Архитектура Intel от i386 до Xeon Phi: процессоры, 2014 производительность, энергопотребление 43 из 66 Динамическое предсказание переходов в CPU  Предположение о направлении перехода основывается на истории переходов  Пример: двухуровневый предсказатель с глобальной историей  Хранит результаты для M последних использованных инструкций перехода  Для каждой хранятся последние N переходов  использует 32-битный регистр для хранения истории переходов  Точность предсказания >90%  Процессор загружает на конвейер инструкции из предсказанной ветки перехода, в случае неверного предсказания результат их исполнения не используется

Нижний Новгород Архитектура Intel от i386 до Xeon Phi: процессоры, 2014 производительность, энергопотребление 44 из 66 Минимизация ошибок предсказания переходов Размещать наиболее вероятные ветви в начале ветвлений Выносить выше (по уровню вложенности в циклах) инвариантные ветвления Использовать разворачивание циклов

Нижний Новгород Архитектура Intel от i386 до Xeon Phi: процессоры, 2014 производительность, энергопотребление 45 из 66 Суперскалярность

 Если инструкции, обрабатываемые конвейером, не противоречат друг другу, и ни одна не зависит от результата другой, то они могут быть выполнены параллельно  Суперскалярность — запуск на выполнение нескольких инструкций за один такт для использование нескольких исполнительных блоков на различных стадиях конвейера  Используются несколько декодеров инструкций  Планирование исполнения потока инструкций является динамическим  Основывается либо на анализе зависимостей между инструкциями

Нижний Новгород Архитектура Intel от i386 до Xeon Phi: процессоры, 2014 производительность, энергопотребление 46 из 66 Внеочередное исполнение (Out-of-order execution)  Инструкции поступают в исполнительные модули не в порядке их следования, а по готовности к выполнению  Позволяет избежать простоя процессора в тех случаях, когда данные, необходимые для выполнения очередной инструкции, недоступны  Суперскалярность может быть реализована без поддержки внеочередного исполнения  Intel Pentium

Нижний Новгород Архитектура Intel от i386 до Xeon Phi: процессоры, 2014 производительность, энергопотребление 47 из 66 Суперскалярность (Sandy Bridge) Out-of-Order Execution (исполнение с изменением последовательности команд)

Нижний Новгород Архитектура Intel от i386 до Xeon Phi: процессоры, 2014 производительность, энергопотребление 48 из 66 Суперскалярность (Sandy Bridge)

Нижний Новгород Архитектура Intel от i386 до Xeon Phi: процессоры, 2014 производительность, энергопотребление 49 из 66 Pentium MMX (P55C/80503)

 Intel Pentium MMX (1996)  Тактовая частота – 166 (300) МГц  Производительность – ~500 MIPS  Количество транзисторов – 4,5 млн.  Площадь кристалла – 140 кв.мм  Техпроцесс – 0,35 мкм  Длина конвейера – 6  Векторные команды (57)  Длина вектора – 64 бита  Кеш  L1: 32 Кбайт (16 Kb Data + 16 Kb Code)  Тепловыделение 13,1 – 17,9 Вт

Рисунок: http://en.wikipedia.org/wiki/File:P-MMX.JPG Нижний Новгород Архитектура Intel от i386 до Xeon Phi: процессоры, 2014 производительность, энергопотребление 50 из 66 Классификация Флинна

Data Stream

Single Multiple

Single SISD SIMD Instruction Stream Multiple MISD MIMD

Flynn M.J. “Very High-Speed Computing System”, Proceedings IEEE, #54, 1966

Нижний Новгород Архитектура Intel от i386 до Xeon Phi: процессоры, 2014 производительность, энергопотребление 51 из 66 Векторные операции…

 Вектор – набор однотипных данных (обычно INT/FLOAT/DOUBLE-массив)  Длина вектора – определяется архитектурой  Позволяют за одну инструкцию выполнить арифметическую операцию над несколькими парами операндов  Имеются унарные, бинарные и тернарные операции  Использования векторизации  Специальные директивы или intrinsic  Автоматическая векторизация компилятором

Нижний Новгород Архитектура Intel от i386 до Xeon Phi: процессоры, 2014 производительность, энергопотребление 52 из 66 Векторные операции

Нижний Новгород 2013 Архитектура Intel Xeon Phi 53 из 45 Intel

 Intel Pentium Pro (1995)  Тактовая частота – 166 (200) МГц  Количество транзисторов – 5,5 млн.  Площадь кристалла – 195 кв.мм  Техпроцесс – 0,35 мкм  Длина конвейера – 12-14  Векторные команды (57)  Длина вектора – 64 бита  Кеш  L1: 16 Кбайт (8 Kb Data + 8 Kb Code)  L2: 256 (512,1024) Кбайт на процессоре  Тепловыделение 13,1 – 17,9 Вт

Рисунок: http://upload.wikimedia.org/wikipedia/commons/1/11/Ppro512K.jpg Нижний Новгород Архитектура Intel от i386 до Xeon Phi: процессоры, 2014 производительность, энергопотребление 54 из 66 Intel

 Intel Pentium Pro (2000)  Тактовая частота – 1,5 – 1,5 ГГц  Количество транзисторов – 42 млн.  Площадь кристалла – 217 кв.мм  Техпроцесс – 0,18 мкм  Длина конвейера – 20  Гиперконвейеризация  До 31 стадии в других версиях  Векторные команды SSE2  Кеш  L1: 16 Кбайт (8 Kb Data + 8 Kb Code)  L2: 256 Кбайт  Тепловыделение 51,6 – 115 Вт  Hyper-threading

Рисунок: http://commons.wikimedia.org/wiki/File:Willamette.png?uselang=ru

Нижний Новгород Архитектура Intel от i386 до Xeon Phi: процессоры, 2014 производительность, энергопотребление 55 из 66 Simultaneous Multi-Threading Одновременная многопоточность  При выполнении большинства операций оказываются полностью задействованными не все составные компоненты процессоров  При использовании одновременной многопоточности на одном конвейере выполняются несколько программных потоков  Процессор дополняется средствами запоминания состояния потоков, схемами контроля одновременного выполнения нескольких потоков и т. д.  Одновременно выполняемые потоки конкурируют за исполнительные блоки единственного процессора, что приводит к возникновению структурных конфликтов

Нижний Новгород Архитектура Intel от i386 до Xeon Phi: процессоры, 2014 производительность, энергопотребление 56 из 66

 Intel Core Duo(2006) Количество ядер – 2 Тактовая частота – 1,66 – 2,33 ГГц Количество транзисторов – 151 млн. Техпроцесс – 65 нм Векторные команды SSE3 Кеш  L1: 16 Кбайт (8 Kb Data + 8 Kb Code)  L2: разделяемый 2 Мбайт Тепловыделение 31 Вт

Нижний Новгород Архитектура Intel от i386 до Xeon Phi: процессоры, 2014 производительность, энергопотребление 57 из 66 Что тормозит дальнейшее развитие?

The Frequency Wall The Power Wall The ILP Wall (Instruction Level Parallelizm) The Memory Wall

Нижний Новгород Архитектура Intel от i386 до Xeon Phi: процессоры, 2014 производительность, энергопотребление 58 из 66 Современные направления развития архитектуры CPU  Техники сокрытия длительных задержек при работе с памятью, включающие:  рост оптимизации и эффективности систем кэширования  Улучшенная обработка конфликтов в конвейере  Улучшенные техники аппаратного предсказания ветвлений  Оптимизация исполнения инструкций в конвейере  Динамическое аппаратное планирование в конвейере  Динамическое спекулятивное исполнение  Использование параллелизма на уровне инструкций (Instruction-Level Parallelism, ILP) при параллельной выдаче множества инструкций на исполнение в множество функциональных устройств  Включение специальных инструкций для обработки мультимедиа приложений (ограниченная векторная обработка)  Высокоскоростные шины для повышения скорости передачи данных

Нижний Новгород Архитектура Intel от i386 до Xeon Phi: процессоры, 2014 производительность, энергопотребление 59 из 66 More cores. Wider vectors. Co-Processors.

Images do not reflect actual die sizes

Intel® Xeon® Intel® Xeon® Intel® Xeon® Intel® Xeon® Intel® Xeon® Intel® Xeon® Intel® Xeon® Intel® Xeon processor processor processor processor processor processor processor Phi co- 64-bit 5100 5500 5600 code-named code-named code-named processor Sandy Ivy series series series Haswell Knights Bridge Bridge Corner

Core(s) 1 2 4 6 8 60

Threads 2 2 8 12 16 240

SIMD Width 128 128 128 128 256 256 256 512

AVX2 SSE2 SSSE3 SSE4.2 SSE4.2 AVX AVX FMA3 TSX Геннадий Федоров. Intel® Xeon Phi. Курс “молодого” бойца.

Нижний Новгород Архитектура Intel от i386 до Xeon Phi: процессоры, 2014 производительность, энергопотребление 60 из 66 Control Unit A Typical Layout:

The Intel Pentium Classic 1993 - 1997 60MHz - 233 MHz

Datapath

Нижний Новгород Системные основы параллельных вычислений First2013 Level of Memory (Cache)Архитектуры: аспекты параллелизма 61 из 66 Multi-core Microprocessor Example

Intel Core i7-3960X

Нижний Новгород Системные основы параллельных вычислений 2013 Архитектуры: аспекты параллелизма 62 из 66 Sandy bridge

Ivy bridge

Нижний Новгород Системные основы параллельных вычислений 2013 Архитектуры: аспекты параллелизма 63 из 66 Ivy Bridge

 Ring Interconnect  Connects all key components:  SA, LLCs, Cores, GPU  Actually 4 rings:  32-byte data ring  Two packets for e.g. cache data  Request ring  Acknowledge ring  Snoop ring

Нижний Новгород Системные основы параллельных вычислений 2013 Архитектуры: аспекты параллелизма 64 из 66 Спасибо за внимание