Обзор микроархитектур современных десктопных процессоров. Часть 1
Страница 8. IBM PowerPC 970


 

IBM PowerPC 970

В процессоре PPC970 инструкции считываются из I-кэша блоками по 32 байта за такт, с опережающей предвыборкой. В связи с тем, что инструкции имеют фиксированную длину 4 байта, они немедленно отсылаются в декодер. Декодер может обрабатывать параллельно несколько инструкций и выдавать в каждом такте группу, содержащую до 4-5 МОПов.

Большинство машинных инструкций преобразуется в один МОП, однако имеются также «двойные» инструкции, разделяемые на два МОПа, и сложные инструкции, порождающие несколько МОПов. На два МОПа могут разделяться инструкции, имеющие более двух регистров-операндов или более одного регистра-результата (например, инструкция загрузки с автоинкрементом индекс-регистра). Оба МОПа от «двойной» инструкции обязательно помещаются в одну группу и могут соседствовать с МОПами от простых инструкций. МОПы, порождаемые из сложных инструкций, никогда не смешиваются с остальными МОПами — из них всегда формируются отдельные группы. Указанные ограничения могут привести к неполному заполнению групп.

Сформированная группа МОПов поступает в буфер переупорядочения и в дальнейшем отслеживается как единое целое. В блок отставки выполненные МОПы могут поступать также только в составе исходной группы. Помимо удобства отслеживания внеочередного исполнения и отставки, объединение МОПов в фиксированные группы имеет ещё одну цель: позиция МОПа в группе привязана к номеру очереди планировщика и функционального устройства, в которые этот МОП будет отправлен. Кроме того, МОП операции перехода может помещаться только в последнюю позицию в группе, а все прочие МОПы — только в первые четыре позиции. Порядок следования МОПов в группе соответствует исходному порядку инструкций, поэтому каждая операция перехода приводит к завершению текущей группы (с возможным неполным заполнением) и формированию новой группы, начиная со следующей инструкции.

Существуют и другие ограничения, требующие помещения какого-либо МОПа в определённую позицию в группе и приводящие к фрагментации. В основном эти ограничения связаны с тем, что для некоторых типов функциональных устройств имеются очереди планировщика, соответствующие только определённым позициям МОПа в группе. Например, операции для работы с регистрами условий декодер всегда помещает в позиции 0 или 1, операции целочисленного деления — в позиции 1 или 2, арифметические операции векторного блока VMX — в позиции 1 или 3, операции перестановок VMX — в позиции 0 или 2. В связи с этим в середине или конце группы могут остаться незанятые позиции.

Помимо перечисленных случаев, группа МОПов может оказаться не заполненной до конца, если прерывается входной поток инструкций — например, при отсутствии следующего блока инструкций в I-кэше, либо если инструкции считывались из кэша с недостаточным опережением.

Таким образом, декодер RISC-процессора PPC970 имеет высокую пропускную способность, но не обладает достаточной гибкостью при формировании групп МОПов. Это связано не с недостатками собственно декодера, а с особенностями организации подсистемы внеочередного исполнения и функциональных устройств процессора. Поэтому, несмотря на то, что «ширина обработки» входного потока инструкций и порождаемых МОПов формально равна 4-5, реальное число МОПов в группе составит в среднем, с учётом потерь на фрагментацию, не более 3.5. Это приводит к неполному заполнению буферов и снижению эффективной пропускной способности трактов процессора. Как будет показано в разделе про внеочередное исполнение, статическая привязка очередей и устройств к позициям МОПов может приводить также к неполной загрузке функциональных устройств.

При поступлении вновь сформированной группы МОПов в буфер переупорядочения и очереди планировщика производится переименование (переназначение) регистров результатов для этих МОПов. Имеется несколько групп внутренних (физических) регистров: 80 регистров общего назначения, 72 регистра для операций с плавающей точкой и некоторое количество регистров прочих типов.

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