Russian Hamradio - От Pentium 4 Hyper Threading к многоядерным процессорам Multicore Processors.
Сайт радиолюбителей Республики Коми.
От Pentium 4 Hyper Threading к многоядерным процессорам Multicore Processors.
На главнуюГлавная

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

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

  • уменьшением размеров полевых транзисторов и ростом их рабочих частот за счет уменьшения размеров деталей интегральных микросхем [1];
  • увеличением числа транзисторов, позволяющим вводить различные архитектурные новинки (кэш-память, конвейеры, блоки предсказания команд и т.д.) [2];
  • переходом на большую разрядность (64 вместо 32);
  • использованием параллельных потоков и процессов;
  • параллельной работой микропроцессоров или ядер микропроцессоров (рис. 1).

Рис. 1. Микрофотография одного из первых двухъядерных процессоров

За примерно 40 лет развития микропроцессоров корпорации Intel их частота возросла со 108 кГц (первый процессор 4004) до 4 ГГц (Pentium 4), т.е. почти в 40 000 раз [2]. Это, как и архитектурные усовершенствования одиночных микропроцессоров, способствовало быстрому повышению производительности как процессоров, так и различных электронных устройств на их основе — начиная от компьютеров и кончая бытовыми и промышленными устройствами с микропроцессорным управлением.

К сожалению, рост производительности процессоров до сих пор приводил к усложнению одиночного микропроцессора, росту числа транзисторов на его кристалле по „закону Мура” (удвоение примерно каждые полтора-два года) и росту потребляемой мощности от источников питания (и, соответственно, нагреву микропроцессора). В последние годы рост рабочих частот микропроцессоров стал явно замедляться, тогда как потребляемая ими мощность продолжала расти. Она уже достигает сотни ватт (и выше) у процессоров для настольных ПК и серверов, которые ныне производятся по технологии с разрешением в 90 и даже 65 нм.

Дальнейшее уменьшение размеров полевых транзисторов интегральных микросхем, необходимое для повышения предельных частот их работы, требует уменьшения геометрического разрешения, уже перешедшего рубеж оптической фотолитографии [3, 4]. Недавно Intel объявила о начале строительства второго завода, в котором планируется производство микросхем с разрешением в 45 нм.

Однако у транзисторов, созданных на основе современных нанотехнологий с таким разрешением, появились принципиальные физические ограничения — разброс параметров, рост токов утечки затвора и стока, а также потеря управляемости. Когда число транзисторов на кристалле микропроцессора достигает десятков и даже сотен миллионов, их работа при умеренной потребляемой мощности микропроцессора (примерно до 100 Вт) возможна только в режиме микротоков, когда рабочие токи стока каждого транзистора уменьшаются до уровня, сравнимого с токами утечки. При этом теряется управляемость транзистора. Хотя были достигнуты замечательные результаты по уменьшению токов утечки в сотни раз [4], стало ясно, что именно этот физический фактор и ограничение на потребляемую мощность стали главным препятствием на пути совершенствования микропроцессоров.

Было придумано множество новинок для хотя бы частичного улучшения производительности процессоров в условиях ограничения потребляемой мощности:

  • применение кэш-памяти разного уровня и разной архитектуры;
  • увеличение длины конвейера для одновременного исполнения ряда команд;
  • повышение рабочих частот системной шины до 800-1033 МГц;
  • использование медных проводников, лучше проводящих ток, чем алюминиевые;
  • деформация кристаллической решетки кремния для улучшения его электропроводности;
  • создание специальных устройств контроля за электропитанием.

Венцом микропроцессоров, вобравших в себя все эти улучшения, стал процессор Pentium 4, рабочие частоты которого достигли более 3 ГГц [5]. Но этого оказалось недостаточно. Стало ясно, что дальнейшее повышение производительности микропроцессоров возможно на пути параллелизма в обработке потоков и выполнении вычислительных операций.

Процессор наглядно можно представить в виде некоторого помещения, в котором сосредоточены его узлы. Системная шина — это как бы транспортер, через который в процессор поступает прерывистый (thread) поток информации (данные и коды программ). Его можно уплотнить. Эта идея была реализована в процессорах Pentium 4 Hyper Threadind. Скорость работы процессоров с использованием двух потоков вместо одного при наличии специального программного обеспечения повышалась на 30-40%, при этом уплотнение потока достигалось очень незначительным усложнением архитектуры процессора. Примечательно, что современная операционная система ПК Windows XP опознает ПК с процессором Pentium 4 HT как двухпроцессорный компьютер. Однако это не исключает необходимости специальной поддержки данной технологии и прикладными программами.

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

