Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Чередов - Коллёквиум.docx
Скачиваний:
5
Добавлен:
21.11.2019
Размер:
97.5 Кб
Скачать

11. Недостатки процессоров Westmare микроархитектуры Nehalem

Результаты отслеживания и переименования микроопераций не фиксируются с помощью физического регистрового файла.

Распределение процессов между двумя структурами вместо одной может показаться архитектурным ретроградством, ведущим к усложнению конструкции и дополнительному увеличению количества транзисторов, то есть, к росту энергопотребления чипа. Поэтому чипы Nehalen постоянно «горячие» .

Это неудобство производства процессоров последнего поколения Westmere, которые строятся на двух заключённых в единой процессорной упаковке полупроводниковых кристаллах, производимых с применением разных техпроцессов.

Процессоры Nehаlem достигли своего «частотного потолка». То есть, рост тактовых частот для текущей микроархитектуры уже добрался до своего предела, и дальнейший разгон процессоров без выхода тепловыделения и энергопотребления за принятые для современных платформ рамки сильно затруднён. Это значит, что настало время подумать над другими методами увеличения быстродействия, а именно – над микроархитектурными улучшениями.

12. Усовершенствования вычислительного ядра в процессорах архитектуры Sandy Bridge

Усовершенствования вычислительного ядра

Наиболее важные изменения в вычислительном ядре процессора с архитектурой Sandy Bridge (рис. 5.1):

  1. Возврат к выделению кэш-памяти для примерно 1,5 тысяч декодированных микроопераций L0 (использовался в Pentium 4), являющейся обособленной частью L1, что позволяет одновременно обеспечить более равномерную загрузку конвейеров и снизить энергопотребление вследствие увеличения пауз в работе достаточно сложных схем декодеров операций;

  2. Повышение эффективности блока предсказания ветвлений вследствие увеличения емкости буферов адресов результатов ветвления, истории команд, истории ветвлений, что увеличило эффективность конвейеров;

  3. Увеличение емкости буфера переупорядоченных команд (ROB - ReOrder Buffer) и повышение эффективности этой части процессора благодаря внедрению физического регистрового файла (PRF – Physical Register File, тоже характерной особенности Pentium 4) для хранения данных, а также расширение других буферов;

  4. Удвоение емкости регистров для работы с потоковыми вещественными данными, что в ряде случаев может обеспечить в два раза большую скорость выполнения операций, их использующих;

  5. Увеличение эффективности исполнения инструкций шифрования для алгоритмов AES, RSA и SHA;

  6. Оптимизация работы кэш-памяти первого L1 и второго L2 уровней.

Оптимизация для более эффективной виртуализации и исполнения серверных приложений.

Одним из наиболее важных нововведений микроархитектуры Sandy Bridge является кеш декодированных микроопераций, или кеш инструкций L0. По сути своей кеш декодированных микроопераций напоминает трассировочный кеш микроархитектуры NetBurst (Pentium 4), однако принцип работы у них совершенно разный, сходство заканчивается на том, что оба они работают с микрооперациями.

Благодаря структурной организации формата 32х8 с возможностью хранения шести микроопераций в линии, кеш декодированных микроопераций вмещает чуть более полутора тысяч микроопераций. Без особых затей он кеширует на выходе декодеров все предварительно декодированные микрооперации. Как только поступает на обработку новая инструкция, блок упреждающей выборки первым делом производит сверку с кешем L0, и в случае обнаружения совпадений, загрузка конвейера по четыре микрооперации за такт в обход декодеров осуществляется уже из кеша L0. В противном случае, когда кеш декодированных операций оказывается невостребованным, продолжается обычная работа по выборке и декодированию команд, а кеш декодированных операций переводится в режим экономии энергии.

Ничуть не меньше изменился блок предсказания ветвлений (branch prediction). В частности, буфер предсказания результата ветвления (branch target buffer, BTB) чипа Sandy Bridge вмещает в два раза больше адресов результатов ветвления и вдвое большую историю комбинаций команд.

Процессы распределения, переименования, планировки и вывода данных в процессе конвейерного выполнения макроопераций в микроархитектуре Sandy Bridge подверглись самой значительной переработке.

