Компания IBM
Опубликован: 09.01.2008 | Доступ: свободный | Студентов: 674 / 131 | Оценка: 4.24 / 4.00 | Длительность: 13:17:00
Специальности: Разработчик аппаратуры
Лекция 2:

Технология POWER

< Лекция 1 || Лекция 2: 12345 || Лекция 3 >

Simultaneous multi-threading


В режиме SMT, как и в других реализациях многопоточности, процессор выбирает команды от больше чем одной нити. Что отличает эту реализацию - это способность планировать команды для выполнения от всех потоков одновременно. С SMT, система динамически подстраивается под среду, позволяя командам выполняться от каждого потока, если это возможно, и позволяя командам от одного потока использовать все модули выполнения, если другой поток сталкивается с долговременной задержкой.

Дизайн POWER5 реализует двухпоточный SMT на каждом из двух ядер чипа. Хотя более высокий уровень многопоточности и возможен, моделирования показали, что добавленная сложность необоснована. При добавлении одновременных нитей на один физический процессор, выигрыш в производительности резко снижается. Фактически, дополнительная многопоточность могла бы уменьшить производительность из-за промахов в кэш, т.к. данные от одного потока замещают данные, необходимые другим потокам.

Каждый чип виден программному обеспечению как 4-way SMP

  • Позволяет инструкциям из двух нитей выполняться одновременно
  • Оптимизация использования процессорных ресурсов приводит к повышению производительности
  • Нет переключений контекста и нитей-"пустышек"

Приоритеты нитей контролируются аппаратурой, гипервизором или ОС

Динамическое переключение между одно- и много-поточным режимом

Какие рабочие нагрузки могут получить выигрыш от SMT?

Это - очень трудный вопрос, потому что преимущество одновременной многопоточности зависит от рабочей нагрузки. Большинство измерений коммерческих рабочих нагрузок показывает увеличение на 25-40 %, (некоторые – больше). Эти измерения были проведены на выделенном разделе. Одновременная многопоточность дает выигрыш и разделам в общем пуле

Можно также ответить со следующими общими соображениями. Любая рабочая нагрузка, где большинство индивидуальных программных потоков сильно использует любой ресурс в процессоре или памяти, извлечет немного выгоды из одновременной многопоточности. Например, рабочие нагрузки, которые выполняют большое количество операций плавающей точкой, вероятно, извлекут немного пользы от одновременной многопоточности и - что наиболее вероятно, даже потеряют в производительности. Они имеют тенденцию сильно использовать модули выполнения с плавающей точкой или полосу пропускания памяти, в то время как рабочие нагрузки, которые имеют очень высокие количество тактов на инструкцию (CPI), имеют тенденцию использовать процессор и ресурсы памяти плохо и обычно получают самую большую выгоду от одновременной многопоточности. Эти большие CPI обычно вызываются большим количеством неудачного обращения в кэш. Большие коммерческие рабочие нагрузки типично имеют эту характеристику, хотя это несколько зависит от того, совместно ли используют две нити инструкции или данные, или же они полностью различны. Рабочие нагрузки, которые совместно используют команды или данные, например, работающие в пределах одного приложения, имеют больше выгоды от SMT.

Динамическая балансировка ресурсов


Нити разделяют много ресурсов

  • Global Completion Table, Branch History Table, Translation Lookaside Buffer и т.д.

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

Цель динамической балансировки ресурсов состоит в том, чтобы гарантировать, что эти потока, выполняющиеся на одном процессоре, равномерно загружают систему. Динамическая балансировка ресурсов контролирует ресурсы, чтобы определить, является ли один поток сильно загружающим их. Например, если один поток сталкивается с множественными промахами по L2 кэшу, зависимые команды могут простаивать в очередях, замедляя другой поток. Чтобы предотвращать это, динамическая балансировка ресурсов приостанавливает такой поток.

Настраиваемый приоритет нитей


Ситуации, когда предпочтительнее несбалансированное выполнение

  • Нет задач для второй нити
  • Нить ожидает или заблокирована
  • ПО предпочитает несбалансированный режим нитей
  • Управление питанием

Аппаратный/программный контроль приоритета нити

  • 8 уровней приоритета для каждой нити

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

Однопоточный режим


Однопоточный режим выполнения (Single-threaded operation) дает преимущество, когда приложение использует большое количество модулей исполнения

  • Вычислительные задачи

Вычислительные задачи получают минимум преимуществ в SMT режиме

  • Дополнительные ресурсы, используемые в SMT дадут гораздо больший выигрыш при их выделении одной нити

Определяется динамически на каждый процессор

Не все приложения извлекают выгоду из SMT. Наличие двух потоков, выполняющихся на том же самом процессоре не будет увеличивать производительность приложений , сильно зависящих от количества модулей выполнения или приложений, которые занимают полосу пропускания памяти всего чипа. По этой причине, POWER5 поддерживает однопоточный режим выполнения. В этом режиме, POWER5 дает все физические ресурсы, включая регистры общего назначения и FPR одному потоку, позволяя ему достигнуть более высокой производительности, чем POWER4 на эквивалентных частотах.

Динамическое управление питанием


SMT с динамическим управлением питанием снижает потребление электроэнергии по сравнению со стандартным уровнем на одной нити

Применение технологий IBM POWER


Итоги

  • Технологическое лидерство IBM – основа для создания эффективных решений
  • RISC – Reduced Instructions Set Computing
  • POWER – Performance Optimized With Enhanced RISC
  • SMT – многопоточный режим работы процессора
< Лекция 1 || Лекция 2: 12345 || Лекция 3 >
Александр Панченко
Александр Панченко

Добрый день,

Я прошёл платный курс по программе «Архитектурные решения на базе аппаратных платформ IBM» получил диплом №ПК 100848460.

Как мне получить его ? Вы отправите его почтой ?

Вадим Арзуманян
Вадим Арзуманян
Россия, Москва
Петр Арсенин
Петр Арсенин
Россия, Москва