Однако развитие ПК, цифровых измерительных и бытовых устройств ставит на повестку дня вопрос о повышении производительности и одиночных, не слишком дорогих, процессоров. При этом „одиночность” понимается лишь как представление процессора в одном корпусе в виде единичного изделия. Ничто, в принципе, не мешает расположить в одном корпусе или даже на одном кристалле с десяток процессоров уже в наше время. Поскольку процессоры (или ядра процессора) имеют общие шины ввода/вывода, адресов и управляющих сигналов, то заметного усложнения корпуса и роста числа выводов не происходит. Зато многие идеи, развитые при проектировании многопроцессорных суперкомпьютеров, переносятся на процессоры обычных ПК — серверов, настольных ПК и ноутбуков.

В конце 2004 г. корпорация Intel объявила о создании у себя большой группы российских исследователей и разработчиков под руководством чл.-кор. РАН Б. А. Бабаяна, который до этого возглавлял коллектив создателей отечественной супер-ЭВМ „Эльбрус”. Пока директор по архитектуре микропроцессоров Б. А. Бабаян формирует новый коллектив из сотен сотрудников, корпорация Intel на форуме своих разработчиков IDF-2005 объявила о принципиально новой стратегии в разработке массовых микропроцессоров — переходе к производству многоядерных процессоров (Multicore Processors).

В русском языке слова „много” означает „два и выше”. Естественно, что первыми появились просто спаренные микропроцессоры Intel Pentium Extreme Edition 840 (на основе ядра Prescott), Pentium D, Itanium 2 (Montecito) и др. — см. рис. 2.

Рис. 2. Первенцы серийных двухъядерных процессоров корпорации Intel

По данным форума разработчиков Intel IDF2005 уже идет работа над полутора десятками типов многоядерных процессоров, при этом первые типы серийных двухъядерных процессоров и ПК на их основе появились уже во второй половине 2005 года. По прогнозам аналитиков, к концу 2006 г. свыше 70% рынка настольных систем будут оснащены процессорами многоядерной архитектуры.

Не вдаваясь во многие детали конструкции и архитектуры новых процессоров, отметим, что первым двухъядерным процессором корпорации Intel стал Pentium Extreme Edition 840. Он появился еще в апреле 2005 года. Оба ядра этого мощного процессора поддерживают технологию Hyper Threading, так что процессор распознается операционной системой как 4-процессорный. Боле дешевым вариантом стал процессор Pentium D (D слова Double) — см. рис. 3.

Рис. 3. Самый дешевый двухъядерный процессор корпорации Intel — Pentium D

Этот процессор также двухъядерный, но доступ к реализованной в ядрах технологии Hyper Threading пока закрыт ради удешевления использования процессора без дополнительного программного обеспечения. Есть уже опытные образцы микропроцессоров Intel c 4-8 ядрами.

А для корпоративных пользователей уже в конце 2005 года стал доступен серверный двухъядерный процессор Itanium 2 (Montecito) с просто фантастическими физическими характеристиками. Этот 64-битный процессор содержит 1,7 миллиарда транзисторов, сделан по технологии с разрешением 90 нм, имеет кэш-память емкостью 24 Мбайт и потребляет около 100 Вт от источника питания. А уже в начале 2006 года запланирован выход двух 64-битных двухъядерных процессоров линейки Xeon.

Разработчики компьютеров были готовы к применению подобных микропроцессоров, поскольку в серверах давно практиковалось применение двух и более одиночных процессоров. Многие операционные системы поддерживают многопроцессорные системы и потому особых трудностей в их применении не возникло. Даже массовая операционная система Windows XP поддерживает работу двухпроцессорных систем. Ожидается, что в будущем операционные системы Windows будут не только поддерживать многоядерные процессоры, но и лицензировать их применение как единого процессора.

Однако читатель должен понимать, что есть существенная разница между многопроцессорными системами и процессорами с многими ядрами — Multicore Processors. Эта разница кроется в использовании окружающих процессор узлов, например кэш-памяти, оперативной памяти и др. Обычно многопроцессорные структуры имеют собственное окружение для каждого процессора, а многоядерные процессоры имеют общее окружение для всех ядер. Разумеется, возможны и промежуточные решения и даже процессоры с разными по специализации и назначению ядрами.

