Обзор микроархитектур современных десктопных процессоров. Часть 3
Страница 6. Двухъядерные процессоры Intel


Двухъядерные процессоры Intel

Основные отличия двухъядерного процессора P8 от своего идеологического предшественника P-III также можно разделить на две группы. К первой следует отнести различные усовершенствования и исправления недостатков, проведённые поэтапно в процессорах семейства P6+ (P-M и P-M2):

  • увеличены размеры и ассоциативность кэшей;
  • увеличены размеры очередей внеочередного исполнения и различных внутренних таблиц;
  • радикально улучшена подсистема предсказания переходов;
  • введён механизм слияния микроопераций (micro-op fusion);
  • ускорена работа с аппаратным стеком;
  • значительно усовершенствован декодер машинных инструкций;
  • добавлены режимы SSE2 и SSE3, проведён ряд усовершенствований в функциональных устройствах и портах запуска операций;
  • заимствована внешняя шина FSB у процессора P-4;
  • внедрены усовершенствованные технологии энергосбережения;
  • реализована двухъядерность с общим L2-кэшем (в процессоре P-M2).

Во вторую группу входят нововведения, появившиеся в архитектуре P8 и отличающие её от промежуточной архитектуры P6+:

  • увеличена «ширина обработки» до 4-5 инструкций за такт, введён механизм слияния в одну макрооперацию инструкций сравнения и перехода;
  • увеличено число кластеров арифметико-логических функциональных устройств и портов запуска;
  • увеличены размеры очередей внеочередного исполнения и различных таблиц;
  • усовершенствованы подсистемы предсказания переходов и предвыборки данных;
  • добавлен механизм устранения неоднозначностей при обращении в память;
  • реализован полночастотный 128-битный режим выполнения упакованных операций
    SSE во всех трёх каналах исполнения;
  • увеличена ширина и пропускная способность доступа к L1-кэшу;
  • введён 64-битный режим EM64T (x86-64), а также дополнительный режим SSE4.

Однако, наряду с усовершенствованиями, в микроархитектуре нового процессора P8 остались некоторые недостатки предыдущих архитектур. Часть этих недостатков являются количественными ограничениями «компромиссного» типа, другие, по всей видимости, носят более принципиальный характер, связанный с базовыми ограничениями данной микроархитектуры. Перечислим обнаруженные недостатки в порядке возрастания их важности (с точки зрения автора):

  • умножения в режиме x87 выполняется в половинном темпе;
  • переходы выполняются в темпе не более одной операции за такт;
  • не очень эффективно реализованы инструкции работы с флагом переноса CF (ADC, SBB), необходимые для работы с числами произвольной длины;
  • сохранилась проблема, связанная с «частичной записью флагов», главным образом относящаяся к флагу переноса CF;
  • сохранилось ограничение на число считываний архитектурных регистров в каждом такте на этапе переименования и выделения регистров (Register read stall);
  • обращение к кэшу данных ограничивается темпом «одна загрузка плюс одна выгрузка за такт».

Из перечисленных проблем, только последняя (темп обращений к кэшу) поддаётся количественному анализу и может рассматриваться как некоторое ограничение производительности. Ещё одна проблема (число считываний архитектурных регистров) является весьма специфичной, поскольку связана с тонкими особенностями организации регистровых файлов. Детали этой организации доподлинно не известны. Специально подобранными тестами можно добиться значительного снижения темпа выполнения инструкций (до одной за такт), однако такие тесты весьма экзотичны и не соответствуют реальным программам. Судя по результатам различных замеров производительности (особенно по чрезвычайно высоким показателям набора тестов SPECint2000), данный эффект не очень сильно проявляется на практике.

Таким образом, можно заключить, что изначально удачную (концептуально) динамическую архитектуру P6 наконец-то наполнили адекватным содержанием, добавив в неё в процессе развития (P6 — P6+ — P8) множество интересных нововведений (слияние микроопераций, макро-слияние, работа с аппаратным стеком, механизм устранения неоднозначностей при обращении в память, режим x86-64 и проч.).

В настоящий момент ещё нет данных о дальнейшем развитии микроархитектур процессоров компании Intel. Известно лишь, что в ближайшие два года процессоры всех классов (мобильные, десктопные и серверные) будут базироваться на архитектуре Intel Core (P8), а основное развитие будет идти в направлении увеличения числа ядер на кристалле и усовершенствования внешних интерфейсов процессора.

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