Архитектурные решения на базе аппаратных платформ IBM

Технология POWER

Разбить на страницы
Показывать лекцию целиком

Технологии и инновации IBM

IBM и технологии

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

У IBM имеется богатый опыт открытий и инноваций, получивший международное признание. В дополнение к пяти Нобелевским Премиям, исследователи IBM получили пять Американских Медалей за Технологии (U.S. National Medals of Technology), пять Национальных Медалей за Научные Достижения (National Medals of Science) и 19 членств в Национальной Академии Наук (National Academy of Sciences). IBM Research имеет более 40 членов National Academy of Engineering.

В течение лет IBM регулярно получает патенты - всего более 25000 патентов – примерно на 7000 больше, чем ближайший конкурент. Но что более важно, чем статистика – это эффект, который эти патенты и открытия дают на рынке, и то, что они делают нечто действительно инновационное. Возможность создавать улучшенные технологии быстрее дает IBM значительное преимущество. За последние 10 лет, такие прорывы, как медные чипы, Web-кэширование и кремниево-германиевый сплав, помогли клиентам IBM получить значительное преимущество.

Технологии и инновации

  • Наличие технологий – необходимый первый шаг
  • Инновации – обнаружение новых креативных способов использования этих технологий
  • Дизайн решения – возможность инновационного применения технологий
  • IBM – технологический лидер

    IBM лидирует по количеству патентов в течение последних 12 лет, значительно опережая ближайших конкурентов. При этом большая часть запатентованных технологий внедряется в промышленное производство в год их изобретения.

    Значительную долю от общего числа патентов IBM составляют патенты, которые были получены за технологии изготовления и сборки полупроводниковых микросхем, разработанные подразделением IBM Microelectronics Division. Инициатива IBM по разработке новейших технологий кристаллов привела к открытию в 2002 г. в г. Ист-Фишкилл (штат Нью-Йорк) завода по производству полупроводниковых микросхем, на котором используется самое передовое технологическое оборудование в мире. (Источник: http://www.gorr.state.ny.us/gorr/10_10_00gov_ibm.htm).

    Процессорные технологии

    Copper Circuitry for Silicon Wafers

    Медь – лучший электрический проводник, чем алюминий

    SOI Silicon-On-Insulator

    Тонкий слой SiO2 размещается под кремниевой поверхностью для изоляции миллионов транзисторов от электрических помех

    Эти технологии позволяют увеличить количество транзисторов на чипе, повысить тактовую частоту, снизить электропотребление и повысить надежность процессоров.

    В 1990 г. корпорация IBM начала выпуск первых систем RS/6000 $$\text{\textregistered}$$ на базе процессора POWER. С тех пор процессоры, созданные по технологии Power Architecture, не раз признавались лучшими в отрасли, а список используемых в них инновационных технологий становился все больше и больше. К таким крупным достижениям можно отнести технологию использования медных соединительных проводников, технологию "кремний на изоляторе", а также технологии применения двух ядер на одном кристалле и многопоточной обработки. В результате этих инноваций современные процессоры POWER5+ продолжают удерживать лидерство по показателям производительности.

    История архитектуры POWER

  • 1980 Reduced Instruction Set Computer (RISC) – Суперскалярность
  • 1990 POWER systemPerformance Optimization With Enhanced RISC
  • Пятое поколение - POWER5
  • John Cocke (30 мая 1925 – 16 июля 2002) – американский ученый, получивший наибольшее признание за его вклад в компьютерную архитектуру и оптимизацию компиляторов. Он признается многими как "отец RISC-архитектуры".

    1980: IBM строит первый прототип компьютера на базе RISC (Reduced Instruction Set Computer) архитектуры. Основываясь на предложениях ученого Джона Кока (John Cocke) в начале 70-х, RISC-концепции упростили инструкции, выполняемые на процессорах. Сейчас RISC-архитектура – основа большинства рабочих станций и UNIX серверов и часто видится основной компьютерной архитектурой будущего.

    1990: IBM анонсирует свою новыю линию компьютеров - RISC System - RS/6000, которая сейчас называется IBM eServer pSeries (новое название – IBM System p), под управлением AIX V3. Системная архитектура получила название POWER (POWER1) - Performance Optimization With Enhanced RISC.

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

    Производительность компьютера зависит не только от производительности и количества процессоров, но и от множества других факторов, включая, например, производительность операционной системы.

    Продуктовая линия POWER

    На одном кристалле POWER4 и POWER5 находится два процессора, каждый со своим L1 кэшем и с общим L2 кэшем.

    Развитие процессоров POWER применительно к серверам pSeries, а также IBM eServer i5 и iSeries $$\text{\texttrademark}$$ до 2007 г. предполагает усовершенствование вычислительных возможностей процессора POWER5, что позволит заказчикам превзойти доступные на сегодняшний день уровни загрузки вычислительных ресурсов и продуктивности.

    На новом заводе впервые в мире (источник: http://www.gorr.state.ny.us/gorr/10_10_00gov_ibm.htm) были применены уникальные технологии IBM по производству полупроводниковых кристаллов, такие как использование медных соединительных проводников и технология "кремний на изоляторе" (SOI) для 300-миллиметровых пластин. Завод по производству полупроводников предназначен для изготовления кристаллов по технологическому процессу с проектной нормой менее 100 нанометров. В оборудование технологических линий было вложено примерно 2,5 млрд. долл. США, что является самым большим за все историю штата Нью-Йорк объемом инвестиций. (Источник: http://www.gorr.state.ny.us/gorr/10_10_00gov_ibm.htm)

    POWER4 Single-Chip Module

    В однопроцессорной системе на кристалле находится один процессор.

    Multichip Module

    МCM используется при построении систем старшего уровня.

    32-Way Backplane

    32-х процессорная система состоит из 4-х MCM, на каждом по 4 двухпроцессорных кристалла.

    POWER5 – Dual Chip Module

    На DCM находится два кристалла – процессорный (2 процессора) и L3 кэш, находящийся на отдельной от основной памяти шине.

    Процессор POWER5 поддерживает 64-битную архитектуру PowerPC. Один кристалл содержит два одинаковых процессорных ядра, каждое поддерживает одновременное исполнение двух логических нитей. Эта архитектура делает чип выглядящим как 4-х процессорная SMP-система для операционной системы.

    POWER5+ Quad-Core Module

    Инновационный дизайн. Высокая эффективность

  • Первый 4-х процессорный блок в индустрии
  • Два 2-х процессорных кристалла POWER5+ в одном блоке
  • Мультипоточные процессоры позволяют запускать восемь нитей одновременно (на сокет)
  • 72Мб высокоскоростной кэш (36Мб на каждый чип POWER5+)
  • Относительно небольшой размер модуля
  • Реализован с использованием технологии MCM и многопроцессорных чипов
  • Улучшения в POWER5+

  • 15% повышение тактовой частоты; более высокая скорость шины
  • 37% уменьшение размера
  • Уменьшенное энергопотребление
  • Поддержка больших страниц памяти
  • Улучшения в контроллере памяти
  • Поддержка Quad-Core Module
  • Увеличенная производительность
  • Модули POWER5+

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

    Ядра POWER4 и POWER5

    POWER4 415mm2 115W @1.1 GHz, 156W @ 1.3 GHz 174M транзисторов

    POWER4+ 267mm2 75W @ 1.2 GHz, 95W @ 1.45 GHz, 125W @ 1.7 GHz 184M транзисторов

    POWER5 389mm2 167W @ 1.65 GHz 276M транзисторов

    Процессор POWER5 был разработан с учетом двоичной и структурной совместимости с системами POWER4 для обеспечения поддержки всех существующих приложений.

    POWER5

  • Для систем как начального, так и старшего уровня
  • Улучшенная подсистема памяти
  • Увеличенная производительность
  • Simultaneous Multi-Threading
  • Аппаратная поддержка микро-разделов (Shared Processor Partitions)
  • Динамическое управление питанием
  • Совместимость с POWER4
  • Улучшенные функции RAS
  • Каждое процессорное ядро имеет отдельный 64 КБ L1 кэш инструкций и 32 КБ L1 кэш данных. L1 кэш совместно используется двумя нитями на процессорном ядре. Оба процессорных ядра совместно используют 1.88 МБ L2 кэш. На процессорном чипе находится контроллер L3 кэша.Сам L3 кэш находится на отдельном чипе - Merged Logic DRAM (MLD) cache chip. L3 кэш - 36 МБ victim cache L2 кэша. L3 совместно используется двумя процессорными ядрами чипа POWER5. L2 и L3 кэши совместно используются всеми аппаратными нитями на обоих процессорных нитях в чипе. В отличие от POWER4, который был ориентирован на приложения систем старшего уровня, дизайн POWER5 ориентирован на широкий спектр приложений – начиная от 1-2-х процессорных систем начального уровня и заканчивая 64-х процессорными серверами старшего уровня.

    SMPLink – технология соединения без коммутации с очень малой задержкой, которая позволяет узлам быть соединенными как плоская SMP-система. Порты SMPLink находятся непосредственно на чипе POWER5. При подключении, SMPLink предоставляет прямое соединение между каждым чипом POWER5.

    С внедрением SMT, больше инструкций выполняются за такт на процессорном ядре, увеличивая общую частоту переключений на ядре и кристалле.

    Улучшенная подсистема памяти

    Улучшенный дизайн L1 кэша

  • 2-way ассоциативный кэш инструкций
  • 4-way ассоциативный кэш данных
  • Новый алгоритм замещения (LRU вместо FIFO)
  • Больший объем L2 кэша

  • 1.9 Mб, 10-way ассоциативный кэш
  • Улучшенный дизайн L3 кэша

  • 36 Mб, 12-way ассоциативный кэш
  • L3 на процессорной стороне фабрики
  • Более частые попадания в кэш
  • Избежание трафика на междучипном соединении фабрики
  • Контроллер каталога и памяти L3 – на чипе

  • L3 каталог на чипе уменьшает задержки при на выходе из чипа после "промаха" в L2 кэше
  • Уменьшенные задержки при обращении к памяти
  • Улучшенные алгоритмы

    L1 кэш инструкций – двухпоточный, ассоциативный, с политикой замещения LRU (Least Recently Used). L1 кэш инструкций когерентен с L2 кэшем. L1 кэш данных – четырехпоточный, ассоциативный, с политикой замещения LRU (Least Recently Used). Модифицированные данные в L1-кэше не хранятся.

    L2 кэш доступен обоим ядрам на чипе. Он поддерживает полную аппаратную когерентность с системой и может поддерживать интервенцию данных в ядра на других чипах POWER5.

    1.88 МБ (1920 КБ) L2 кэш физически реализован тремя слоями, каждое размером 640 КБ. Каждый слой имеет отдельные контроллеры. Каждое ядро имеет независимый доступ к каждому контроллеру. Слои – десятипоточные, ассоциативные. Десятипоточная ассоциативность (по сравнению с восьмипоточной на POWER4) позволяет снизить замусориванние кэша путем предоставления болльшего количества мест для хранения данных на каждой линии.

    L3 кэш - 36 МБ, доступный обоим ядрам на процессорном чипе POWER5. Он обеспечивает полную аппаратную когерентность с аппаратурой системы и может обеспечивать интервенцию данных в ядра на других процессорных чипах POWER5. Логически, L3 – встроенный (inline) кэш. L3 кэш – не подмножество L2 кэша; одна и та же строка никогда не находится в них обоих одновременно. L3 кэш реализован как внешний, отдельный MLD чип, но его каталог находится на процессорном кристалле. Это помогает процессору проверять каталог после промаха по L2 без дополнительной задержки. L3 кэш в POWER5 находится на процессорной стороне фабрики. Этот дизайн позволяет обслуживать промахи по L2 кэшу чаще, избегая трафика на междучипном соединении.

    Контроллер памяти также находится на чипе POWER5, что позволяет снизить задержки при доступе к памяти.

    Процессор POWER4 поддерживает максимально 32-х процессорное симметричное мультипроцессирование. Большее количество процессоров увеличивает межпроцессорное взаимодействие, увеличивая тем самым более высокий уровень трафика.Это может негативно повлиять на масштабируемость системы. Перемещение L3-кэша на процессорную сторону фабрики позволяет процессору POWER5 обслуживать промахи по L2 более часто, с попаданиями в L3 кэш, избегая лишнего трафика на межпроцессорном соединении.Это обеспечивает больший уровень масштабирования.Сейчас системы на базе POWER5 поддерживают 64 процессора.

    POWER4 содержит на чипе L2 кэш 1.41 МБ. Чип POWER4+ схож по дизайну с POWER4, но сделан по технологии 130 нм, в отличие от POWER4 (180 нм). POWER4+ содержит на чипе L2-кэш 1.5 МБ. POWER4 и POWER4+ имеют L3 кэш размером 32 МБ.

    Выполнение инструкций в POWER4

    Микропроцессор POWER4 – высокочастотный, со спекулятивной суперскалярностью, с возможностью выполнения инструкций в другом порядке. Восемь независимых модулей выполнения инструкций (execution units) способны выполнять инструкции параллельно, обеспечивая значительный прирост производительности, известный как суперскалярность. Они включают два идентичных модуля выполнения инструкций с плавающей точкой (floating-point execution units), каждый способен выполнить за такт инструкции сложения и умножения (всего четыре операции с плавающей точкой за такт), два модуля загузки-выгрузки (load-store execution units), два модуля выполнения операций с фиксированной точкой (fixed-point execution units), модуль ветвлений (branch execution unit) и модуль условий (conditional register unit), используемый для выполнения логических операций.

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

    Предпосылки для многопоточной работы

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

    Однако, обычные процессоры выполняют инструкции из одного потока. Несмотря на улучшения микроархитектуры, утилизация модулей исполнения остается низкой. В среднем, она составляет 25%. Для увеличения утилизации модулей исполнения, разработчики используют параллелизм на уровне нитей, при котором физический процессор выполняет инструкции из разных нитей. Для операционной системы такое процессорное ядро выглядит как симметричный мультипроцессор с двумя логическими процессорами.

    Coarse-grained multi-threading

    При кропноблочной (coarse-grained) многопоточной обработке, только одна нить выполняется в один момент времени. Когда нить сталкивается с событием, предусматривающим долгое ожидание, например, промах по кэшу, аппаратура переключает управление на вторую нить, вместо того, чтобы простаивать. Эта схема увеличивает общую пропускную способность. Обе нити совместно используют многие системные ресурсы, например, архитектурные регистры. Однако, переключение с одной нити на другую занимает несколько процессорных тактов. IBM реализовал такую схему в системе pSeries Model 680.

    Крупноблочная многопоточность была представлена в серии процессоров IBM Star (например, RS64-IV, в системе S85), чтобы улучшить производительность системы для многих задач. Многопоточный процессор улучшает использование ресурса ядра процессора, выполняя несколько аппаратных потоков параллельно. В линии Star одновременно выполнялось два параллельных потока.

    Процессор (например, RS64-IV) способен сохранять контекст двух нитей

  • Быстрое переключение между нитями минимизирует потерю тактов из-за ожиданий ввода-вывода или промахов в кэше
  • Может дать улучшение производительности ~20% (OLTP-задачи)
  • Дает преимущество только при более, чем двухкратном превышении количества активных нитей количества процессоров

    AIX должен создать нить-"пустышку" при нехватке реальных нитей

    Ненужные переключения на нити-"пустышки" могут снизить производительность на ~20%

  • Не работает с dynamic CPU deallocation
  • Основная идея состоит в том, что, когда одна или более нитей (потоков) процессора остановлены на большое временя ожидания (например, при промахе в кэш), другие работают на ядре. Однако, ОС AIX должна была знать о различии между логическими и физическими процессорами и отвечала за то, что каждый логический процессор имел диспетчеризируемую нить - даже создавая нити – "пустышки" (idle).

    Необходимо отметить, что крупноблочная многопоточность широко никогда не использовалась клиентами. Частично это было вследствие того, что это не было активизировано по умолчанию и требовало, перезагрузки для активизации. Другой причиной было то, что прирост производительности был произвольным, и мог, реально, иметь отрицательную величину. Для рабочих нагрузок с высокими соотношениями нить/процессор (например, TPC-C), HMT может дать ~20% прирост производительности.

    При других нагрузках, например, системах бизнес-аналитики (BI), где соотношение нить/процессор - <2:1, AIX вынужден создавать фиктивные потоки. Переключение на\из этих фиктивных потоков занимает приблизительно шесть процессорноых тактов, тогда как без крупномоблочной многопоточности AIX вообще не производил бы переключение контекста. Другой недостаток крупноблочной многопоточности состоял в том, что он отключал динамическое освобождение процессоров (Dynamic CPU Deallocation).

    Fine-grained multi-threading

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

    Выполнение инструкций в POWER5

    Ядро процессора POWER5 поддерживает как многопоточный режим (SMT), так и однопоточый. На этой диаграмме показан конвейер инструкций POWER5, который является идентичным POWER4.

    Все задержки в POWER5, включая ошибки модуля предсказания переходов и время ожидания загрузки с удачным обращением в кэш данных L1, являются такими же, как в POWER4. Идентичная конвейерная структура позволяет оптимизации, разработанной для POWER4, работать на POWER5. В режиме SMT, POWER5 использует два отдельных регистра адреса вызова команды (instruction fetch address registers), чтобы хранить счетчики для двух потоков.

    В однопоточном режиме, POWER5 использует только одну программу и может выбрать команды для этой нити каждый такт. Он может выбирать до восьми команд из кэша инструкций каждый такт.

    Некоторые различия:

    В процессоре 120 регистров общего назначения (GPR) и 120 регистров с плавающей точкой (FPR).

    В однопоточном режиме, POWER5 делает все физические регистры доступными единственной нити, позволяя более высокий параллелизм на уровне инструкций.

    L1 кэш инструкций и данных имеет тот же самый размер, как и в POWER4 - 64 КБ и 32 КБ - но их ассоциативность удвоилась.

    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 – многопоточный режим работы процессора
  • Страницы:

    Технологии и инновации IBM

    IBM и технологии

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

    У IBM имеется богатый опыт открытий и инноваций, получивший международное признание. В дополнение к пяти Нобелевским Премиям, исследователи IBM получили пять Американских Медалей за Технологии (U.S. National Medals of Technology), пять Национальных Медалей за Научные Достижения (National Medals of Science) и 19 членств в Национальной Академии Наук (National Academy of Sciences). IBM Research имеет более 40 членов National Academy of Engineering.

    В течение лет IBM регулярно получает патенты - всего более 25000 патентов – примерно на 7000 больше, чем ближайший конкурент. Но что более важно, чем статистика – это эффект, который эти патенты и открытия дают на рынке, и то, что они делают нечто действительно инновационное. Возможность создавать улучшенные технологии быстрее дает IBM значительное преимущество. За последние 10 лет, такие прорывы, как медные чипы, Web-кэширование и кремниево-германиевый сплав, помогли клиентам IBM получить значительное преимущество.

    Технологии и инновации

  • Наличие технологий – необходимый первый шаг
  • Инновации – обнаружение новых креативных способов использования этих технологий
  • Дизайн решения – возможность инновационного применения технологий
  • IBM – технологический лидер

    IBM лидирует по количеству патентов в течение последних 12 лет, значительно опережая ближайших конкурентов. При этом большая часть запатентованных технологий внедряется в промышленное производство в год их изобретения.

    Значительную долю от общего числа патентов IBM составляют патенты, которые были получены за технологии изготовления и сборки полупроводниковых микросхем, разработанные подразделением IBM Microelectronics Division. Инициатива IBM по разработке новейших технологий кристаллов привела к открытию в 2002 г. в г. Ист-Фишкилл (штат Нью-Йорк) завода по производству полупроводниковых микросхем, на котором используется самое передовое технологическое оборудование в мире. (Источник: http://www.gorr.state.ny.us/gorr/10_10_00gov_ibm.htm).

    Процессорные технологии

    Copper Circuitry for Silicon Wafers

    Медь – лучший электрический проводник, чем алюминий

    SOI Silicon-On-Insulator

    Тонкий слой SiO2 размещается под кремниевой поверхностью для изоляции миллионов транзисторов от электрических помех

    Эти технологии позволяют увеличить количество транзисторов на чипе, повысить тактовую частоту, снизить электропотребление и повысить надежность процессоров.

    В 1990 г. корпорация IBM начала выпуск первых систем RS/6000 $$\text{\textregistered}$$ на базе процессора POWER. С тех пор процессоры, созданные по технологии Power Architecture, не раз признавались лучшими в отрасли, а список используемых в них инновационных технологий становился все больше и больше. К таким крупным достижениям можно отнести технологию использования медных соединительных проводников, технологию "кремний на изоляторе", а также технологии применения двух ядер на одном кристалле и многопоточной обработки. В результате этих инноваций современные процессоры POWER5+ продолжают удерживать лидерство по показателям производительности.

    История архитектуры POWER

  • 1980 Reduced Instruction Set Computer (RISC) – Суперскалярность
  • 1990 POWER systemPerformance Optimization With Enhanced RISC
  • Пятое поколение - POWER5
  • John Cocke (30 мая 1925 – 16 июля 2002) – американский ученый, получивший наибольшее признание за его вклад в компьютерную архитектуру и оптимизацию компиляторов. Он признается многими как "отец RISC-архитектуры".

    1980: IBM строит первый прототип компьютера на базе RISC (Reduced Instruction Set Computer) архитектуры. Основываясь на предложениях ученого Джона Кока (John Cocke) в начале 70-х, RISC-концепции упростили инструкции, выполняемые на процессорах. Сейчас RISC-архитектура – основа большинства рабочих станций и UNIX серверов и часто видится основной компьютерной архитектурой будущего.

    1990: IBM анонсирует свою новыю линию компьютеров - RISC System - RS/6000, которая сейчас называется IBM eServer pSeries (новое название – IBM System p), под управлением AIX V3. Системная архитектура получила название POWER (POWER1) - Performance Optimization With Enhanced RISC.

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

    Производительность компьютера зависит не только от производительности и количества процессоров, но и от множества других факторов, включая, например, производительность операционной системы.

    Продуктовая линия POWER

    На одном кристалле POWER4 и POWER5 находится два процессора, каждый со своим L1 кэшем и с общим L2 кэшем.

    Развитие процессоров POWER применительно к серверам pSeries, а также IBM eServer i5 и iSeries $$\text{\texttrademark}$$ до 2007 г. предполагает усовершенствование вычислительных возможностей процессора POWER5, что позволит заказчикам превзойти доступные на сегодняшний день уровни загрузки вычислительных ресурсов и продуктивности.

    На новом заводе впервые в мире (источник: http://www.gorr.state.ny.us/gorr/10_10_00gov_ibm.htm) были применены уникальные технологии IBM по производству полупроводниковых кристаллов, такие как использование медных соединительных проводников и технология "кремний на изоляторе" (SOI) для 300-миллиметровых пластин. Завод по производству полупроводников предназначен для изготовления кристаллов по технологическому процессу с проектной нормой менее 100 нанометров. В оборудование технологических линий было вложено примерно 2,5 млрд. долл. США, что является самым большим за все историю штата Нью-Йорк объемом инвестиций. (Источник: http://www.gorr.state.ny.us/gorr/10_10_00gov_ibm.htm)

    POWER4 Single-Chip Module

    В однопроцессорной системе на кристалле находится один процессор.

    Multichip Module

    МCM используется при построении систем старшего уровня.

    32-Way Backplane

    32-х процессорная система состоит из 4-х MCM, на каждом по 4 двухпроцессорных кристалла.

    POWER5 – Dual Chip Module

    На DCM находится два кристалла – процессорный (2 процессора) и L3 кэш, находящийся на отдельной от основной памяти шине.

    Процессор POWER5 поддерживает 64-битную архитектуру PowerPC. Один кристалл содержит два одинаковых процессорных ядра, каждое поддерживает одновременное исполнение двух логических нитей. Эта архитектура делает чип выглядящим как 4-х процессорная SMP-система для операционной системы.

    POWER5+ Quad-Core Module

    Инновационный дизайн. Высокая эффективность

  • Первый 4-х процессорный блок в индустрии
  • Два 2-х процессорных кристалла POWER5+ в одном блоке
  • Мультипоточные процессоры позволяют запускать восемь нитей одновременно (на сокет)
  • 72Мб высокоскоростной кэш (36Мб на каждый чип POWER5+)
  • Относительно небольшой размер модуля
  • Реализован с использованием технологии MCM и многопроцессорных чипов
  • Улучшения в POWER5+

  • 15% повышение тактовой частоты; более высокая скорость шины
  • 37% уменьшение размера
  • Уменьшенное энергопотребление
  • Поддержка больших страниц памяти
  • Улучшения в контроллере памяти
  • Поддержка Quad-Core Module
  • Увеличенная производительность
  • Модули POWER5+

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

    Ядра POWER4 и POWER5

    POWER4 415mm2 115W @1.1 GHz, 156W @ 1.3 GHz 174M транзисторов

    POWER4+ 267mm2 75W @ 1.2 GHz, 95W @ 1.45 GHz, 125W @ 1.7 GHz 184M транзисторов

    POWER5 389mm2 167W @ 1.65 GHz 276M транзисторов

    Процессор POWER5 был разработан с учетом двоичной и структурной совместимости с системами POWER4 для обеспечения поддержки всех существующих приложений.

    POWER5

  • Для систем как начального, так и старшего уровня
  • Улучшенная подсистема памяти
  • Увеличенная производительность
  • Simultaneous Multi-Threading
  • Аппаратная поддержка микро-разделов (Shared Processor Partitions)
  • Динамическое управление питанием
  • Совместимость с POWER4
  • Улучшенные функции RAS
  • Каждое процессорное ядро имеет отдельный 64 КБ L1 кэш инструкций и 32 КБ L1 кэш данных. L1 кэш совместно используется двумя нитями на процессорном ядре. Оба процессорных ядра совместно используют 1.88 МБ L2 кэш. На процессорном чипе находится контроллер L3 кэша.Сам L3 кэш находится на отдельном чипе - Merged Logic DRAM (MLD) cache chip. L3 кэш - 36 МБ victim cache L2 кэша. L3 совместно используется двумя процессорными ядрами чипа POWER5. L2 и L3 кэши совместно используются всеми аппаратными нитями на обоих процессорных нитях в чипе. В отличие от POWER4, который был ориентирован на приложения систем старшего уровня, дизайн POWER5 ориентирован на широкий спектр приложений – начиная от 1-2-х процессорных систем начального уровня и заканчивая 64-х процессорными серверами старшего уровня.

    SMPLink – технология соединения без коммутации с очень малой задержкой, которая позволяет узлам быть соединенными как плоская SMP-система. Порты SMPLink находятся непосредственно на чипе POWER5. При подключении, SMPLink предоставляет прямое соединение между каждым чипом POWER5.

    С внедрением SMT, больше инструкций выполняются за такт на процессорном ядре, увеличивая общую частоту переключений на ядре и кристалле.

    Улучшенная подсистема памяти

    Улучшенный дизайн L1 кэша

  • 2-way ассоциативный кэш инструкций
  • 4-way ассоциативный кэш данных
  • Новый алгоритм замещения (LRU вместо FIFO)
  • Больший объем L2 кэша

  • 1.9 Mб, 10-way ассоциативный кэш
  • Улучшенный дизайн L3 кэша

  • 36 Mб, 12-way ассоциативный кэш
  • L3 на процессорной стороне фабрики
  • Более частые попадания в кэш
  • Избежание трафика на междучипном соединении фабрики
  • Контроллер каталога и памяти L3 – на чипе

  • L3 каталог на чипе уменьшает задержки при на выходе из чипа после "промаха" в L2 кэше
  • Уменьшенные задержки при обращении к памяти
  • Улучшенные алгоритмы

    L1 кэш инструкций – двухпоточный, ассоциативный, с политикой замещения LRU (Least Recently Used). L1 кэш инструкций когерентен с L2 кэшем. L1 кэш данных – четырехпоточный, ассоциативный, с политикой замещения LRU (Least Recently Used). Модифицированные данные в L1-кэше не хранятся.

    L2 кэш доступен обоим ядрам на чипе. Он поддерживает полную аппаратную когерентность с системой и может поддерживать интервенцию данных в ядра на других чипах POWER5.

    1.88 МБ (1920 КБ) L2 кэш физически реализован тремя слоями, каждое размером 640 КБ. Каждый слой имеет отдельные контроллеры. Каждое ядро имеет независимый доступ к каждому контроллеру. Слои – десятипоточные, ассоциативные. Десятипоточная ассоциативность (по сравнению с восьмипоточной на POWER4) позволяет снизить замусориванние кэша путем предоставления болльшего количества мест для хранения данных на каждой линии.

    L3 кэш - 36 МБ, доступный обоим ядрам на процессорном чипе POWER5. Он обеспечивает полную аппаратную когерентность с аппаратурой системы и может обеспечивать интервенцию данных в ядра на других процессорных чипах POWER5. Логически, L3 – встроенный (inline) кэш. L3 кэш – не подмножество L2 кэша; одна и та же строка никогда не находится в них обоих одновременно. L3 кэш реализован как внешний, отдельный MLD чип, но его каталог находится на процессорном кристалле. Это помогает процессору проверять каталог после промаха по L2 без дополнительной задержки. L3 кэш в POWER5 находится на процессорной стороне фабрики. Этот дизайн позволяет обслуживать промахи по L2 кэшу чаще, избегая трафика на междучипном соединении.

    Контроллер памяти также находится на чипе POWER5, что позволяет снизить задержки при доступе к памяти.

    Процессор POWER4 поддерживает максимально 32-х процессорное симметричное мультипроцессирование. Большее количество процессоров увеличивает межпроцессорное взаимодействие, увеличивая тем самым более высокий уровень трафика.Это может негативно повлиять на масштабируемость системы. Перемещение L3-кэша на процессорную сторону фабрики позволяет процессору POWER5 обслуживать промахи по L2 более часто, с попаданиями в L3 кэш, избегая лишнего трафика на межпроцессорном соединении.Это обеспечивает больший уровень масштабирования.Сейчас системы на базе POWER5 поддерживают 64 процессора.

    POWER4 содержит на чипе L2 кэш 1.41 МБ. Чип POWER4+ схож по дизайну с POWER4, но сделан по технологии 130 нм, в отличие от POWER4 (180 нм). POWER4+ содержит на чипе L2-кэш 1.5 МБ. POWER4 и POWER4+ имеют L3 кэш размером 32 МБ.

    Выполнение инструкций в POWER4

    Микропроцессор POWER4 – высокочастотный, со спекулятивной суперскалярностью, с возможностью выполнения инструкций в другом порядке. Восемь независимых модулей выполнения инструкций (execution units) способны выполнять инструкции параллельно, обеспечивая значительный прирост производительности, известный как суперскалярность. Они включают два идентичных модуля выполнения инструкций с плавающей точкой (floating-point execution units), каждый способен выполнить за такт инструкции сложения и умножения (всего четыре операции с плавающей точкой за такт), два модуля загузки-выгрузки (load-store execution units), два модуля выполнения операций с фиксированной точкой (fixed-point execution units), модуль ветвлений (branch execution unit) и модуль условий (conditional register unit), используемый для выполнения логических операций.

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

    Предпосылки для многопоточной работы

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

    Однако, обычные процессоры выполняют инструкции из одного потока. Несмотря на улучшения микроархитектуры, утилизация модулей исполнения остается низкой. В среднем, она составляет 25%. Для увеличения утилизации модулей исполнения, разработчики используют параллелизм на уровне нитей, при котором физический процессор выполняет инструкции из разных нитей. Для операционной системы такое процессорное ядро выглядит как симметричный мультипроцессор с двумя логическими процессорами.

    Coarse-grained multi-threading

    При кропноблочной (coarse-grained) многопоточной обработке, только одна нить выполняется в один момент времени. Когда нить сталкивается с событием, предусматривающим долгое ожидание, например, промах по кэшу, аппаратура переключает управление на вторую нить, вместо того, чтобы простаивать. Эта схема увеличивает общую пропускную способность. Обе нити совместно используют многие системные ресурсы, например, архитектурные регистры. Однако, переключение с одной нити на другую занимает несколько процессорных тактов. IBM реализовал такую схему в системе pSeries Model 680.

    Крупноблочная многопоточность была представлена в серии процессоров IBM Star (например, RS64-IV, в системе S85), чтобы улучшить производительность системы для многих задач. Многопоточный процессор улучшает использование ресурса ядра процессора, выполняя несколько аппаратных потоков параллельно. В линии Star одновременно выполнялось два параллельных потока.

    Процессор (например, RS64-IV) способен сохранять контекст двух нитей

  • Быстрое переключение между нитями минимизирует потерю тактов из-за ожиданий ввода-вывода или промахов в кэше
  • Может дать улучшение производительности ~20% (OLTP-задачи)
  • Дает преимущество только при более, чем двухкратном превышении количества активных нитей количества процессоров

    AIX должен создать нить-"пустышку" при нехватке реальных нитей

    Ненужные переключения на нити-"пустышки" могут снизить производительность на ~20%

  • Не работает с dynamic CPU deallocation
  • Основная идея состоит в том, что, когда одна или более нитей (потоков) процессора остановлены на большое временя ожидания (например, при промахе в кэш), другие работают на ядре. Однако, ОС AIX должна была знать о различии между логическими и физическими процессорами и отвечала за то, что каждый логический процессор имел диспетчеризируемую нить - даже создавая нити – "пустышки" (idle).

    Необходимо отметить, что крупноблочная многопоточность широко никогда не использовалась клиентами. Частично это было вследствие того, что это не было активизировано по умолчанию и требовало, перезагрузки для активизации. Другой причиной было то, что прирост производительности был произвольным, и мог, реально, иметь отрицательную величину. Для рабочих нагрузок с высокими соотношениями нить/процессор (например, TPC-C), HMT может дать ~20% прирост производительности.

    При других нагрузках, например, системах бизнес-аналитики (BI), где соотношение нить/процессор - <2:1, AIX вынужден создавать фиктивные потоки. Переключение на\из этих фиктивных потоков занимает приблизительно шесть процессорноых тактов, тогда как без крупномоблочной многопоточности AIX вообще не производил бы переключение контекста. Другой недостаток крупноблочной многопоточности состоял в том, что он отключал динамическое освобождение процессоров (Dynamic CPU Deallocation).

    Fine-grained multi-threading

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

    Выполнение инструкций в POWER5

    Ядро процессора POWER5 поддерживает как многопоточный режим (SMT), так и однопоточый. На этой диаграмме показан конвейер инструкций POWER5, который является идентичным POWER4.

    Все задержки в POWER5, включая ошибки модуля предсказания переходов и время ожидания загрузки с удачным обращением в кэш данных L1, являются такими же, как в POWER4. Идентичная конвейерная структура позволяет оптимизации, разработанной для POWER4, работать на POWER5. В режиме SMT, POWER5 использует два отдельных регистра адреса вызова команды (instruction fetch address registers), чтобы хранить счетчики для двух потоков.

    В однопоточном режиме, POWER5 использует только одну программу и может выбрать команды для этой нити каждый такт. Он может выбирать до восьми команд из кэша инструкций каждый такт.

    Некоторые различия:

    В процессоре 120 регистров общего назначения (GPR) и 120 регистров с плавающей точкой (FPR).

    В однопоточном режиме, POWER5 делает все физические регистры доступными единственной нити, позволяя более высокий параллелизм на уровне инструкций.

    L1 кэш инструкций и данных имеет тот же самый размер, как и в POWER4 - 64 КБ и 32 КБ - но их ассоциативность удвоилась.

    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 – многопоточный режим работы процессора
  • Вернуться к учебному плану