Тут уместно отметить, что Intel не является безусловным первенцем и монополистом в области разработки и выпуска многоядерных процессоров. Этой тематикой уже давно и успешно занимаются корпорации IBM, Sun Microsystems, AMD и др. Так, еще в 2001 г. корпорация IBM разработала свой первый универсальный двухъядерный (dual-core) процессор POWER 4, предназначенный для серверов IBM eServer линеек pSeries и iSeries. Устройство POWER 4 было уникально хотя бы тем, что в нем даже один кристалл — это уже мультипроцессорная система: в одном корпусе содержалось два 64-разрядных микропроцессора.

Архитектуру кристалла POWER 4 отличало несколько современных решений: суперскалярная структура, внеочередное исполнение команд, большая кэш-память на кристалле, специализированный порт для основной памяти, а также высокоскоростные линки для объединения микропроцессоров в системы с архитектурой распределенной разделяемой памяти. Каждый процессор POWER 4 имел два конвейерных блока для работы с 64-разрядными операндами с плавающей точкой, выбирающих на исполнение по пять команд каждый, и два блока для работы с памятью. Процессоры содержали раздельную кэш-память команд и данных 1-го уровня емкостью по 64 Кбайт каждая. Кроме того, имелась разделяемая (общая) кэш-память 2-го уровня на кристалле (емкостью 1,4 Мбайт) и внешняя кэш-память 3-го уровня (емкостью 32 Мбайт). Совместный доступ к внешней кэш-памяти выполнялся по технологии DSI (Distributed Switch Interconnect).

Каждый сдвоенный процессор POWER 4 был упакован в керамический мультипроцессорный модуль (размером 4,5х4,5 дюйма) вместе с тремя другими кристаллами. Эта базовая строительная единица называлась MCM (MultiChip Module). Такой модуль, содержащий четыре микросхемы POWER 4, в итоге объединял восемь процессоров. Стоит отметить, что наряду с параллелизмом на уровне команд процессор POWER 4 использовал и параллелизм на уровне потоков.

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

Фирма Sun Microsystems объявила о разработке многоядерных процессоров еще в 2003 г. В 2005 году ожидается выход UltraSparc IV (Niagara). Этот процессор нового поколения предназначен для интенсивной работы в сети для тонких серверов и может содержать до 8 ядер на одном чипе. За ним идет семейство процессоров Rock, предназначенное для решения сложных вычислительных задач и работы с базами данных.

О первых серверах и рабочих станциях на двухъядерном процессоре AMD (рис. 4) было объявлено всего спустя через три дня после Intel — 21 апреля 2005 г. Процессоры используют два ядра Opteron, имеют собственные иерархии кэш-памяти 1-го и 2-го уровня, используют одинаковый интегрированный контроллер памяти и технологию HyperTransport, которая была до этого применена в одноядерных процессорах. По данным тестирования, чипы AMD работают на некоторых тестах даже немного быстрее, чем процессоры Intel. Однако надежность последних выше.

Рис. 4. Микрофотография двухъядерного процессора фирмы AMD

AMD предлагает 64-разрядные двухъядерные процессоры Opteron для серверных систем и рабочих станций и 64-разрядные двухъядерные Athlon 64 — для настольных систем. Intel использует аналогичную 64-разрядную архитектуру EM64T в своих серверных процессорах Xeon и „настольных” Pentium 4 Extreme Edition.

Как уже отмечалось, давно работает над многоядерными процессорами компания IBM. Ее 64-битный двухъядерный IBM Power 5 имеет у каждого ядра раздельный кэш 1-го уровня (64 КБ для инструкций, 32 КБ для данных) и общий кэш 2-го уровня (1,875 МБ). За пределами чипа остался кэш 3-го уровня (обычно, 36 МБ). Эти процессоры используются в основном в собственных серверах корпорации, работающих под ОС AIX, Unix и Linux.

IBM также принимает участие в реализации проекта продвижения процессора Cell, вместе с Sony и Toshiba. Процессор появится в игровой консоли Sony PS3. Он предназначен для интенсивных вычислений и мультимедиа. В Cell входит ядро 64-битного Power, подключенного к 8 ядрам процессоров с обработкой операций с плавающей точкой. Процессор может поддерживать одновременно несколько операционных систем.

