«Открытые системы» , № 02, 2001 107 прочтений
Дорога к высоким частотам
В статье, посвященной новому микропроцессору Intel Pentium 4, достигшему наивысших среди всех серийно выпускаемых процессоров тактовых частот, проведен анализ его микроархитектуры NetBurst.
В статье, посвященной новому микропроцессору Intel Pentium 4, достигшему наивысших среди всех серийно выпускаемых процессоров тактовых частот, проведен анализ его микроархитектуры NetBurst. Значительное внимание уделено особенностям, связанным с повышением частоты. Реализация NetBurst в Pentium 4 сопоставлена с микроархитектурой других процессоров, в первую очередь с Intel Pentium III и AMD Athlon. Приведены сравнительные данные о производительности Pentium 4.
Последний год характеризовался жесткой конкурентной борьбой на рынке высокопроизводительных микропроцессоров х86-совместимой архитектуры – Intel Pentium III и AMD Athlon. Аналогичное соперничество на втором плане, среди недорогих процессоров, шло между Intel Celeron и AMD Duron. В ходе этого противостояния процессоры от Intel и AMD достигли рекордных тактовых частот, обойдя по этому параметру RISC-процессоры, в том числе Alpha. Стоит отметить, что после перехода на более сложную микроархитектуру Alpha 21264 тактовые частоты этих процессоров, многие годы лидировавших в этой гонке, стали уступать частотам Pentium III и Athlon.
Конечно, тактовая частота не самоцель: производители процессоров стремятся к увеличению производительности. В этом соревновании Alpha по-прежнему остается лидером за счет более совершенной и соответственно более сложной микроархитектуры. Как у Alpha 21264, так и у Intel Itanium достигнутые значения тактовых частот почти вдвое ниже, чем у новейших Pentium 4, но между тем Alpha 21264 и Itanium предназначаются для более мощных систем.
Достижению высшей производительности способствуют два фактора: и особенности микроархитектуры, и тактовая частота; при этом, до некоторого периода повышения производительности можно добиваться главным образом за счет роста частоты. На ранних этапах эволюции Alpha его создатели шли именно по этому пути; теперь этим же путем идет Intel.
В последнее время этим же путем следовала и AMD. Однако после обюявления Intel о поставках новых процессоров Pentium 4 с частотами 1,4/1,5 ГГц появились сообщения о том, что AMD выходит из гонки частот. Возможно, в AMD предпочли сделать ставку на процессоры с новой 64-разрядной архитектурой.
Как бы то ни было, Pentium 4 стали абсолютными лидерами по тактовой частоте. Достижение столь высоких частот связано со значительными трудностями. Несмотря на прогресс в технологии (прежде всего, в уменьшении размера элементов) приходится учитывать конечность скорости распространения сигнала: задержки, связанные с его распространением, накладывают определенные ограничения, с которыми столкнулись еще разработчики Alpha 21264.
Традиционным спутником увеличения частоты является суперконвейерный подход. С увеличением числа стадий конвейера каждая из них становится более простой и может быть выполнена за более короткое время такта. Можно сказать, что разработчики Pentium 4 пошли именно по этому пути. При этом, для того чтобы ускорить выполнение, необходимо уменьшить показатель, равный произведению числа стадий конвейера на время такта. Недостатком суперконвейерного подхода является, как известно, проблема заполнения конвейера (перезаполнение при неверном предсказании перехода).
Микроархитектура NetBurst
Для Intel характерно, что микроархитектура нескольких поколений процессоров логически близка друг к другу (например, Pentium Pro – Pentium II – Pentium III). В таком случае обычно говорят об общем «микропроцессорном ядре» (в данном примере его называют Р6). В Intel используют термин «микроархитектура» именно в этом, последнем смысле. В этой терминологии микроархитектура NetBurst пришла на смену P6, а первой конкретной реализацией NetBurst «в кремнии» является Pentium 4.
C моей точки зрения, основная задача NetBurst (если отвлечься от SSE2-расширений IA-32, вносимых Pentium 4) состоит в том, чтобы обеспечить возможность дальнейшего роста тактовой частоты. Уже сейчас в Pentium 4 достигнут рубеж в 1,5 ГГц, и по заявлениям представителей Intel, в не столь отдаленном будущем можно ожидать «беспроблемного» роста частоты до 3 ГГц.
Как мне кажется, усовершенствования в NetBurst по сравнению с микроархитектурой P6 не столь кардинальны, как это было при переходе от P5 к Р6. Основные архитектурные идеи Р6, связанные с декодированием х86-команд во внутренние RISC-подобные микрооперации, их постановкой в очередь и внеочередным спекулятивным выполнением с последующим изыманием завершившихся микроопераций (Intel называет этот процесс «retirement»), сохранились и в NetBurst. Основные особенности NetBurst таковы [1]:
- гиперконвейерная технология;
- кэш трассировки исполнения (TC);
- 400-мегагерцевая системная шина;
- механизм ускоренного выполнения (в целочисленных АЛУ);
- расширенное динамическое выполнение (одновременно до 126 команд);
- потоковые расширения SIMD 2;
- усовершенствования функционального исполнительного устройства с плавающей запятой/мультимедийной обработки;
- усовершенствованная кэш-память.
Гиперконвейерная технология
Название гиперконвейерной технологии, очевидно, построено по аналогии со словом «суперконвейерный» и призвано, вероятно, подчеркнуть сверхбольшую длину конвейера. Интересно отметить, что число стадий базового конвейера при смене микроархитектуры процессоров Intel каждый раз удваивалось: 5 стадий в Р5, 10 стадий в Р6 (кстати, столько же в Athlon), и, наконец, 20 стадий в Pentium 4.
На стадиях 1 и 2 с использованием значения счетчика команд из BTB (Branch Target Buffer, – буфер адресов переходов) в кэш трассировки ТС помещаются микрооперации (рис. 1 [2, 3]). На стадиях 3 и 4 происходит выборка микроопераций из ТС, и на стадии 5 микрооперации передаются в блок распределения ресурсов/переименования регистров. (Отметим, что стадия 5 целиком вызвана задержкой передачи данных по проводникам.) На стадии 6 происходит распределение ресурсов, требуемых для выполнения микрооперации (буферов загрузки регистров/записи в память и т.д.).
На стадиях 7 и 8 происходит переименование регистров (логических регистров типа EAX в физические). Надо сказать, что, по мнению автора, переименование регистров для IA-32 просто необходимо: число регистров в этой архитектуре крайне ограничено, что способно вызывать многочисленные зависимости между микрооперациями, препятствуя одновременному их выполнению. Логические регистры переименовываются в физические, количество которых в Pentium 4 достаточно внушительное: 128. Работа с большим числом физических регистров позволяет во многих случаях «расшить» взаимозависимости.
На стадии 9 происходит помещение микроопераций в очередь, откуда они выбираются, когда освобождается соответствующее место в планировщиках, отвечающих за работу с разными типами функциональных исполнительных устройств. На стадиях 10-12 осуществляется собственно планирование, т.е. запись в планировщики, определение зависимостей между микрооперациями и ожидание разрешения этих зависимостей. На стадиях 13-14 микрооперациии диспетчеризуются (посылаются) в конвейер с плавающей запятой или в один из целочисленных конвейеров.
На стадиях 15-16 происходит чтение из файлов регистров: целочисленных или с плавающей запятой. Стадия 17 – это стадия выполнения. Анализируя здесь базовый конвейер, мы предполагаем, что выполнение занимает 1 такт (хотя операции с плавающей запятой обычно требуют больше тактов, а некоторые простые целочисленные операции, как будет показано далее, могут запускаться каждые полтакта). На стадии 18 осуществляется вычисление значения флагов («равно нулю», «больше нуля» и т.д.), которые используются командами условных переходов. На стадии 19 происходит сравнение реального «результата» команды перехода со сделанным ранее предсказанием.
Наконец, последняя стадия осуществляет запись результата проверки перехода, выполненного на предыдущей стадии, в ВТВ (эта задержка обуславливается временем передачи информации по проводникам).
Как указано в [3], возникающая задержка при неверном предсказании перехода («штраф») по порядку величины равна глубине конвейера, т.е. порядка 20 стадий. Это весьма значительная величина и, для того чтобы минимизировать отрицательные последствия для производительности, разработчики постарались максимально повысить точность предсказания переходов.
Логические блоки NetBurst
Перейдем теперь к рассмотрению блоков Pentium 4, через которые данные протекают по мере своего движения в базовом конвейере. Обратимся для этого к рис. 1, на котором представлены ключевые элементы микроархитектуры NetBurst.
Условно логическую схему NetBurst и соответственно Pentium 4 можно разбить на три крупные части:
- фронтальную, обеспечивающую предварительную выборку (prefetch), выборку и декодирование команд, кэширование микроопераций в ТС и предсказание переходов (эта часть работает последовательно в порядке, указанном в программном коде);
- часть, отвечающую за выполнение (внеочередное и, возможно, спекулятивное) микроопераций;
- завершающую часть, обеспечивающую изымание закончивших выполнение микроопераций из блока ROB (ReOrder Buffer, известный уже по микроархитектуре Р6 [4]) и «сборку» из них результатов в порядке, задаваемом исходными программными кодами в соответствии с правилами архитектуры IA-32 (процедура «retirement»).
Начнем анализ с фронтальной части Pentium 4. Прежде всего следует отметить увеличение эффективной частоты системной шины до 400 МГц против сегодняшних 133 МГц. Это приводит к повышению максимально допустимой пропускной способности оперативной памяти до 3,2 Гбайт/с. Побудительная причина такого ускорения очевидна: в противном случае столь высокочастотный процессор не смог бы вовремя получать необходимые данные. Как известно, Athlon теоретически может поддерживать системную шину с такой же частотой и пропускной способностью [5], однако на практике на сегодня достигается пропускная способность 2,1 Гбайт/с (память DDR SDRAM/ 266 МГц).
От системной шины данные и команды могут попасть в кэш третьего уровня. Он предусмотрен в микроархитектуре NetBurst для серверных вариантов процессора [3], но Pentium 4, по крайней мере, в настоящее время им не комплектуется. Далее данные и команды попадают в интегрированный в Pentium 4 кэш второго уровня емкостью 256 Кбайт, который по своим техническим характеристикам близок к используемому в Pentium III. В обоих процессорах применяется технология Advanced Transfer Cache, они работают на частоте ядра, а ширина шины кэша составляет 32 байт. Оба кэша являются 8-канальными наборно-ассоциативными. Однако в Pentium 4 увеличена длина строки кэша второго уровня – до 128 байт (2 сектора по 64 байт).
Задержка по обращению в кэш второго уровня в Pentium 4 составляет 7 тактов. Пропускная способность кэша второго уровня при частоте 1,5 ГГц составляет соответственно 48 Гбайт/с. Для замещения информации в кэше второго уровня, как и в других типах кэш-памяти Pentium 4, используется алгоритм псевдо-LRU. При непопадании в кэш второго уровня требуется 12 тактов процессора на организацию взаимодействия с системной шиной, и еще не менее 6-12 тактов шины (если она свободна) на доступ в подсистему оперативной памяти.
С моей точки зрения, одним из основных недостатков современных процессоров архитектуры х86 с интегрированным кэшем второго уровня (AMD Athlon/Thunderbird, Intel Pentium III Coppermine/Pentium 4) является его уменьшенная вдвое емкость по сравнению с предшественниками. Этот недостаток компенсируется, в частности, увеличением тактовой частоты кэша до частоты ядра процессора и увеличением ширины шины кэша. Но все-таки для больших серверных приложений деловой направленности, для которых характерно частое обращение в память, обычно применяется кэш большей емкости.
Производительность и перспективы
Из проведенного анализа легко сделать вывод, что Pentium 4 будет достигать наивысшей производительности при работе с длинными векторами, что характерно для многих приложений научного характера. Такие приложения позволят достигнуть хорошей локализации в кэш-памяти и не будут вызывать потери производительности из-за неверного предсказания переходов. Кроме того, очевидно, при переходе на Pentium 4 ускорятся такие приложения, как трехмерная графика, распознавание речи, обработка изображений и другие мультимедийные приложения – при условии, что в них будет применяться SSE2.
Сравнительные оценки производительности Pentium 4 даны в таблицах 3 и 4. Эти данные подтверждают сказанное и также показывают, что современные офисные приложения (см. результаты тестов SYSMark2000) практически не выигрывают от перехода на Pentium 4. Однако результаты тестов SPECint2000 и SPECfp2000 однозначно говорят о том, что достигнутая общая производительность Pentium 4 существенно выше, чем у Pentium III. Для того чтобы увидеть рост производительности на реальных приложениях, необходимо, однако, перетранслировать их с использованием новых компиляторов, которые будут явно использовать особенности Pentium 4 и, в частности, генерировать новые команды SSE2. В более простых случаях достаточно заменить на более эффективные библиотеки программ (например, графические DLL, или, скажем, BLAS) – тогда, когда они будут созданы.
Более того, на этих тестах Pentium4/1,5 ГГц обгоняет все другие процессоры, в том числе, RISC-архитектуры, за исключением Alpha 21264A/833 МГц: последние заметно опережают Pentium 4 на тестах плавающей запятой (658 единиц по SPECfp2000 против 558 у Pentium 4). На целочисленных тестах SPECint2000 Pentium 4 слегка уступает Alpha и HP PA-8600/552 МГц (544/541/536 единиц для Alpha 21264/PA-8600/Pentium 4 соответственно). Такой успех связан и с высокой тактовой частотой (фактически 3 ГГц на коротких целочисленных операциях!), и с применением быстродействующих микросхем памяти Rambus.
Pentium 4 изготавливаются по 0,18-микронной технологии и содержат 42 млн. транзисторов (для сравнения, Athlon при той же технологии имеет 37 млн. транзисторов). Однако площадь Pentium 4 почти вдвое больше, чем у Pentium III и Athlon. Pentium 4 поставляется в защищенном корпусе FC-PGA и устанавливается в разюем Socket423 c 423 контактами.
Необходимо отметить, что применение Pentium 4 требует более дорогой «инфраструктуры». Отличные результаты тестов SPEC2000 во многом связаны, вероятно, и с применением дорогой памяти Rambus. Поддерживающий Pentium 4 набор микросхем i850 довольно дорог, и плюс к этому требуется применение 6-слойных материнских плат. Наконец, повышенное энергопотребление Pentium 4 (52-55 Вт) потребовало перехода на новый тип блока питания. Поэтому при решении вопроса о целесообразности приобретения компьютера на базе Pentium 4 нужно принимать во внимание и соотношение стоимость/производительность.
Выводы
В микроархитектуре NetBurst предложен целый ряд оригинальных технических новинок, позволяющих Pentium 4 достичь и поддерживать рекордный уровень тактовой частоты. В сочетании с высокой пропускной способностью используемой оперативной памяти это позволило Pentium 4/1,5 ГГц стать лидером по целочисленной производительности (SPECint2000), уступая по производительности с плавающей запятой (SPECfp2000) лишь Alpha 21264A/833 МГц.
Однако применение Pentium 4 связано с использованием дорогостоящей «инфраструктуры», в частности, дорогой оперативной памяти.
Применение Pentium 4 наиболее эффективно для приложений, в которых могут использоваться функции SSE2. Для популярных офисных приложений и некоторых программ делового назначения со случайным обращением в память выигрыш в производительности от применения Pentium 4 может оказаться несущественным.
Необходимо иметь в виду, что достижение высокой производительности приложения при работе с Pentium 4 может потребовать применение оптимизированной для этого процессора библиотеки программ или компиляторов, учитывающих его особенности.
Михаил Кузьминский – старший научный сотрудник Центра компьютерного обеспечения химических исследований РАН. С ним можно связаться по телефону (095) 135-6388.
Литература
[1] Pentium 4 Processor Architecture and Desktop Performance Evaluation Guide, Intel, 2000
[2] D. Carmean, «Inside the Pentium 4 Processor Microarchitecture», Intel Development Forum, 2000
[3] Intel Pentium 4 Processor Optimization Reference Manual, Intel, 1999-2000
[4] Михаил Кузьминский, «Открытые системы», 1995, б№11
[5] Михаил Кузьминский, «Athlon: от микропроцессоров к материнским платам», «Открытые системы», 2000, б№1-2, c.8-13
[6] T. Pabst, http://www.tomshardware.com/ cpu/00q4/001120/index.html
[7] IA-32 Intel Architecture Software Developer Manual. Vol. 1, Chapter 11; Vol. 2, Chapter 3. Intel, 2000
| Pentium III | Pentium 4 | |
| Частота, ГГц | 1 | Б??1,4 |
| Время целочисленного сложения | 1нс | Б??0,4 нс |
| Пиковая производительность | 2 GFLOPS | Б??5,6 GFLOPS |
| Емкость D-кэша L1, Кбайт | 16 | 8 |
| Время доступа в D-кэш L1 | 3 нс | Б??1,4 нс |
| Пропускная способность D-кэша L1 | 16 Гбайт/с | Б??44,8 Гбайт/с |
| Пропускная способность кэша L2 | 16 Гбайт/с | Б??44,8 Гбайт/с |
| Число одновременно выпоняемых команд | 40 | 126 |
| в т.ч. команд загрузки регистров | 16 | 48 |
| в т.ч. команд записи в память | 12 | 24 |
| Емкость ВТВ, строк | 512 | 4092 |
| Пропускная способность системной шины | 1,1 Гбайт/с | 3.2 Гбайт/с |
| Времена выполнения некоторых х87-команд с плавающей запятой в Intel Pentium 4 [3], Pentium III и AMD Athlon [5]: задержка / пропускная способность (в тактах) | |||
| Athlon | Pentium III | Pentium 4 | |
| FADD | 4/1 | 3/1 | 5/1 |
| FMUL | 4/1 | 5/2 | 7/2 |
| FDIV (DP) | 20/17 | 32/32 | 38/38 |
| FSQRT (DP) | 27/24 | 57/57 | 38/38 |
| FSQRT (SP) | 19/16 | 28/28 | 23/23 |
| Pentium III 1 ГГц | Pentium 4 1,4 ГГц | Pentium 4 1,5 ГГц | |
| SPECint2000 | 443 | 517 | 536 (**) |
| SPECfp2000 | 314 | 541 | 561 (**) |
| 3DWinBench | 1,93 | 2,44 | 2,55 |
| 3DMark2000 | 393 | 434 | 457 |
| SYSMarkJ (*) | 1853 | 2013 | 2073 |
| Quake3 | 149 | 202 | 210 |
| Video2000/MPEG2 | 30 | 36 | 38 |
| (*) Тест «производительности internet»; тестируется МП, память и графическая подсистема. (**) Данные http://www.specbench.org | |||
| Pentium III 1 ГГц | Pentium 4 1,4 ГГц | Pentium 4 1,5 ГГц | Athlon 1,2 ГГц | |
| WebMark 2001 (*) | 185 | 224 | 236 | 208 |
| Quake3 | 154 | 212 | 219 | 192 |
| SYSMark2000 | 201 | 200 | 210 | 233 |
| (*) Включает тесты Java, JavaScript, XML, SSL, Acrobat Reader и др. | ||||








