Введение

1998 год – семейство микропроцессоров IBM POWER3. POWER3 – это микропроцессор, разработанный и производимый исключительно компанией IBM, который реализовал 64-битную версию архитектуры набора команд PowerPC (ISA), включая все необязательные инструкции ISA (на тот момент), такие как инструкции, присутствующие в версии POWER2 POWER ISA, но отсутствующие в PowerPC ISA. Он был представлен 5 октября 1998 года и дебютировал в RS/6000 43P Model 260 – высокопроизводительной графической рабочей станции. Изначально POWER3 должен был называться PowerPC 630, но был переименован, вероятно, чтобы отделить серверные процессоры POWER, которые он заменил, от более ориентированных на потребителя 32-битных PowerPC. POWER3 являлся преемником P2SC, производного от POWER2, и завершил длительный и затянувшийся переход IBM от POWER к PowerPC, который первоначально планировалось завершить в 1995 году. POWER3 использовался в серверах и рабочих станциях IBM RS/6000 с частотой 200 МГц. Он конкурировал с Digital Equipment Corporation (DEC) Alpha 21264 и Hewlett Packard (HP) PA 8500.

Описание

POWER3 был основан на PowerPC 620, более ранней 64-битной реализации PowerPC, которая была выпущена с задержкой, демонстрировала недостаточную производительность и не имела коммерческого успеха. Как и PowerPC 620, POWER3 имеет три блока фиксированной точки, но единственный блок операций с плавающей точкой (FPU) был заменен двумя блоками умножения-сложения с плавающей точкой, а также был добавлен дополнительный блок загрузки/сохранения (в общей сложности два) для повышения производительности операций с плавающей точкой. POWER3 представляет собой суперскалярную конструкцию, выполняющую инструкции вне порядка. Он имеет семиступенчатый целочисленный конвейер, минимальный восьмиступенчатый конвейер загрузки/сохранения и десятиступенчатый конвейер операций с плавающей точкой. Фронтальная часть состоит из двух этапов: выборка и декодирование. На первом этапе восемь инструкций извлекаются из кэша инструкций объемом 32 КБ и помещаются в буфер инструкций на 12 записей. На втором этапе четыре инструкции извлекаются из буфера инструкций, декодируются и отправляются в очереди инструкций. Ограничений на отправку инструкций немного: из двух целочисленных очередей инструкций только одна может принять одну инструкцию, другая может принять до четырех, как и очередь инструкций с плавающей точкой. Если в очередях недостаточно свободных записей, инструкции не могут быть отправлены. Фронтальная часть имеет короткий конвейер, что приводит к небольшой штрафной санкции в три цикла при неправильном предсказании ветвления. На третьем этапе инструкции в очередях инструкций, готовые к выполнению, получают свои операнды из регистровых файлов. Файл регистров общего назначения содержит 48 регистров, из которых 32 являются регистрами общего назначения, а 16 – регистрами переименования для переименования регистров. Для уменьшения количества портов, необходимых для предоставления данных и получения результатов, файл регистров общего назначения дублируется, так что есть две копии, первая поддерживает три целочисленных исполнительных устройства, а вторая поддерживает два устройства загрузки/сохранения. Эта схема была похожа на современный микропроцессор DEC Alpha 21264, но была проще, поскольку не требовала дополнительного тактового цикла для синхронизации двух копий из-за более высокой тактовой частоты POWER3. Файл регистров с плавающей точкой содержит 56 регистров, из которых 32 являются регистрами с плавающей точкой и 24 – регистрами переименования. По сравнению с PowerPC 620 было больше регистров переименования, что позволяло выполнять больше инструкций вне порядка, повышая производительность. Выполнение начинается на четвертом этапе. Очереди инструкций отправляют до восьми инструкций в исполнительные устройства. Целочисленные инструкции выполняются в трех исполнительных устройствах целочисленных операций (называемых IBM "блоками фиксированной точки"). Два блока идентичны и выполняют все целочисленные инструкции, кроме умножения и деления. Все инструкции, выполняемые ими, имеют задержку в один цикл. Третий блок выполняет инструкции умножения и деления. Эти инструкции не конвейерные и имеют многоцикловую задержку. 64-битное умножение имеет задержку в девять циклов, а 64-битное деление – в 37 циклов. Инструкции с плавающей точкой выполняются в двух блоках операций с плавающей точкой (FPU). FPU способны к слиянию умножения и сложения, когда умножение и сложение выполняются одновременно. Такие инструкции, наряду с отдельными сложением и умножением, имеют задержку в четыре цикла. Инструкции деления и извлечения квадратного корня выполняются в одних и тех же FPU, но им помогает специализированное оборудование. Инструкции деления и извлечения квадратного корня одинарной точности (32 бита) имеют задержку в 14 циклов, в то время как инструкции деления и извлечения квадратного корня двойной точности (64 бита) имеют задержку в 18 и 22 цикла соответственно. После завершения выполнения инструкции хранятся в буферах, прежде чем они будут зафиксированы и станут видимыми для программного обеспечения. Выполнение завершается на пятом этапе для целочисленных инструкций и на восьмом этапе для операций с плавающей точкой. Фиксация происходит на шестом этапе для целых чисел и на девятом этапе для операций с плавающей точкой. Запись в память происходит на этапе после фиксации. POWER3 может завершать до четырех инструкций за цикл. Кэш данных PowerPC 620 был оптимизирован для технических и научных приложений. Его емкость была удвоена до 64 КБ для повышения коэффициента попадания в кэш; кэш был двухпортовым, реализованным путем чередования восьми банков, чтобы в некоторых случаях можно было выполнять две загрузки или два сохранения за один цикл; и размер строки был увеличен до 128 байт. Ширина шины L2 кэша была удвоена до 256 бит для компенсации большего размера строки кэша и сохранения задержки в четыре цикла для перезаполнения кэша. POWER3 содержал 15 миллионов транзисторов на кристалле площадью 270 мм². Он был изготовлен по технологии CMOS 6S2 компании IBM, комплементарной металл-оксид-полупроводниковой технологии, которая является гибридом размеров элементов 0,25 мкм и металлических слоев 0,35 мкм. Процесс включает пять слоев алюминия. Он был упакован в ту же керамическую решетку с 1088 выводами, что и P2SC, но с другой распиновкой.

POWER3-II

POWER3 II был улучшенной версией POWER3 с повышенной тактовой частотой до 450 МГц. Он содержал 23 миллиона транзисторов и имел площадь кристалла 170 мм². Он был изготовлен по технологии IBM CMOS7S – 0,22 мкм CMOS-процессу с шестью уровнями металлизации. В 2001 году его сменил POWER4.