Производительность. Многопроцессорные системы

Содержание

Слайд 2

4096tb@gmail.com Тема письма: БГУИР. … . Ковалевский Вячеслав Викторович

4096tb@gmail.com Тема письма: БГУИР. … .

Ковалевский Вячеслав Викторович

Слайд 3

Лекция 5. Структура процессора. Архитектуры CISC и RISC. Архитектура процессора Intel

Лекция 5. Структура процессора. Архитектуры CISC и RISC. Архитектура процессора Intel

.

План лекции:
Структура процессора. Шинная организация.
Архитектуры CISC и RISC. Архитектура IA-32. Регистры процессора.
Формат команды. Классификация команд. Особенности состава команд Intel.
Взаимодействие с памятью и вводом-выводом. Цикл шины. Ввод-вывод: программный, по прерываниям и ПДП.

Экзаменационные вопросы:
Буферные элементы. Шинная организация современного компьютера.
Понятие архитектуры компьютера. Структура компьютера. Понятие о CISC и RISC.
Регистры общего назначения и их особенности у Intel.
Команда. Формат команды. Классификация команд. Особенности состава команд Intel.

Слайд 4

Лекция 6. Адресация. Режимы работы процессора. Управление памятью. План лекции: Адресация

Лекция 6. Адресация. Режимы работы процессора. Управление памятью.

План лекции:
Адресация памяти. Непосредственная,

прямая и косвенная адресация. Автоинкрементная и автодекрементная адресация. Строковые команды. Стек.
Режимы работы процессора Intel.
Сегментная и страничная организация доступа к памяти. Сегментация памяти в реальном режиме. Дескрипторы сегментов. Дескрипторные таблицы.
Шлюзы. Виртуальная память. Подкачка страниц. Размеры страниц и расширение адреса.

Экзаменационные вопросы:
Адресация памяти и ввода-вывода. Циклы обмена между процессором и памятью.
Абсолютная, прямая и косвенная адресация. Автоинкрементная и автодекрементная адресация.
Стек. Работа стека и его использование. Ввод-вывод: программный, по прерываниям и ПДП.
Режимы работы процессора Intel. RM, VM, PM, SMM.
Сегментная и страничная организация доступа к памяти. Сегментация памяти в реальном режиме. Страничная организация – реализация виртуальной памяти.
Управление сегментами в защищенном режиме. Дескрипторные таблицы. Дескрипторы сегментов.

Слайд 5

Лекция 7. Производительность. Многопроцессорные системы План лекции: Иерархия памяти. Кэш. Развитие

Лекция 7. Производительность. Многопроцессорные системы

План лекции:
Иерархия памяти. Кэш. Развитие архитектуры IA-32.

FPU.
Конвейеризация команд и данных. Предсказание переходов. Скалярность. Параллелизм на уровне потоков и на уровне команд.
Архитектура AMD64. Архитектура IA-64. EPIC. Процессоры Itanium. Многопроцессорные системы. Многоядерные процессоры.
Когерентность кэша. Аппаратная поддержка виртуализации у Intel и AMD. Внутренние и внешние интерфейсы ПК. Интерфейс USB.

Экзаменационные вопросы:
Повышение производительности процессора. Конвейеризация команд и данных. Предсказание переходов. Кэш. Суперскалярность. Многоядерность.

Слайд 6

Иерархия памяти

Иерархия памяти

Слайд 7

Иерархия памяти

Иерархия памяти

Слайд 8

Иерархия памяти

Иерархия памяти

Слайд 9

Иерархия памяти

Иерархия памяти

Слайд 10

Computer memory hierarchy

Computer memory hierarchy

Слайд 11

Повышение производительности Развитие архитектуры IA-32. Кэш. FPU.

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

Развитие архитектуры IA-32. Кэш. FPU.

Слайд 12

Производительность Это количество выполняемых за такт команд IPC – Instructions per

