МультиТредовые архитектуры.

Презентация:



Advertisements
Похожие презентации
Архитектура микропроцессоров И ее эволюция. Процессор и память: Команды и данные.
Advertisements

Введение в параллельную обработку. Уровни параллелизма в процессорах Параллелизм данных (DLP – Data Level Parallelism) Параллелизм команд (ILP – Instruction.
Архитектура современных ЭВМ Кафедра Параллельных вычислений (ИВМиМГ) Кафедра Параллельных вычислительных технологий Маркова Валентина Петровна,
Теория компиляторов-2. Л.31 Теория компиляторов Часть II Лекция 2.
Организация ЭВМ и систем Кафедра Параллельных вычислений (ИВМиМГ) Маркова Валентина Петровна, Киреев Сергей Евгеньевич,
Архитектуры с параллелизмом на уровне команд. Два класса Суперскалярные процессоры Процессоры с длинным командным словом.
Урок 3 Более 80% Производит вычисленияРедактировать тексты Преобразовывать графические изображения Преобразовывать звуковые записи 0 и 1.
Архитетура компьютерных систем. Архитектура системы команд как интерфейс между программным и аппаратным обеспечением Архитектура системы команд.
Архитектуры с параллелизмом на уровне команд. Два класса Суперскалярные процессоры Процессоры с длинным командным словом.
6. Средства синхронизации и взаимодействия процессов 6.1. Проблема синхронизации Процессам Процессам часто нужно взаимодействовать друг с другом, например,
Архитектура многоядерных процессоров Intel и AMD.
ИНСТИТУТ ПРОБЛЕМ ПРОЕКТИРОВАНИЯ В МИКРОЭЛЕКТРОНИКЕ РАН (ИППМ) Способы регулирования вычислений в параллельной потоковой вычислительной системе Д.Н. Змеев,
Учебный курс Операционные среды, системы и оболочки Лекция 5 Лекции читает доктор технических наук, профессор Назаров Станислав Викторович.
Лекция 6 Понятие операционных систем Учебные вопросы: 1. Характеристики ОС 2. Свободные и проприетарные ОС.
Учебный курс Архитектура ЭВМ и язык ассемблера Лекция 9 заместитель министра связи и массовых коммуникаций РФ, старший преподаватель Северов Дмитрий Станиславович.
Управление процессами 3.Взаимодействие процессов: синхронизация, тупики 3.1.Разделение ресурсов 3.2.Взаимное исключение Проблемы реализации взаимного.
Параллельные аппаратные архитектуры и модели программирования Традиционная архитектура фон Неймана Расширение традиционной архитектуры Сопроцессоры Многоядерные.
Операционная система. Базовые понятия Операционная система – это комплекс программ, обеспечивающий контроль за существованием, распределением и использованием.
Лекция 3. Исключения и прерывания в встроенных системах.
Прерывания Определение прерывания Прерывания представляют собой механизм, позволяющий координировать параллельное функционирование отдельных устройств.
Транксрипт:

МультиТредовые архитектуры

Пути увеличения производительности Наращивание тактовой частоты Реализация параллелизма на уровне команд (ILP) Реализация параллелизма на уровне нитей (TLP)

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

Многопоточное программирование Все потоки находятся в едином адресном пространстве процесса, т.е. имеют общую память Создание потока и переключение между ними менее трудоемко, чем аналогичные операции над процессами Исключение некорректной работы с памятью обеспечивается использованием средств синхронизации

Средства многопоточной синхронизации Mutex (Mutual Exclusion Lock) – объект, который может быть захвачен одновременно только одним потоком. После выполнения необходимых действий мьютекс освобождается. Семафор – объект, который может быть захвачен одновременно ограниченным числом потоков. Событие – объект, сообщающий ожидающему потоку (или потокам) о возникновении какого-либо события

Пример использования нитей void mul(int start, int end) { for (int i=start; i

Аппаратная поддержка многопоточности Coarse-grained MT (крупнозернистая многопоточность) Fine-grained MT (мелкозернистая многопоточность) SMT (Одновременная многопоточность)

Крупнозернистая многопоточность (Coarse-grained MT) 2 и более аппаратных контекстов –Регистры общего назначения –Счетчик команд –Буфер выборки инструкций Одновременно не более 1 нити Аппаратное переключение контекстов при прерывании

Мелкозернистая многопоточность (Fine-grained MT) 2 и более аппаратных контекстов –Регистры общего назначения –Счетчик команд Одновременно не более 1 нити Аппаратное переключение на каждом такте

Одновременная многопоточность (Simultaneous MT) 2 и более аппаратных контекстов –Регистры общего назначения –Буфер выборки инструкций –Буфер переупорядочивания –Стек возврата Привязка команд и нитей До нескольких нитей одновременно Контексты активны, переключения не происходит

Software Coarse-grained Fine-grained Simultaneous

Многоядерность vs многопроцессорность (CMP – Chip Multiprocessors) Меньше стоимость при той же производительности Выше скорость обмена между ядрами Меньше места, меньше выделяемого тепла, меньше потребляемая мощность

Структура CMP-процессора

Многопоточность на основе CMP Простая логика, один поток на ядро Масштабируемость за счет локальности Условная многопоточность (Speculative MultiThreading) для ускорения последовательного кода

Распределение ресурсов MTОбщие ресурсыПереключение контекстов нетВсеЯвное переключение ОС Fine-grainedВсе кроме регистров и управляющей логики На каждом такте Coarse-grainedВсе кроме регистров, управляющей логики и буферов выборки инструкций При остановке конвейера SMTВсе кроме регистров, управляющей логики, буферов выборки инструкций, стека адресов возврата, буфера переупорядочивания, очереди записи и т.п. Все контексты активны, переключения нет CMPКэш второго уровня, системное межсоединение ядер Все контексты активны, переключения нет

CMP+SMT CMP

Многопоточные архитектуры

Примеры многопоточных архитектур CMP –POWER 4 –Barcelona –Clovertown –Opteron SMT –Alpha –Pentium 4 –Itanium 2 CMP + SMT –POWER 5 –UltraSPARC T2 –Keifer

POWER 4 (2 ядра)

Dual core Opteron (2 ядра)

Barcelona (4 ядра)

Clovertown (4 ядра)

Alpha (4 потока)

Pentium 4 (2 потока)

POWER 5 2 ядра 2 нити

UltraSPARC T2 (8 ядер х 8 потоков)

Keifer (8 узлов х 4 ядер х 4 потока)