Итоги IDF 2005. Часть 1. Многоядерность и 64-битность



Установите себе проигрыватель Flash для отображения графического оформления статьи

Многоядерные процессоры — стратегия или тактика?

Но вернемся к гвоздю программы этого IDF — многоядерным процессорам. Еще полгода назад на Форуме руководители корпорации утверждали, что двуядерность — это не гонка, и Intel не спешила с представлением, например, двуядерного Xeon, предпочитая дождаться, чтобы появилось как можно больше приложений, оптимизированных для многопроцессорной работы.

Однако нынче приоритет многоядерности у Intel повысился до максимально возможного уровня — почти все CPU (пока за исключением, разве что, XScale) корпорация стремится быстро перевести на рельсы параллельных вычислений. И этому есть вполне понятные технологические объяснения. Ведь тактовую частоту интегральных схем со многими миллионами и даже миллиардами транзисторов становится повышать все труднее и труднее даже при продолжающейся миниатюризации транзисторов, поскольку при этом требуется синхронизировать работу блоков, расположенных далеко друг от друга на кристалле (что приводит к росту латентности работы отдельных блоков, удлинению вычислительного конвейера и пр.). Да и по ряду других причин повышать частоту все сложнее: например, из-за роста тепловыделения на единицу площади кристалла при повышении тактовой частоты — локальному теплоотводу тоже есть определенные пределы. С другой стороны, закон Мура, который в этом году празднует сороковую годовщину, пока в силе и, как мы видели ранее, останется, видимо, в силе еще лет 15-20. То есть количество транзисторов на кристалле будет продолжать удваиваться примерно каждые два года. В этих условиях самым простым и выгодным способом наращивания производительности микропроцессоров является организация параллельных вычислений — будь то несколько одинаковых ядер на одном кристалле или несколько кристаллов, упакованных в один корпус. В этом случае не увеличивая тактовую частоту можно получить многократный рост производительности системы простым добавлением ядер. И у Intel на этот счет — вполне конкретные планы:

Безусловно, и такому подходу свойственны определенные ограничения. Во-первых, для того, чтобы производительность от параллельных вычислений могла заметно возрасти, необходимо, чтобы приложения умели использовать эти возможности, то есть были оптимизированы для многопоточной работы и хорошо масштабировались. А с этим далеко не все так просто. И если для двух или четырех процессоров оптимизировать многие приложения еще не очень сложно, то эффективно распараллелить выполнение задач на 16 или 32 потока (чтобы при этом масштабирование было ощутимо) уже очень непростая задача (не говоря о большем числе потоков). Во-вторых, пока ядер мало, обслуживающая их инфраструктура (системные шины и шины связи, контроллеры периферии и пр.) еще может быть достаточно компактна, но при возрастании количества процессоров эта инфраструктура может стать узким местом, способным погубить всю идею масштабируемости (и эти проблемы хорошо известны, например, при создании вычислительных кластеров). Наконец, 2, 4 или 8 ядер разместить вместе на одном кристалле или в одном корпусе — еще не так сложно, но как быть, если параллельных ядер — 16, 32 и больше?

Таким образом, нынешнее увлечение Intel мультиядерностью — это, на мой взгляд, некий тактический (в глобальном понимании процесса развития IT-отрасти) ход, способный решить проблемы с наращиванием производительности систем на ближайшие лет 10 (в пределах 8-16 ядер на один процессор). Однако до тех пор, пока не будут решены некоторые принципиальные (отмеченные выше) моменты, говорить о том, что мультиядерность станет стратегическим направлением развития всей вычислительной техники в будущем, явно преждевременно. Вместе с тем, по словам Гелсингера, в ближайшие четыре года мультиядерность способна увеличить производительность систем Intel раз в десять, тогда как за предшествующую «четырехлетку» интеловской «гонки за частотой» она лишь утроилась.

Впрочем, Джастин Раттнер (Justin Rattner), почетный сотрудник корпорации Intel и директор подразделения Intel Corporate Technology Group, в своем ключевом докладе последнего дня IDF подчеркнул, что требование использования новых подходов в разработке аппаратного и программного обеспечения вынуждают пересмотреть подход к разработке платформ. В частности, можно использовать высокоскоростные оптические системные шины на кремнии и перейти от multi-core к новой парадигме — many-core:

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