Производительность
Это количество выполняемых за такт команд
IPC – Instructions per cycle
(команды

выполняемые за такт)
Методы повышения производительности:
Конвейеризация
Параллелизм
Многоядерность
Слайд 13

Скорость света не превысить! 300 000 km/s - скорость света в

Скорость света не превысить!

300 000 km/s - скорость света в вакууме
300

000 m/ms
300 000 mm/μs
300 mm/ns
30 mm/0.1 ns
3 cm/0.1 ns
10 cm/0.333 ns
T = 0.333 ns f = 3 GHz
Слайд 14

Параллелизм Параллелизм: на уровне команд (ILP – Instruction Level Parallelism) на

Параллелизм

Параллелизм:
на уровне команд (ILP – Instruction Level Parallelism)
на уровне

процессов (TLP – Thread Level Parallelism)
Параллелизм:
многопроцессорные системы
многоядерные процессоры
Слайд 15

Конвейеризация (Рipelining) Реализация обработки команд внутри процессора в несколько этапов Идея

Конвейеризация (Рipelining)

Реализация обработки команд внутри процессора в несколько этапов
Идея состоит в

использовании разных устройств процессора на разных этапах обработки команды
Слайд 16

Конвейер инструкций Таненбаум, с.59 (рис. 2.5)

Конвейер инструкций

Таненбаум, с.59 (рис. 2.5)

Слайд 17

Латентность конвейера Таненбаум, с.59 (рис. 2.5)

Латентность конвейера

Таненбаум, с.59 (рис. 2.5)

Слайд 18

Конвейер

Конвейер

Слайд 19

Intel Pentium IV Суперскалярная архитектура (как и все Pentium’ы ) «Гиперконвейерная

Intel Pentium IV

Суперскалярная архитектура (как и все Pentium’ы )
«Гиперконвейерная технология»

(сверхдлинный конвейер:
5 стадий у P5,10 стадий у P6, 20 стадий у Pentium IV)
«Net Burst» технология (до 126 МО одновременно)
SSE2 (+ 144 новых команды типа SIMD)
Выборка МО (микроопераций)
Переименование регистров (128 физических)
Помещение МО в очередь (планирование с учетом зависимостей)
Отсылка на CPU или FPU
Чтение из файлов регистров
Выполнение (1 такт)
Определение флагов
Запись результата (проверка перехода)
Слайд 20

