Обзор микроархитектур современных десктопных процессоров. Часть 2
Страница 5. Функциональные устройства Intel Pentium 4


 

Функциональные устройства Intel Pentium 4

Перейдём теперь к рассмотрению функциональных устройств.

В процессоре P-4 большинство операций целочисленной арифметики выполняется в устройствах, работающих на двойной частоте (Double Pumped ALU). Таких устройств два, они подсоединены к портам 0 и 1, и операции для них выбираются из очередей Fast0 и Fast1. Латентность этих операций (время выполнения в зависимых цепочках) составляет всего 0.5 такта. Для того чтобы обеспечить такую низкую латентность, каждое их этих двух 32-битных арифметико-логических устройств реализовано в виде двух отдельных 16-битных подустройств, обрабатывающих соответственно младшие и старшие 16 разрядов операндов. Из-за возможного переноса разрядов из младшей половины слова подустройство обработки старшей половины работает с временным сдвигом на полтакта. Таким образом, старт-стопное время выполнения операции составляет целый такт (два полутакта). Однако выполнение новой операции, зависящей от результатов текущей, начинается немедленно после получения младшей половины слова. Это правило распространяется также на логические операции, пересылки и чтение из памяти. Таким образом, операция обращения к памяти начинает выполняться, не дожидаясь готовности старших 16 разрядов адреса — поиск данных в L1-кэше начинается на основе младших 16 разрядов. Благодаря этому, полное время считывания данных из кэша составляет всего 2 такта.

Описанный единообразный подход к выполнению большинства простых операций обеспечивает латентность 0.5 такта при достижении темпа 4 операции за такт. Такой подход к реализацииh2h2 32-битных устройств в виде двух отдельных 16-битных блоков можно назвать пространственно-временным параллелизмом.h2h2 Этот подход применён в процессоре P-4 впервые. Новый подход дополняет практиковавшиеся ранее подходы пространственногоh2h2 параллелизма (использование двух одинаковых блоков для одновременной обработки операндов или симметричных частей операнда) и временногоh2h2 параллелизма (использование одного блока для их последовательнойh2h2 обработки). Отметим, что суммарная «ширина» результатов,h2h2 получаемых из этих устройств в каждом такте, составляет 128 разрядов.

Операции сдвигов обрабатываются отдельно, в так называемомh2h2 медленном устройстве. Их латентность составляет 4 такта, а темп выполнения — 1 операция за такт. Также в медленном устройстве исполняются целочисленные умножения, деления и другие редкие операции.

В процессоре P-4E (Prescott) организация устройств целочисленной арифметики претерпела определённые изменения. Они по-прежнемуh2 работают на удвоенной частоте и могут выполнять до 4 операцийh2 за такт, однако латентность 32-битных операций увеличилась до одногоh2 такта. Вероятно, каждое из двух устройств (Fast0 и Fast1)h2 реализовано в виде двух отдельных 16-битных подустройств, обрабатывающихh2 половины слова с двойной частотой, но результаты обработки младшейh2 половины используются через полтакта только для вычислений в старшейh2 половине и не передаются немедленно на следующую (зависимую) операцию,h2 как в первоначальном процессоре P-4. Операции сдвигов в новом процессореh2 также обрабатываться в одном из быстрых устройств (Fast1),h2 с латентностью 1 такт и темпом 2 операции за такт.

По поведению этих функциональных устройств можно было бы предположить, что каждое из них выполнено в виде двух отдельных монолитных 32-битных блоков, работающих на одинарной тактовой частоте и исполняющих операции со сдвигом на полтакта. Однако документация однозначно указывает на реализацию в виде 16-битных подустройств удвоенной частоты, не раскрывая деталей этой реализации. В любом случае, здесь разработчики отказались от пространственно-временного параллелизма в пользу чисто пространственного, когда результат передаётся из функционального устройства не по частям, со сдвигом на полтакта, а целиком и сразу.

В процессоре P-4E также увеличилось время доступа к L1-кэшу — до 4 тактов. Это связано с увеличением размераh2 и уровня ассоциативности кэша и повышением разрядности мини-тэга, по которому производится быстрый поиск в кэше, а также с удлинением на 0.5 такта этапа подготовки адреса. С учётом меньшей длины такта время доступа к L1-кэшу, выраженное в «нормализованных» тактах (с соотношением 1:1.4), составит всего 1.5 такта для первоначальногоh2 процессора P-4, и 3 такта для процессора P-4E.

