Pentium IV

Информация - Компьютеры, программирование

Другие материалы по предмету Компьютеры, программирование

, с таким трудом "давались" большие частоты: его конвейер из 12 ступеней приблизился уже к самому пределу своей максимально возможной частоты. Даже теоретически для 0,18-микронного процесса это значение составляет порядка 1,2 GHz, а ведь общеизвестно, что теоретический предел редко достижим на практике: "идеальных" кристаллов, увы, не бывает. Поэтому было принято кардинальное решение: увеличить длину конвейера сразу до... 20 ступеней! При этом многие части CPU, ранее входившие в конвейер (к примеру, блок декодирования команд), были вообще вынесены за его пределы и работают теперь как бы "сами по себе". Данная архитектура получила название "гиперконвейерной" (hyperpipelined) -- в честь конвейера небывалой длины. Естественно, возможная частота работы возросла, что с успехом подтверждают новые Pentium 4, вышедшие сразу же на частотах 1,4 и 1,5 GHz. И это при сохранении того же 0,18-микронного процесса! Однако далось такое увеличение частот работы отнюдь не "бесплатно".

Длина конвейера Intel Pentium 4 увеличена до 20 этапов. Хорошо ли это? Для примера - сегодняшний Pentium III имеет 12-этапный конвейер, Athlon - 10-ти. Но при этом не стоит забывать один общеизвестную истину - чем длиннее конвейер, тем легче наращивать тактовую частоту, но, соответственно, тем меньшая производительность приходится на каждый полученный мегагерц :-(. Выходит палка о двух концах.

 

Простой конвейера: старые проблемы, умноженные на новые частоты

Приведенное ранее описание работы механизма предсказания ветвлений осталось все же немного незавершенным: мы закончили его на "победном" варианте: ветка предсказана правильно, процессор начал декодирование команд "наперед", переход осуществился к "угаданному" адресу, находящиеся там команды готовы к исполнению (или даже уже частично исполнены). Но что происходит, если "штатный предсказатель" все же ошибся? А происходит "воистину страшное" -- весь конвейер приходится очищать от ненужных команд и в срочном порядке начинать готовить к исполнению новые, находящиеся еще в памяти и совсем по другому адресу. Естественно, ядро CPU во время всего этого "разбора полетов" просто исполняет холостой цикл, так как ни подготовленных данных, ни команд к нему не поступает. И наверняка наш читатель уже догадался сам об основной проблеме гиперконвейерной архитектуры нового процессора: чем длиннее конвейер, тем больше работы идет насмарку и тем дольше придется ждать, пока он будет "вычищен" от непонадобившихся команд и снова заполнен нужными. К тому же высокая частота работы в данном случае автоматически означает, что с момента ошибки в предсказании перехода до момента ее обнаружения "лишней" работы процессор успеет сделать больше. Да, такова реальность: не всегда высокая частота означает высокое быстродействие. Однако не все так плохо -- естественно, проблема эта была известна еще задолго до выхода процессора, и минимизации потерь было уделено серьезное внимание.

 

Предсказания должны сбываться!

Применительно к соответствующему блоку процессора данная фраза выглядит как самое что ни на есть благое пожелание. И разработчики Pentium 4 сделали все от них зависящее, чтобы так это и происходило. Блок предсказания ветвлений нового CPU подвергся значительным модификациям -- размер буфера, в котором хранятся адреса возможных переходов (BTB -- Branch Target Buffer), увеличился до 4 KB (512 байт у Pentium III), кроме того, сам алгоритм был усовершенствован и теперь учитывает большее количество возможных факторов. В итоге, по заявлениям разработчиков, результативность предсказаний увеличилась на треть, и сейчас их точность достигает 94%.

Усовершенствованное внеочередное исполнение

Для того чтобы найти команду, претендующую на внеочередное исполнение, нужно иметь место, где ее искать. Анализировать "наперед" код, содержащийся в памяти, -- операция накладная, да и медленная. Поэтому у всех современных процессоров есть так называемая "резервация" (Reservation Station), в которой хранятся декодированные и готовые к исполнению команды. У Pentium 4 соответствующий блок называется "окном команд" (Instruction Window), но, по сути, эти два наименования обозначают одно и то же -- буфер для инструкций. Окно команд Pentium 4 тоже существенно выросло, теперь для внеочередного исполнения процессору предлагают "на выбор" более 120 инструкций (точные данные еще не опубликованы).

Удвоенная внутренняя частота ALU

Арифметико-логические блоки (Arithmetical Logic Units) в Pentium 4 работают на удвоенной частоте. Так, к примеру, ALU у Pentium 4 1,5 GHz функционирует на частоте 3 GHz! Это позволяет выполнять многие операции фактически даже не за один, а за полтакта, или две операции за такт. А поскольку таких блоков у Pentium 4 два - в идеале за один такт работы процессора получается 4 операции с целыми числами!

 

Сопроцессор

Что касается блока для операций с числами с плавающей запятой у Pentium 4, то получившаяся картина, похоже, не устраивает даже саму Intel. Два таких модуля в операциях с плавающей запятой будут обеспечивать для 1.4 ГГц-процессора Pentium 4 пиковую производительность всего лишь 1.4 GFLOPS :-(. Реальную вычислительную работу выполняет только один модуль - операции типа FADD (сложения) и FMUL (умножения), второй же занимается подсобной деятельностью - операции типа FSTORE (обмен между регистрами и памятью). Не в пример Pentium 4, FPU процессора Athlon содержит три раздельных, полностью конвейеризированных модуля, способных принимать инструкции на каждом такте. При этом один из ни?/p>