Кроме этого в будущем предполагается увеличить число параллельных вычислительных потоков и ядер процессора до сотен при количестве транзисторов на кристалле в десятки миллиардов и скорости передачи данных между чипами в сотни гигабайт в секунду. А ресурсоемкими (я бы даже сказал — ресурсожадными) приложениями для таких мощных вычислительных систем могут служить системы с человекоподобным поведением, генерация в реальном времени реалистичных трехмерных изображений и голоса, виртуальная реальность. Например, Intel продемонстрировала в работе систему на базе 32 процессоров Itanium с видеокамерой высокого разрешения, которая в реальном времени анализировала лица проходящих мимо (с обычной пешей скоростью) людей и по базе данных из двух миллионов изображений идентифицировала личность (использовалось программное обеспечение от IntelliTrak).



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

Пока же Intel планирует, что скоро около 80% всех ее микропроцессоров станут двуядерными и мультиядерными, а, например, в 2006 году 85% серверных и 70% клиентских компьютеров (ноутбуков и десктопов) будут иметь двуядерные процессоры.

Многоядерные процессоры — основные положения

Итак, что же, собственно, такое Multi-Core в понимании Intel? Ответ дает простой рисунок:

То есть в зависимости от эффективности и дешевизны производства может быть три варианта многоядерных (или двуядерных) процессоров:

  1. Совершенно независимые процессорные ядра, каждое со своей кэш-памятью, расположены на одном кристалле и просто используют общую системную шину. Таким будет ближайший 90-нанометровый Pentium D на ядре Smithfield.
  2. Похожий вариант — когда несколько одинаковых ядер расположены на разных кристаллах, но объединены вместе в одном корпусе процессора (многочиповый процессор). Таким будет 65-нанометровое поколение процессоров семейств Pentium и Xeon на ядрах Presler и Dempsey.
  3. Наконец, ядра могут быть тесно переплетены между собой на одном кристалле и использовать некоторые общие ресурсы кристалла (скажем, кэш-память). Таким является ближайший Itanium на ядре Montecito.


Кстати, Montecito, изготавливаемый по 90-нм техпроцессу, будет иметь по сравнению с предшественником на 130-нм ядре Madison и ряд других преимуществ: наличие Hyper-Threading (то есть он будет виден в системе как 4 логических процессора), заметно меньшее энергопотребление, более высокую производительность (в 1,5 раза и выше), вчетверо больший размер кэш-памяти (свыше 24 Мбайт: 2×1 Мбайт L2 инструкций, 2×12 Мбайт L3 данных), 1,72 миллиарда транзисторов против 410 миллионов и многое другое. Выйдет этот процессор в четвертом квартале 2005 года.

Но вернемся к вариантам двухъядерности. На данный момент в работе у Intel находится несколько таких проектов, которые различаются между собой некоторыми подходами. Например, ближайшие Pentium D и Extreme Edition на ядре Smithfield — это фактически два полностью независимых ядра, просто расположенные рядом на одном куске кристалла кремния.


Ядро Smithfield

То же самое — для будущих настольных Presler, только там каждое ядро будет отдельным куском кремния. То есть фактически в одном корпусе процессора Presler будет объединено два одноядерных кристалла процессора Cedar Mill.


Presler


Cedar Mill

И если у Smithfield на каждое из ядер приходится по 1 Мбайт кэш-памяти второго уровня, то у Presler это будет уже по 2 Мбайт (то есть 4 Мбайт на весь двухъядерный процессор). Для наглядности — следующие блок-схемы:


Pentium 4


Smithfield


Presler

У серверных процессоров, предназначенных для работы в многопроцессорных системах, ситуация чуть сложнее — в отличие от настольных Smithfield и Presler, а также от серверного Dempsey (который по сути идентичен по кремнию Presler) процессоры на будущем ядре Paxville будут иметь общую системную шину на два процессорных ядра, хотя кэш-память по-прежнему будет своя у каждого из ядер.


Paxville

Это наглядно видно из следующих блок-схем:


Платформа на Dempsey


Платформа на Paxville

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

[ Читайте далее: Многоядерные процессоры — ближайшие планы ]

[ Вся статья на одной странице ]




Дополнительно