Обработка 64-битных операций в режиме EM64T (x86-64) в процессоре P-4E производится по схеме, аналогичной описанной выше для 32-битных операций в процессоре P-4: каждое их двух 64-битных арифметико-логических устройств реализовано в виде двух отдельных 32-битных подустройств, обрабатывающих соответственно младшие и старшие 32 разряды операндов (с временным сдвигом на такт) и работающих на удвоенной частоте. Таким образом, эффективная латентность 64-битных операций также составляет 1 такт, а предельный темп запуска — 4 операции за такт. По такой же разнесённой схеме выполняются и операции сдвигов влево — перенос из младшей половины 64-разрядного слова принимается в старшую половину на следующем такте. Однако циклические сдвиги и сдвиги вправо уже не могут быть выполнены по этой схеме — из-за специфического способа переноса разрядов из старшей половины слова в младшую их латентность увеличилась до 7 тактов.



Рис. 8

На Рис. 8 показана схема разнесённого (со сдвигом на 0.5 такта) исполнения 32-битных операций в процессоре P-4, а также схемы монолитного исполненияh2 32-битных операций и разнесённого (со сдвигом на такт) исполнения 64-битных операций в процессоре P-4E.

Другие функциональные устройства в процессорах P-4 и P-4E реализованы по достаточно традиционной схеме. Операции SSE производятся над 128-разряднымиh2 регистрами XMM. Однотипные арифметические и логические операции SSE могут стартовать с интервалом в 2 такта. Чередуя операции сложенияh2 и умножения, можно получить суммарный темп выполнения, равный одному 128-битному результату за такт. Для упакованного 32-битного режима SSE это соответствует четырём арифметическим операциям за такт, для 64-битного режима SSE2 — двум операциям за такт, и для скалярныхh2 режимов — одной операции за такт. Латентность операций с плавающейh2 точкой SSE/SSE2 составляет 4 такта для сложения и 6 тактов для умножения (в процессоре P-4E — на один такт больше). В режиме x87 операцияh2 умножения также выполняется в половинном темпе, а операция сложения — в полном.

В каждом такте может быть произведено одно 128-разрядное считывание из L1-кэша и одна 128-разрядная запись в L1-кэш. Благодаря этому темп работы FPU в упакованном режиме SSE2 в плотных циклах (например, при перемножении матриц) может приближаться к пиковому.

Длины очередей (буферов) планировщика составляют: 10 элементов для очереди Slow0 (пересылки и выгрузкаh2h2 в память для плавающей арифметики), 12 элементовh2для очереди Slow1 (основные операции плавающей арифметики, а также медленные целочисленные операции) и по 8 элементов для прочих очередей. В процессоре P-4E очереди Slow0 и Slow1 увеличены до 14 и 16 элементов, соответственно.h2 Наиболее важной характеристикой является длина очереди для основных операций арифметики с плавающей точкой (Slow1). Замеры показывают,h2 что эффективная вместимость этой очереди составляет 10 МОПов для процессора P-4, и 13-14 МОПов для P-4E. Отметим, что одна упакованная инструкция SSE отображается в один 128-битный МОП, а не в два 64-битных (как в процессорах P-III, P-M и K8), что повышает эффективную вместимость очередей при использовании упакованного режима.

Эффективный размер окна внеочередного исполнения в процессоре P-4 увеличивается также за счёт двух очередей МОПов, предшествующих основным очередямh2 планировщика. Длина предварительной очереди арифметическихh2 МОПов составляет 32 элемента, очереди адресных МОПов — 16 элементов.

Таким образом, P-4 представляет собой высокопроизводительный процессор с глубоким внеочередным исполнением операций. Он работает на повышенной тактовой частоте (примерно в 1.4 раза выше, чем у других процессоров, исполненных по той же технологии) и имеет множество оригинальных микроархитектурных особенностей: удвоенную частоту работы целочисленных устройств, быстрый доступ к L1-кэшу, избыточность функциональных устройств, Т-кэш. Однако имеется ряд особенностей, которые снижают потенциал производительности процессора: выполнение скалярных операций арифметики с плавающей точкой (SSE и x87-FMUL) на половинной частоте, наличие аномалий при доступе к L1-кэшу (алиасинг), большие затраты на отработку подобных аномалий в системе реплея, длинный конвейер, большая схемная сложность и высокое энергопотребление, ограничивающее тактовую частоту. В результате процессор P-4 демонстрирует довольно высокую производительность на хорошо организованных кодах с регулярной структурой, но может уступать конкурентам (AMD K8) в менее оптимизированных приложениях.

 
« Предыдущая статья   Следующая статья »