Забудьте о мегагерцах!
Сегодня уровень развития микропроцессоров самой распространенной
из архитектур достиг той отметки, когда линейный рост тактовой
частоты уже не приносит желаемого эффекта. Так, разницу между
скоростью работы, к примеру текстового редактора, на процессорах с
маркировкой 1200, 2200 или даже 3200 (причем не важно чего –
мегагерц или рейтинговых единиц), увидеть просто невозможно. Но с
другой стороны, существует целый ряд приложений, где
производительности никогда не бывает много, а потому вопрос «как же
ее повышать?» становится самым актуальным.
Первой данный факт признала компания Intel, кстати, негласно
исповедовавшая принцип продажи мегагерц. Естественно, ею был сделан
новый и, как водится, революционный ход стало — в процессорах для
настольных систем компания внедрила технологию Hyper-Threading.
Решение, надо признать, простое и элегантное: простаивающие ресурсы
физического процессора (а это происходит всегда) отдаются «в
подчинение» логическому чипу, который в результате оказывается
«вторым».
Однако и здесь не все гладко. Смысл от внедрения нескольких
процессоров — физических или логических — появляется лишь в том
случае, когда операционная система, системные и прикладные программы
«умеют» задействовать имеющиеся возможности. Хотя нужен ли второй
процессор, если Windows 98 все равно работает с одним? И лишь
Windows XP, более того, Windows XP с установленным Service Pack 2
уже способна адекватно работать с логическими процессорами.
Подчеркнем — с логическими, то есть можно говорить о корректной
поддержке технологии Hyper-Threading. Реально многопроцессорными
конфигурациями операционные системы семейства Windows NT не удивишь
уже давно, не говоря уже о различных *nix-клонах.
Впрочем, сегодня Hyper-Threading выглядит не так «свежо», как
хотелось бы, ведь развитие полупроводникового производства открывает
возможности для «усугубления» многопроцессорности на базе одного
чипа – а именно полноценной многоядерности. Как частный случай –
двухъядерности. Повышенный интерес производителей процессоров к
двухъядерному дизайну в немалой степени объясняется наличием такого
мощного оружия, как изготовление чипов с применением технологических
норм 90 нм. Уменьшение линейных размеров отдельно взятого
полупроводникового элемента (естественно, транзистора) ведет к
уменьшению линейных размеров всего чипа, позволяя выполнить
инженерный маневр — допустим, разместить большее количество
полупроводниковых элементов, формирующих, например, кэш-память
второго уровня. А почему бы и не второе ядро?
В нашем случае многоядерность подразумевает, конечно же, всего
два ядра, находящихся в пределах одного чипа – другими словами, это
два раздельных процессора на одной кремниевой подложке. Преимущества
такого подхода к проектированию высокопроизводительных процессоров
очевидны, тем более что два сильнейших игрока на рынке серверных
чипов уже выпустили подобные продукты – речь идет о Sun Microsystems
и IBM. Если быть кратким, размещение двух процессоров в общем чипе —
один из путей увеличения производительности без необходимости
наращивания тактовых частот и «лишнего» энергопотребления. Иначе
говоря, двухъядерный процессор, работающий с тактовой частотой ниже,
чем у практически аналогичного одноядерного чипа, покажет более
высокую производительность и потребует меньшее количество энергии.
Хотя относительно последнего утверждения существуют вполне
обоснованные подозрения, что прирост производительности будет
наблюдаться исключительно для многопотоковых приложений.
Будущие многоядерные процессоры, уже тщательно проверенные в
лабораториях, обеспечат симметричную мультипроцессорную обработку
данных на одном кристалле. Так, пока одно ядро выполняет операцию,
другое может извлекать данные из памяти или посылать команду
операционной системе и т. п. При многопоточной обработке информации
это приведет к гигантскому повышению производительности системы в
целом. И если будущее вычислительной техники — за распределенной
обработкой данных в неоднородных сетях, то многопоточная архитектура
новых процессоров будет в большой степени соответствовать
потребностям пользователей прикладного ПО.
Сегодня в Интернете сведения о новых двухъядерных чипах AMD
крайне ограничены и зачастую противоречивы. Попытаемся создать образ
будущего продукта, основываясь на имеющихся фактах, но никоим
образом не претендуя на роль верховных судей. Как водится, в
последний месяц перед официальным выходом процессора может
измениться и дизайн, и спецификации, да и сами сроки.
У компании AMD есть сильный козырь — ввод в эксплуатацию
предприятия Fab 36 в Дрездене (Германия), оснащенного оборудованием
для выпуска чипов по технологическому процессу 65 нм. Специалисты
компании полагают, что появление процессоров, изготовленных с
применением данных норм не за горами — это 2006 год. Однако в 2005-м
двухъядерные процессоры будут производиться с использованием
технологии 90 нм. Если быть более точным, то 14 июля 2004-го года
компания AMD объявила о завершении стадии разработки нового
двухъядерного процессора. Процессор будет продаваться как Opteron
для серверного рынка и Athlon 64 – для рынка настольных чипов.
Конечно, речь не идет о практически одинаковых процессорах с разной
маркировкой, они будут различаться частотой, объемом кэш-памяти и
количеством выводов, имея лишь общую «начинку» — то, что называется
dual-core. Существует три модификации двухъядерных Opteron – Egypt,
Italy и Denmark, для «настольного» же двухъядерного Athlon 64
кодовое имя — Toledo.
Чип Athlon 64
Конечно, не стоит ожидать, что двухъядерные процессоры станут
32-разрядными. Архитектура IA32, как считают в AMD, доживает свой
век, и новые чипы будут 64-разрядными, это даже не обсуждается.
Интегрированные в процессоры, спроектированные с учетом
64-разрядной архитектуры, контроллер памяти и шина Hyper Transport
теоретически позволяют добиться от двухъядерного процессора
производительности, аналогичной производительности двух раздельных
процессоров, объединенных в рамках единой системы. Другое
неоспоримое достоинство архитектуры AMD64 – своеобразное
«предвидение» ситуации. Еще на стадии проектировании AMD64
разработчики предусмотрели возможность соединения до четырех
процессоров Opteron, не используя набор системной логики, что
позволяет без особых проблем объединить на одном кристалле кремния
два процессорных ядра, так как все необходимые компоненты уже
присутствуют.
По заявлению аналитика компании Mercury Research Дина МакКэррон,
«чипы давно уже имеют многопроцессорный дизайн, просто изменилось
физическое расположение ядер» — все, на первый взгляд, очень просто.
Немаловажное обстоятельство: в грядущих двухъядерных процессорах
будет использоваться общий контроллер памяти. Он позволит избежать
пресловутого «бутылочного горлышка» в конечной системе с точки
зрения пропускной способности. Например, сегодняшний сервер на базе
двух чипов AMD Opteron имеет, соответственно, два контроллера
памяти, что обусловливает вполне достаточную пропускную способность:
можно смело объединить два ядра, используя один общий контроллер.
Итак, двухъядерные процессоры будут совместимы с нынешними
процессорными разъемами и, следовательно, с системными платами,
отвечающими требованиям многоядерных процессоров. Потребуется
обновление BIOS, но в целом новые чипы должны без проблем работать с
платами сегодняшнего дня.
В отношении энергопотребления процессоров AMD собирается
по-прежнему придерживаться своей нынешней тактики. Коль скоро
имеются три градации энергопотребления — 30, 55 и 89 Вт, — есть все
основания предполагать, что двухъядерные чипы будут им
соответствовать.
Есть сведения, что двухъядерный процессор от AMD появится в
форм-факторе Socket 939, будет изготавливаться по технологии
«кремний-на-изоляторе» и 90-нм техпроцессу.
Точной информации о размерах ядер и количестве входящих в них
транзисторов пока нет, однако можно сделать кое-какие предположения.
Итак, площадь ядра ClawHammer с 1 Мбайт кэш-памяти второго уровня
составляет 193 кв. мм. Для настольных систем данная площадь ядра
выглядит великоватой, однако для серверных процессоров это не
является проблемой.
Площадь собственно ядра ClawHammer составляет 28%, или 54 кв. мм,
площадь 1 Мбайт кэш-памяти второго уровня – 42%, или 81 кв. мм,
площадь блока северного моста и ввода-вывода – 30%, или 58 кв. мм.
Если мы предположим, что в двухъядерном процессоре у каждого ядра
есть собственная кэш-память второго уровня объемом 1 Мбайт, то у нас
будет: два ядра, два блока кэш-памяти и один общий блок северного
моста и ввода-вывода, то есть без малого удвоенная площадь ядра
ClawHammer. С учетом перехода на более тонкий технологический
процесс (90 нм против 130 нм) – площадь двух ядер составляет 33%,
или 65 кв. мм, площадь двух блоков кэш-памяти – 49%, или 97 кв. мм,
площадь блока северного моста и ввода-вывода – 18%, или 35 кв. мм.
Итого, общая площадь двухъядерного процессора Opteron составит
примерно 197 кв. мм.
Постараемся прояснить, каким же образом AMD удалось просто
добавить еще одно процессорное ядро в чип, и обратимся к приведенной
схеме.
Компания AMD не пошла по накатанному пути Intel, которая ранее
просто использовала свободные ресурсы единого физического
процессорного ядра для имитации логического второго процессора.
Вместо этого реализовано второе физическое процессорное ядро с
использованием шины Hyper Transport для межпроцессорных связей. На
приведенной блок-схеме показано, каким образом компания AMD
изначально предусмотрела потенциальную возможность установки на чип
второго процессорного ядра. Основная идея состоит в том, что
механизм, названный очередью системных запросов (System Request
Queue, SRQ) может взаимодействовать с двумя процессорными ядрами «0»
и «1». В нынешних чипах AMD присутствует только ядро «0», однако
видно, что добавление второго ядра («1») требует минимальных усилий
– вся необходимая инфраструктура присутствует с самого начала.
Одно из главных преимуществ двухъядерной архитектуры AMD перед
технологией Intel Hyper-Threading — каждое процессорное ядро
использует собственную кэш-память второго уровня. Не секрет, что
одной из основных проблем при построении многопроцессорных и
многоядерных систем является «борьба» за память. Если запущенное
приложение достаточно мало и полностью помещается в кэш-памяти, то
особых проблем не возникает, но сегодня время больших массивов
данных. Работа с большими изображениями, обработка видеомассивов и
баз данных означает интенсивное использование оперативной памяти.
Именно поэтому столь существенная часть системы, как встроенный в
процессоры Athlon 64 и Opteron собственный контроллер памяти,
обусловливает взрывообразный рост производительности.
Борьба двух процессорных ядер за данные из основной памяти — факт
отнюдь не новый. Такая же ситуация наблюдается и в более старых
системах, оснащенных процессорами Xeon или Athlon MP (в таком случае
ситуация далеко не радужна – в таких системах используется один
двухканальный контроллер памяти для всех процессоров в системе). В
подобных системах процессоры осуществляют запросы на доступ к
основной памяти у контроллера памяти, находящегося, как правило, в
северном мосту набора системной логики, и потому (в общем случае)
прирост производительности с этой точки зрения составляет не более
50% по сравнению с однопроцессорной системой. Двухъядерная
архитектура Athlon 64 и Opteron несколько больше, чем просто старая
двухпроцессорная схема в рамках одного чипа.
Определенное преимущество размещения двух ядер (даже по старой
двухпроцессорной схеме) на одном чипе – заметное уменьшение
задержек, но маловероятно, что система с одним двухъядерным
процессором Opteron будет показывать более высокую
производительность, нежели система с двумя одноядерными Opteron.
Последняя имеет два массива памяти, поэтому проблем с доступом к
памяти, как у системы с двухъядерным Opteron, в данном случае не
возникает.
На рынке присутствуют системные платы для двух процессоров
Opteron, имеющие только один массив памяти, второй процессор
получает доступ к памяти с помощью шины Hyper Transport. Конечные
системы, собранные на основе данных плат, гораздо медленнее тех, что
используют системные платы с раздельными для каждого процессора
массивами памяти. Представляется, система на базе двухъядерного
Opteron должна находится по производительности где-то между двумя
вышеописанными случаями.
Стоит сказать несколько слов о шине Hyper Transport, которая
будет применяться для межъядерных соединений в процессоре. Текущая
версия Hyper Transport позволяет достичь пиковой скорости обмена
данными 6,4 Гбайт/с (3,2 Гбайт/с в каждую сторону) на частоте 800
МГц — этого явно недостаточно для соединений между двумя
процессорными ядрами одного чипа. Видимо, для данного применения
будет использоваться шина Hyper Transport с большей пропускной
способностью.
Существует некая неопределенность относительно производства
двухъядерных процессоров. Известно, что в любом случае, даже при
использовании технологического процесса 90 нм, два процессорных ядра
будут иметь большие линейные размеры, нежели единственное ядро,
производящееся по техпроцессу 130 нм. Итого, на одну кремниевую
пластину поместится меньше процессоров – ведь, по некоторым
сведениям, AMD до сих пор использует кремниевые пластины диаметром
300 мм (это справедливо и для Fab 36 в Дрездене, «стартовый»
техпроцесс которой – 65 нм).
Компания Intel также проявляет необычайную активность в данной
области, вполне отдавая себе отчет, что «виртуальная
двухъядерность», обусловленная технологией Hyper-Threading, никоим
образом не может противостоять многоядерности реальной, невзирая на
все свои преимущества. В мае текущего года Intel отменила планы по
выпуску чипов, известных широкой общественности под кодовыми именами
Tejas и Jayhawk, и предпочла заняться новыми двухъядерными
продуктами для серверов и рабочих станций, чьи кодовые имена пока не
обнародованы. Приблизительные сроки выпуска двухъядерных решений от
Intel для серверов, рабочих станций и портативных компьютеров –
2005-й год.
Одной из перспективных задач, по мнению Intel, является переход
от логического к физическому параллелизму. Как отмечает президент
Intel Пол Отеллини, не стоит торопиться с выпуском "настольных"
чипов с несколькими ядрами — компания будет следовать ранее
намеченному плану. "В любом случае, - подчеркивает он, - наборы
системной логики для десктопных многоядерных процессоров будут
отличаться по своей архитектуре от чипсетов для обычных Pentium 4".
Слухи о переводе Prescott на двухъядерное исполнение решительно
отметаются представителями Intel. В самом деле, с точки зрения
тепловыделения такой шаг равноценен безумию, ведь именно ради
обратного эффекта было решено отказаться от выпуска Tejas.
Интересно, что президент Intel считает более перспективными
именно процессоры с несколькими ядрами, а не чипы, поддерживающие
64-разрядные приложения, поскольку далеко не всегда 64-разрядность
будет востребована, а переход на такие приложения продлится куда
дольше, чем переход на ПО с поддержкой нескольких ядер.
В настоящее время вполне реальным является серверный чип с
кодовым названием Montecito. И если на весеннем IDF ‘2004 в
Калифорнии была показана кремниевая подложка с Montecito
(двухъядерный Itanium), то к осени широкой общественности
представили работающий прототип процессора, который должен пойти в
серию в 2005 году. Помимо двухъядерности, Montecito будет обладать и
многопоточностью, то есть операционная система будет видеть
единственный процессор как четыре.
Чего стоит одно только количество транзисторов на кристалле
Montecito — 1,72 млрд, которое объясняется в первую очередь поистине
огромным объемом кэш-памяти третьего уровня — 24 Мбайт (по 12 Мбайт
на каждое ядро). При этом задержки кэша третьего уровня останутся
такими же, как и в нынешних процессорах Itanium 2. Объем кэш-памяти
второго уровня у Montecito составит 1,25 Мбайт (256 кбайт — для
данных, 1 Мбайт — инструкции), первого уровня — 64 кбайт (по 32
кбайт для данных и инструкций). Предусмотрены и так называемые
буферы промахов, контролирующие работу кэш-памяти второго и третьего
уровней.
Как сказано выше, в каждом из ядер Montecito предполагается
реализовать многопоточную обработку (по два потока в каждом ядре).
На одном кристалле будет два ядра и, соответственно, четыре потока
инструкций. Иными словами — четыре логических процессора, то есть в
системах, аналогичных сегодняшним четырехпроцессорным на базе
Itanium 2, получится 16 потоков инструкций, или 16 логических
процессоров.
Ожидается, что производительность Montecito будет значительно
выше, чем у нынешних Itanium 2 и тех, которые выйдут в ближайшее
время. Это неудивительно — большой объем кэш-памяти и более высокая
тактовая частота в сочетании с многоядерностью, многопоточной
обработкой и более совершенной технологией изготовления должны
сделать свое дело.
Список новаций, которые планируется реализовать в новом
процессоре, пестрит хорошо известными кодовыми именами — Silvervale
(серверный вариант технологии виртуализации, позволяющей процессору
поддерживать на аппаратном уровне одновременную работу нескольких
операционных систем), Pellston (повышение надежности кэш-памяти за
счет отключения неисправных сегментов), Foxton (динамическое
переключение тактовой частоты и рабочего напряжения в зависимости от
вычислительной нагрузки). Схема арбитража в Montecito
реализуется при помощи так называемого snoop-контроллера,
отслеживающего выполнение инструкций в обоих ядрах. Еще один
интересный механизм под названием Dynamic Thread Switching
(динамическое переключение потоков) способен, как утверждают в
Intel, фиксировать обработку операций, связанных с длительными
задержками, и инициировать переход к обработке соседнего потока
инструкций. Montecito будет выпускаться по технологии 90 нм (при
изготовлении нынешних Itanium 2 с ядром Madison используется
техпроцесс 130 нм). В настоящее время двухъядерный Montecito,
изготавливаемый с применением норм 90 нм, представлен в кремне
начальным степпингом A0).
Автор: Евгений Патий
Источник: www.electronica.finestreet.ru
|