Что же касается платформы мобильных ПК [6], то тут двухъядерные процессоры корпорации Intel Yonah появились в конце 2005 года и стали первыми процессорами, изготовленными по технологии 65 нм. Yonah будет существовать как в двухъядерном, так и в бюджетном (и более экономичном по энергопотреблению) одноядерном варианте.

К сожалению, несмотря на готовность компьютерной индустрии к применению многоядерных процессоров, несколько обстоятельств омрачают их победное шествие. Прежде всего, это недостаточно высокая эффективность первых двухъядерных процессоров. Она связана с тем, что далеко не каждая решаемая задача допускает физическое распараллеливание. Целые классы задач, например, быстрое Фурье-преобразование, обработка запроса к базе данных, быстрые алгоритмы сортировок и т.д. не получают заметного выигрыша от распараллеливания либо не распараллеливаются в принципе. В итоге двухъядерные процессоры могут показать даже меньшую производительность, чем лучшие из обычных (одноядерных) процессоров.

Есть еще серьезная проблема обеспечения совместимости старых (для однопроцессорных архитектур) библиотек с новыми. Поэтому Intel заметно расширила штат программистов (в том числе в России), занятый созданием совместимых и безопасных библиотек, которые предполагают и гибкую настройку на конкретную вычислительную платформу. На повестке дня стоит динамическая реконфигурация библиотек, конечный вид которых будет определяться при загрузке задачи и выявлении текущей топологии системы.

Пока мало прикладных программ, поддерживающих даже двухъядерные процессоры, не говоря уже о многоядерных. Недавно Intel заключила крупное соглашение с разработчиками экстремальных компьютерных игр, направленное на создание игр с поддержкой многоядерных процессоров. Безусловно, это сулит быстрый коммерческий успех в виде увеличения объема продаж микропроцессоров. Однако куда более принципиальной и важной является поддержка таких процессоров программами для математических и научно-технических расчетов.

Автор этой статьи попытался выяснить, в какой степени такая поддержка характерна для систем компьютерной математики Derive, Mathcad, MATLAB, Maple, Mathematica и др., казалось бы специально созданных для выполнения параллельных вычислений. Большинство этих систем поддерживают параллельность вычислений (например, векторизацию) на программном уровне своих языков программирования и реализации. Однако, в их справке таких понятий как „Hyper Threading”, „Multicore” и „Multicore Processors” даже не оказалось, как и поддержки новых процессоров. Особенно досадным выглядит отсутствие такой поддержки у мощных матричных систем MATLAB Service Pack 3 с расширением имитационного блочного моделирования Simulink 6, вышедших осенью 2005 года.

Приятным исключением оказалась новейшая версия программы Mathematica 5.2, в которой впервые была обеспечившая поддержку даже опытных образцов 8-ядерных процессоров. Для больших матриц (размера до 2000ґ2000 элементов) выигрыш в скорости вычислений достигает нескольких раз, но он практически исчезает уже при размере матриц 500ґ500 — тоже не малом.

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

Владимир Дьяконов

Литература:

1. Дьяконов В. П. Intel. Новейшие информационные технологии. Достижения и люди. М.: СОЛОН-Пресс, 2004. — 416 с.

2. Дьяконов В. П., Максимчук А. А., Ремнев А. М. и Смердов В. Ю. Энциклопедия устройств на полевых транзисторах. /Под ред. проф. В. П. Дьяконова. М.: СОЛОН-Пресс, 2002. — 512 с.

3. Дьяконов В. П. Микропроцессоры и БИС накануне III-го тысячелетия. „Ремонт & Сервис”, № 1, 2000, c. 57-60.

4. Дьяконов В. П. Кирпичики для Pentium'ов. Сверхминиатюрные полевые транзисторы корпорации Intel. „Ремонт & Сервис”, № 6, 2004, c. 57-60.

5. Дьяконов В. П. Новый микропроцессор Pentium 4. „Ремонт & Сервис”, № 5, 2001, c. 2-3.

6. Дьяконов В. П. Новая платформа для мобильных компьютеров Intel Centrino 2. „Ремонт & Сервис”, № 11, 2005, c. 56-59.

РС2-2006

На главнуюГлавная
Rambler's Top100 Rambler's Top100