Микроархитектуре Sandy Bridge, результаты отслеживания и переименования микроопераций фиксируются с помощью физического регистрового файла, PRF (physical register file), присущего архитектуре NetBurst (Pentium 4) и также характерного для многих Out-of-Order архитектур вроде AMD Bulldozer/Bobcat, IBM POWER. Фактически, на буфер переупорядочивания в ядре Sandy Bridge возложена только функция «трассировки» инструкций, обрабатываемых в данный момент времени, в то время как функции хранения данных возложены на независимый физический регистровый файл. Иными словами, факт исполнения операции в Out-of-Order структуре Sandy Bridge приводит только к тому, что регистр указывает на иное значение в PRF, а не к переносу 32-, 64-, 128- или 256-битных данных, как в случае, когда используется только буфер переупорядочивания.

Кроме появления в архитектуре Sandy Bridge физического регистрового файла, изменились и характеристики традиционных модулей кластера Out-of-Order процессов. Так, буфер переупорядочивания способен обрабатывать до 168 микроопераций одновременно. Целочисленный физический регистровый файл Sandy Bridge хранит 160 отдельных 64-битных записей; физический регистровый файл для векторно-вещественных данных с плавающей запятой хранит 144 256-битных записей, то есть регистры YMM с новыми векторными x86-64 командами AVX целиком.

В микроархитектуре Sandy Bridge вводятся новые векторные инструкции AVX.

Сами по себе инструкции AVX – это дальнейшее развитие SSE, расширяющие разрядность типовых векторных SIMD операций на 256-битные операнды. Размер векторных регистров SIMD увеличивается с 128 (XMM) до 256 бит (регистры YMM0 – YMM15). Кроме того, новый набор позволяет проводить операции в недеструктивной форме, то есть без потери исходных данных в регистрах. Благодаря этим свойствам набор инструкций AVX наравне с микроархитектурными улучшениями также можно отнести к нововведениям, направленным на повышение производительности и на экономию энергии, так как их внедрение позволит упростить многие алгоритмы и совершать большее количество работы с использованием меньшего числа команд. Инструкции AVX хорошо подходят для интенсивных вычислений с плавающей точкой в мультимедиа, научных и финансовых задачах.

Как и раньше, в чипах Nehalem, загрузка микроопераций всех типов: SIMD, целочисленных и с плавающей запятой, происходит по одинаковому сценарию, единым унифицированным планировщиком, динамически распределённым между всеми потоками. Разница в том, что в архитектуре Sandy Bridge планировщик более ёмкий и загружается сразу 54 переименованными и готовыми к исполнению микрокомандами.

Благодаря существенной доработке, нацеленной на удвоение производительности при работе с 256-битными векторными инструкциями AVX и возможности исполнения большинства из них как единой микрооперации, исполнительные блоки микроархитектуры Sandy Bridge стали вдвое мощнее, чем у чипов Nehalem. Теперь они способны обрабатывать восемь операций двойной точности с плавающей запятой (FP) или 16 FP-операций одинарной точности за такт. Таким образом, ядро Sandy Bridge способно исполнять за каждый такт 256-битное FP-умножение, 256-битное FP-сложение и 256-битное смещение.

Несмотря на увеличение разрядности исполнительных блоков ядра до 256 бит, увеличения ширины шины данных до 256 бит не произошло. Для исполнения 256-битных микроопераций в ядре Sandy Bridge объединяются возможности имеющихся в наличии 128-битных трактов для работы с данными SIMD INT и SIMD FP.

Также стоит упомянуть, что в ядре Sandy Bridge повышена производительность при обработке инструкций стандарта шифрования AES и RSA, а также производительность при вычислении хешей SHA-1.

Необходимость работы с вдвое увеличенными (до 256 бит) операндами SSE FP не могла не сказаться на нагрузке подсистемы памяти ядра Sandy Bridge, которая должна обслуживать не менее двух запросов за такт, гарантированно обеспечивая возможность 16-байт записи и 16-байт чтения.

Вот почему в структуре 8-банкового кеша данных L1 ядра Sandy Bridge был добавлен второй 16-битный порт чтения, благодаря которому суммарная пропускная способность кеша выросла до 48 байт за такт: два 16-байт запроса чтения и 16-байт запись. Размеры буферов записи и чтения, разделённых между исполнительными блоками ядра Sandy Bridge, были также увеличены: буфер записи - до 64 ячеек, буфер чтения - до 36 ячеек.

8-банковый ассоциативный кеш L2 микроархитектуры Sandy Bridge, распределённый по 256 Кбайт на каждое ядро, достаточно схож с тем, что применялось в предыдущих поколениях процессоров Intel. Здесь изменения минимальны.