Hammer под микроскопом

Когда AMD впервые рассказывала о своих планах и архитектуре K7 на Microprocessor Forum 1998 года, никто даже представить себе не мог, насколько популярным окажется Athlon. Этой архитектуре всего два года, но она уже смогла сместить Intel Pentium III.
Но обратимся к настоящему. На сегодня AMD получила неплохую долю рынка, и на нынешнем MPF представила архитектуру нового поколения под кодовым названием «Hammer» («молоток»). Зная о производительности Athlon и зная о том скромном начале на MPF-98, невольно задаешься вопросом: а что еще предпримет AMD, чтобы превзойти свои достижения?
Hammer можно назвать особенным не только из-за его набора команд. Но в первую очередь, мы остановимся именно на этом. Положение AMD не настолько сильно, чтобы перейти на свой набор команд и полностью отказаться от x86, поэтому кажется правильным переход на систему команд x86-64 — расширение имеющейся 32-битной архитектуры x86. А то, что AMD не собирается отказываться от этой архитектуры — вовсе не означает, что Hammer обречен.
Для начала, выделим преимущества архитектуры x86-64:
1. Обратная совместимость с инструкциями x86.
2. 8 новых 64-битных регистров общего назначения (general purpose registers, GPRs), плюс 64-битные версии прежних 8 регистров общего назначения.
3. Поддержка SSE и SSE2, плюс 8 новых регистров SSE2.
4. Увеличен объем адресуемой памяти для приложений, работающих с большими объемами данных.
5. Высокая производительность 32-битных приложений, плюс поддержка появляющихся 64-битных приложений — хороший вариант переходного процессора.
Основные недостатки:
1. Процессор продолжает поддерживать архитектуру x86, которой уже давно пора кануть в лету.
2. Новые регистры общего назначения можно использовать лишь в 64-битном режиме, что не позволяет повысить производительность 32-битных приложений посредством улучшения архитектуры системы команд.
Новая архитектура x86-64 — излюбленная тема для разговоров. В нашей же статье мы поговорим не о стратегическом выборе архитектуры системы команд AMD, а о том, что стоит за Hammer. Итак, рассмотрим, как заставить и без того быстрый процессор работать еще быстрее.

Способы достижения цели
Нетрудно предположить, что AMD с процессором нового поколения, скорее всего, последует тем же основным принципам, что и Intel в архитектуре NetBurst:
1. Использование длинных конвейеров (более 20 ступеней) позволяет достичь высокой тактовой частоты (более 10 ГГц к 2006 году).
2. Небольшие кэши с маленькими задержками и подсистема памяти с большой пропускной способностью (к примеру, RDRAM).
Однако, согласитесь, для AMD не имело смысла полностью отказываться от их неплохой архитектуры K7 лишь только для того, чтобы их следующий процессор был похож на P4.
Как и в случае с архитектурой K7, не предполагалось, что Hammer будет работать на очень высоких частотах. Вместо этого должно было быть существенно увеличено количество инструкций, выполняемых за такт. Это совсем не похоже на подход Intel (NetBurst и Pentium 4).

От «небольшого отличия» к «великим переменам»
Один из способов увеличения количества выполняемых за один такт инструкций заключается в увеличении количества исполнительных устройств. В архитектуре K7 имеется три арифметико-логических устройства (АЛУ — для операций с целыми числами), три устройства адресации (Address Generation Units, AGUs — для операций выгрузки из кэша и для записи в кэш) и три устройства для операций с плавающей точкой. Ничего не стоило бы оснастить Hammer вдвое большим количеством устройств, но на производительности это существенно не отразилось бы — даже обеспечить работой все исполнительные устройства любого современного процессора довольно сложно.
AMD решила эту проблему со свойственной ей оригинальностью — было решено оставить такое же количество исполнительных устройств, что мы видели в K7. Но тогда возникает логичный вопрос: каким же образом AMD планирует увеличить количество выполняемых за такт инструкций в Hammer?
Рассмотрим три основных улучшения новой архитектуры по сравнению с K7:
1. Интегрированный контроллер памяти и северный мост.
2. Доработано устройство предсказания ветвлений.
3. То, что AMD любит называть «большой загрузкой буфера быстрого преобразования адреса» (translation lookaside buffer, TLB).