Согласно Флинту SISD (Single Instruction, Single Data) SIMD (Single Instructions, Multiple

Согласно Флинту

SISD (Single Instruction, Single Data)
SIMD (Single Instructions, Multiple Data)
MISD (Multiple

Instruction, Single Data)
MIMD (Multiple Instruction, Multiple Data)
SISD – «обычные» компьютеры (фон Неймана)
SIMD – векторные суперкомпьютеры
MISD – не существуют
MIMD – мультипроцессорные системы, мультикомпьютеры, кластеры (Таненбаум, 4-е изд., с. 584)
Слайд 21

Пути достижения параллелизма Потоковая архитектура ОКМД (одна операция над многими данными

Пути достижения параллелизма

Потоковая архитектура
ОКМД (одна операция над многими данными – MMX,

XMM, SSE)
МКМД (многопроцессорные системы, суперкомпьютеры)
МКМД (множество независимых компьютеров – кластеры, суперкомпьютеры)
Слайд 22

Суперскалярная архитектура Таненбаум, с.59 (рис. 2.5)

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

Таненбаум, с.59 (рис. 2.5)

Слайд 23

Hyper-Threading Одно физическое ядро «успевает» обрабатывать два потока команд. Операционная система «видит» два процессора.

Hyper-Threading

Одно физическое ядро «успевает» обрабатывать два потока команд.
Операционная система «видит»

два процессора.
Слайд 24

Слайд 25

Multiprocessor systems

Multiprocessor systems

Слайд 26

SMP-системы (Symmetrical Multi Processor systems).

SMP-системы (Symmetrical Multi Processor systems).

Слайд 27

Закон Амдала Speedup - относительное ускорение f- часть кода, которая может

Закон Амдала

Speedup - относительное ускорение
f- часть кода, которая может быть распараллелена


n - число параллельных процессоров
Слайд 28

α - часть кода, которая не распараллеливается (1 − α =

α - часть кода, которая не распараллеливается (1 − α

= f или 1 − f = α)

Закон Амдала

Слайд 29

SMP SMP: использование нескольких процессоров не приводит к ожидаемому приросту производительности

SMP

SMP: использование нескольких процессоров не приводит к ожидаемому приросту производительности

Слайд 30

NUMA-системы (Non-Uniform Memory Access systems).

NUMA-системы (Non-Uniform Memory Access systems).

Слайд 31

Кластеры Основная «область применения» кластеров: Cуперкомпьютеры

Кластеры

Основная «область применения» кластеров:
Cуперкомпьютеры

Слайд 32

Кластеры

Кластеры

Слайд 33

HyperТhreading (Гипертрейдинг)

HyperТhreading (Гипертрейдинг)

Слайд 34

SMP - Symmetrical MultiProcessing

SMP - Symmetrical MultiProcessing

Слайд 35

Двухъядерный процессор

Двухъядерный процессор

Слайд 36

Intel Smithfield Ядро Smithfield – это два обычных Prescott в одном кристалле

Intel Smithfield

Ядро Smithfield – это два обычных Prescott в одном кристалле


Слайд 37

«Классическая» двухпроцессорная SMP-система с двухъядерными процессорами

«Классическая» двухпроцессорная SMP-система с двухъядерными процессорами

Слайд 38

SUMA Slightly Uniform Memory Architecture ("почти однородная архитектура памяти") Основа SUMA – последовательная шина HyperTransport

SUMA
Slightly Uniform Memory Architecture ("почти однородная архитектура памяти")
Основа SUMA

– последовательная шина HyperTransport
Слайд 39

AMD Toledo AMD Toledo

AMD Toledo

AMD Toledo

Слайд 40

Пример двухпроцессорной двухядерной системы на Opteron 2хх и чипсете AMD 82хх. HT обозначает HyperTransport

Пример двухпроцессорной двухядерной системы на Opteron 2хх и чипсете AMD 82хх.


HT обозначает HyperTransport

Слайд 41

AMD Opteron Dual-Core Architecture

AMD Opteron Dual-Core Architecture

Слайд 42

Intel & AMD Разница между реализациями AMD и Intel с «технологической»

Intel & AMD

Разница между реализациями AMD и Intel с «технологической» точки

зрения долгое время заключалась в том, что у Intel Northbridge был реализован отдельным кристаллом, а у AMD он был интегрирован в центральный процессор.
Слайд 43

Когерентность кэш-памяти

Когерентность кэш-памяти

Слайд 44

Когерентность кэш-памяти Протоколы поддержания когерентности кэшей: у процессоров Intel - «MESI»,

Когерентность кэш-памяти

Протоколы поддержания когерентности кэшей:
у процессоров Intel - «MESI»,
у процессоров

AMD - «MOESI». 
MESI - Modified, Exclusive, Shared, Invalid
MOESI - Modified, Owner, Exclusive, Shared, Invalid
Слайд 45

Write-Through

Write-Through

Слайд 46

MESI MESI (Modified, Exclusive, Shared, Invalid) Modified - состояние (выделено желтым)

MESI

MESI (Modified, Exclusive, Shared, Invalid)
Modified - состояние (выделено желтым) соответствует

измененной строке в кэш-памяти, содержащей данные, которые еще не записаны в оперативную память. Этих данных в кэшах других процессоров нет.
Exclusive - состояние (выделено салатовым) соответствует копии данных, которые записаны в кэш память только данного конкретного процессора. Shared - состояние (выделено зеленым) соответствует копии данных, которые содержатся в кэш-памяти одновременно нескольких процессоров.
Invalid - состояние (выделено красным) соответствует строкам кэш-памяти, содержащим устаревшую информацию
Оперативная память на схеме помечена красным, если в ней содержатся устаревшие копии данных
Слайд 47

Кэш Чтение корректных данных и модификация

Кэш Чтение корректных данных и модификация

Слайд 48

Кэш Чтение «устаревших» данных

Кэш Чтение «устаревших» данных

Слайд 49

MOESI MOESI (Modified, Owner, Exclusive, Shared, Invalid) Modified - состояние (выделено

MOESI

MOESI (Modified, Owner, Exclusive, Shared, Invalid)
Modified - состояние (выделено желтым) соответствует

измененной строке в кэш-памяти, содержащей данные, которые еще не записаны в оперативную память. Этих данных в кэшах других процессоров нет.
Owner - состояние (выделено светло-голубым) соответствует измененной строке, содержащей данные, которые еще не записаны в оперативную память и которые ЕСТЬ в кэшах других процессоров
Exclusive - состояние (выделено салатовым) соответствует копии данных, которые записаны в кэш память только данного конкретного процессора. Shared - состояние (выделено зеленым) соответствует копии данных, которые содержатся в кэш-памяти одновременно нескольких процессоров.
Invalid - состояние (выделено красным) соответствует строкам кэш-памяти, содержащим устаревшую информацию.
Оперативная память на схеме помечена красным, если в ней содержатся устаревшие копии данных
Слайд 50

Кэш Чтение «устаревших» данных

Кэш Чтение «устаревших» данных

Слайд 51

Кэш Чтение корректных данных и модификация

Кэш Чтение корректных данных и модификация

Слайд 52

Pentium 4 Processor With HT

Pentium 4 Processor With HT

Слайд 53

Pentium D Processor

Pentium D Processor

Слайд 54

Pentium 4 Processor With HT

Pentium 4 Processor With HT

Слайд 55

Dual Gore Pentium Processor Extreme Edition

Dual Gore Pentium Processor Extreme Edition

Слайд 56

Реализация IA-64 Intel Itanium2

Реализация IA-64

Intel Itanium2

Слайд 57

IA-32 / IA-64

IA-32 / IA-64

Слайд 58

Реализация IA-64: Intel Itanium2 Наиболее кардинальным нововведением IA-64 по сравнению с

Реализация IA-64: Intel Itanium2

Наиболее кардинальным нововведением IA-64 по сравнению с RISC является

«явный параллелизм команд» (EPIC), привносящий в IA-64 некоторые элементы, напоминающие архитектуру «сверхбольшого командного слова» (VLIW).
Слайд 59

EPIC EPIC (Explicitly Parallel Instruction Computing) - явный параллелизм на уровне

EPIC

EPIC (Explicitly Parallel Instruction Computing) - явный параллелизм на уровне команд


VLIW (Very long instruction word — «очень длинная машинная команда») — архитектура процессоров с несколькими вычислительными устройствами. Характеризуется тем, что одна инструкция процессора содержит несколько операций, которые должны выполняться параллельно.
Слайд 60

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

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

одновременной работой функциональных исполнительных устройств (ФИУ).
Соответствующие «широкие команды» HP/Intel назвали связками (bundle).
В 1989 году Intel выпустил i860 (также известен как 80860 и под кодовым названием N10) с архитектурой RISC. Одной из новинок в i860 было применение VLIV. Этот процессор так и не добился коммерческого успеха, и проект был закрыт.
Слайд 61

Itanium 2 Конвейер в Itanium 2 состоит из 8 этапов, способен

Itanium 2

Конвейер в Itanium 2 состоит из 8 этапов, способен за

один такт обрабатывать до 6 инструкций и реализует концепцию EPIC.
В конвейере используются :
6 целочисленных АЛУ
6 мультимедийных АЛУ
2 вещественные АЛУ увеличенной точности
2 доп. вещественных АЛУ обычной точности
2 устройства чтения
2 устройства записи
3 устройства ветвления
Слайд 62

Функциональные устройства

Функциональные устройства

Слайд 63

Itanium 2 Каждая из инструкций при разборе связки направляется на соответствующий

Itanium 2

Каждая из инструкций при разборе связки направляется на соответствующий ее

типу конвейер:
(A) целочисленное АЛУ
(B) Не-АЛУ целочисленное
(M) памяти
(F) вещественные
(B) Ветвления
(L) специальные
Слайд 64

Формат связки команд IA-64 Связка имеет длину 128 разрядов. Она включает

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

Связка имеет длину 128 разрядов. Она включает

3 поля – «слота» для команд длиной 41 разряд каждая, и 5-разрядное поле шаблона. Предполагается, что команды связки могут выполняться параллельно разными ФИУ.
Слайд 65

http://www.ixbt.com/cpu/ia64.html 14

http://www.ixbt.com/cpu/ia64.html

14

Слайд 66

IA-64 IA-64 перекладывает всю работу по оптимизации потока команд на компилятор.

IA-64

IA-64 перекладывает всю работу по оптимизации потока команд на компилятор. 
Каждый

128-битный пакет содержит шаблон (template) длиной в несколько бит, помещаемый в него компилятором, который указывает процессору, какие из команд могут выполняться параллельно. 
Слайд 67

IA-64 Компиляторы для IA-64 используют технологию "отмеченных команд" (predication) для устранения

IA-64

Компиляторы для IA-64 используют технологию "отмеченных команд" (predication) для устранения потерь

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

Конвейер Itanium Устройство предварительной обработки инструкций в порядке их следования в

Конвейер Itanium

Устройство предварительной обработки инструкций в порядке их следования в программном

коде (front end).
Исполнение вне порядка (Out-Of-Order execution).
Блок упорядоченного завершения (In-order retirement).
Слайд 69

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

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

Слайд 70

Out-of-order Processor Pipeline (2)

Out-of-order Processor Pipeline (2)

Слайд 71

80-ядерный процессор Intel Teraflops Research Chip

80-ядерный процессор

Intel Teraflops Research Chip

Слайд 72

Технология Teraflops основан на техпроцессе 65 нм. Процессор построен на одной

Технология

Teraflops основан на техпроцессе 65 нм.
Процессор построен на одной подложке,

объединившей 80 независимых процессорных ядер. Ядра размещены в виде прямоугольника 8х10. Одно ядро имеет площадь 3 кв. миллиметра.
Чип использует упаковку LGA с 1248 контактами. 343 из них используются для передачи сигналов, а остальные - это питание и земля.
Слайд 73

Ядро Intel Teraflops Каждое ядро состоит из блока обработки Processing Engine

Ядро Intel Teraflops

Каждое ядро состоит из блока обработки Processing Engine

(PE), выполняющего все вычисления и 5-портового роутера
Слайд 74

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

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

ядрами.
Роутер каждого ядра имеет пять 39-битных портов, которые обеспечивают общую пропускную способность 80 ГБ/с.
Основное достижение Интел в этом чипе то, что вычислительный модуль может быть заменен на все что угодно, включая ядра х86, ядра DSP и др.
Слайд 75

Частоты и управление питанием

Частоты и управление питанием

Слайд 76

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

Синхронизация

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

же время во всех частях процессора, особенно, принимая во внимание увеличение рабочих частот и площади процессоров. Но это необходимо для нормальной работы процессора. Intel говорит, что обеспечение синхронизации тактовой частоты требует около 30% всей энергии, потребляемой процессором.
Слайд 77

Чип может работать на нескольких скоростях, в зависимости от рабочего напряжения.

Чип может работать на нескольких скоростях, в зависимости от рабочего напряжения.


При частоте 4 ГГц чип может достичь производительности 1,28 терафлоп при энергопотреблении 181 Вт.
Самая низкая частота, на которой может работать чип - 1 ГГц, энергопотребление при этом - 11 Вт, а количество выполняемых операций с плавающей запятой может достигать 310 миллиардов в секунду.
Слайд 78

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

Перспективы

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

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

Что дальше?

Что дальше?