Интегрированный контроллер памяти и северный мост
Процесс считывания данных из системной памяти выполняется контроллером, находящимся в северном мосту чипсета. Поэтому скорость работы процессора с памятью во многом определяется архитектурой чипсета и системной шиной. Решение AMD довольно оригинально — она выбрала интеграцию контроллера памяти прямо в процессор.
Оцените преимущества такого подхода. От этого не только сокращаются задержки в работе с памятью (теперь запросы на запись/считывание минуют внешний северный мост), но существенно сокращаются шансы того, что чипсет будет тормозить общую производительность платформы.
Ядро Hammer взаимодействует с очередью системных запросов (SRQ) для посылки запросов на контроллеры памяти (MCT/DCT) через перекрестный контроллер (crossbar controller).
Таким образом, архитектура Hammer обращается к интегрированному контроллеру памяти (MCT) и интегрированному контроллеру DRAM (DCT). Контроллер памяти представляет собой обобщенный интерфейс между ядром Hammer и контроллером DCT. Этот контроллер понимает, что такое память вообще, но он никоим образом не привязан к конкретному типу используемой памяти. DCT представляет собой более специфическое устройство, работающее лишь с определенными типами памяти.
Первые процессоры на архитектуре Hammer будут обладать либо 64-битным, либо 128-битным контроллером DDR SDRAM. Контроллер DCT может поддерживать тактовые частоты 100, 133, или 166 МГц под DDR200, DDR266 или DDR333 SDRAM. AMD ясно дала понять, что в более поздних версиях Hammer DCT контроллер DDR поменяют на контроллер DDR-II.
Итак, интегрированный контроллер памяти перенимает на себя одну из основных функций внешнего северного моста. AMD пошла дальше и практически встроила северный мост в кристалл процессора. Единственное, что осталось на долю традиционного внешнего северного моста — это контроллер AGP. Это устранит почти все проблемы с производительностью, которые бы возникли при использовании Hammer с современными чипсетами и, кроме того, осчастливит производителей материнских плат — ведь значительно упростится компоновка дорожек между памятью и процессором.

Усовершенствованное устройство предсказания ветвлений
Не думайте, что если конвейер Hammer состоит всего из 12 ступеней, то AMD не станет улучшать устройство предсказания. Усовершенствование все равно необходимо, ведь конвейер все же стал длиннее на целых 20 процентов.
В Hammer AMD существенно доработала устройство предсказания ветвлений Athlon. Массив конечных ветвей (branch taget array) все так же ограничен 2 K вхождениями, стек возврата (return stack) тоже остался на 12 записей, но само устройство предсказания было существенно изменено. Переключатели ветвлений (branch selectors) представляют собой биты, хранящиеся в кэше L1 (они содержат информацию о том, где в коде находятся ветвления и к какому типу они относятся). У этих переключателей имеется еще один бит, указывающий на то, является ли ветвь статичной, и таким образом, позволяющий процессору предсказывать ее статически (статичная ветвь — это та ветвь, результат которой почти всегда известен, например, это ветвление на коды ошибок в программе). Это позволяет общему накопителю инструкций (здесь хранится история предсказаний, улучшающая последующие предсказания) не замусориваться лишней информацией.
И, наконец, рассмотрим кусочек логики, на которой работает устройство предсказания ветвлений Hammer — это вычислитель адреса ветвей (Branch Target Address Calculator, BTAC). Но сначала, рассмотрим, как поступает Itanium, когда ему встречается несколько условных переходов. Itanium — мощный процессор, поэтому вместо предсказания ветвления он одновременно вычисляет куски кода, соответствующие обоим результатам ветвления. В конце концов, он выбирает правильные данные и отбрасывает ненужные. Hammer даже не пытается достичь уровня Itanium в распараллеливании инструкций. Вместо этого он старается лучше предсказывать результат ветвления. В нашем случае Hammer попробует вычислить направление ветвления, используя BTAC. На такую операцию тратится около пяти тактов, но при этом значительно улучшается эффективность предсказания благодаря опоре на вычисление ветвления, а не на отгадывание.

Буфер быстрого преобразования адреса
Когда AMD представляла свое новое ядро Palomino, в нем было увеличено количество записей в буфере TLB. От такого увеличения сокращается время, затрачиваемое на преобразование адресов из виртуальных в физические. Несмотря на то, что задержки памяти в Hammer значительно сокращены, при определенных операциях увеличение записей TLB приводит к сокращению требуемого количества тактов для ряда операций. Пока не ясно, насколько сильно улучшается производительность при увеличении количества записей в TLB, но такое увеличение, скорее всего, предназначено для серьезных задач с большими нагрузками (при использовании процессора в рабочих станциях и серверах).
Еще более интересный аспект, касающийся TLB — ими очень легко управлять во время переключения задач. Как правило, при каждом переключении задачи (например, при обработке нового потока), процессор должен сначала освободить содержимое TLB. В многозадачной среде, когда переключение задач не прекращается, поддерживать TLB не так-то просто. В современных RISC-процессорах используется система присвоения идентификаторов процессов (process id), чтобы было легче отслеживать содержимое TLB — быстро очищать при переключении на другую задачу и быстро восстанавливать обратно. Предположительно, Hammer использует подобную технологию.

Кэши Hammer
До сих пор мы обсуждали архитектуру Hammer, но при этом мы мало внимания уделяли традиционным критериям сравнения процессоров. Подсистема кэша в Hammer практически не изменилась по сравнению с Athlon. Кэш данных L1 на 64 кб и кэш инструкций L1 на 64 кб остались такими же, как и у Athlon/Athlon XP и представляют собой 2-х канальный ассоциативный кэш.
Кэш L2 представляет собой 16-канальный ассоциативный кэш, подобно кэшу ядер Thunderbird/Palomino. Он снова оказался переменного размера, но на этот раз AMD ограничилась максимумом в 1 Мб. Это представляет особенный интерес, ведь после выхода Athlon AMD намекала, что, возможно, в следующем продукте кэш вырастет до 8 Мб. Пока что мы знаем только о существовании Athlon на ядре Mustang с 1-мегабайтным кэшем, но ни одного процессора с большим кэшем L2 не было выпущено.
Скорее всего, часть процессоров будет поставляться с кэшем на 512 кб (на рынок производительных компьютеров и рабочих станций начального уровня), а часть — на 1 Мб (для high-end серверов).

Многопроцессорность
Хотя Hammer и разрабатывался для повсеместного применения, от high-end серверов до небольших ноутбуков, сферы его использования все же будут связаны с серверной природой процессора. Поэтому рассмотрим работу Hammer в многопроцессорной системе.
Одна из проблем, с которыми сталкиваются при разработке многопроцессорных систем, заключается в том, что бывает затруднительно разработать и разместить на материнской плате чипсеты, взаимодействующие по шинному протоколу «точка-точка» (как EV6 у Athlon). Очевидно, что Hammer не использует этот протокол (вместо него используется Hyper Transport), а проблема многопроцессорности решается подключением к каждому процессору до двух дополнительных каналов Hyper Transport (HT). Один канал используется для обращения ко внешнему контроллеру AGP 8x, остальные два могут использоваться для обращения к двум другим процессорам.
Хотя каждый процессор обладает своим собственным контроллером памяти, для операционной системы и приложений вся память будет выглядеть единым блоком. Если процессор попытается обратиться к памяти, подконтрольной другому процессору, инструкция на считывание будет передаваться от процессора к процессору, пока не попадет на тот процессор, который контролирует эту память. Затем результат переправляется запросившему процессору.
Каждый из HT-каналов и контроллер памяти подключены к перекрестному арбитру (crossbar arbiter logic), который обрабатывает все запросы, поступающие с других процессоров и других внешних устройств. Все прелесть в том, что производительность перекрестного контроллера (crossbar controller) изменяется с изменением тактовой частоты, то есть чем быстрее работает процессор, тем лучше перекрестный контроллер управляет данными между различными HT-каналами и контроллером памяти. Это означает долгожданный отказ от использования системной шины с фиксированной частотой, которая не меняется при росте частоты процессора в обычных системах.

Вывод
В статье мы не сравнивали напрямую ни процессоры, ни архитектуры — еще слишком рано делать прогнозы о реальной производительности Hammer или конкурирующих устройств. Нам известно, что пробные образцы процессоров SledgeHammer и ClawHammer (серверный вариант и вариант для производительных компьютеров соответственно) появятся лишь во второй половине 2002 года. Настоящий же триумф Hammer начнется через пару лет, к 2003 году, когда эра Athlon будет на закате.
Очевидно, что AMD — уже совсем не та компания, какой она была несколько лет назад. Компания постоянно стремится стать лидером индустрии, а не быть на вторых ролях, за что ее жестоко критиковали раньше. Архитектура Hammer — наиболее яркий пример того, на что способна AMD в погоне за лидерством.

Оригинал: http://www.megabyte-web.ru/goto/ChZEQVwWHxYVFkhUCFgMVUBVBlkbVFdVF1FAFh5EXVwVBl9SSFFEDA5eDwhXDFYH/


Рекомендуем почитать: