Особенности ядра со структурой Haswell

Процессоры со структурой Haswell производились по22-нанометровому техпроцессу.

Серьезных изменений в структуре ядра Haswell не произошло. Главный упор был сделан на управление энергопотреблением и масштабируемость.

Введен новый набор состояний ядра в зависимости от его текущей загрузки -S0ix. Основная идея – минимизировать энергопотребление в момент низкой активности или полного бездействия системы, например, когда пользователь просто что-то разглядывает на экране, а в фоновом режиме не выполняется никаких ресурсоемких задач. В этот момент отключаются (обесточиваются) все незадействованные модули внутри ядер. Модули включаются только по необходимости, что дает аж двадцатикратную экономию в режиме простоя, при этом сама система находится в полностью активном состоянии C0. В итоге идея с полным отключением блоков оказалась в разы эффективнее снижения напряжения и понижения частот. Аналогичным образом оптимизированы и другие состояния C0-C7.

Кроме этого, ядра еще больше "развязаны" друг от друга по частоте, что позволяет эффективнее использовать режимы Turbo, при этом оставаясь в рамках заданного теплового пакета.

Появился расширенный набор команд AVX2, возросло количество исполнительных портов. Их стало восемь, поэтому в теории пропускная способность конвейера ядра со структурой Haswell стала на треть больше. Был предпринят ряд шагов к тому, чтобы обеспечить все эти порты работой, то есть улучшить возможности ядра по параллельному выполнению команд. С этой целью были оптимизированы алгоритмы предсказания ветвлений и увеличен объём внутренних буферов: в первую очередь — окна внеочередного выполнения команд.

Расширена система команд подмножеством команд AVX2, а также существенно увеличилась скорость их выполнения. Главное достояние этого набора — FMA-команды, объединяющие сразу пару операций над числами с плавающей точкой. Благодаря этим командам теоретическая производительность ядра со структурой Haswell при операциях над числами с плавающей точкой с одинарной и двойной точностью выросла вдвое.

Также в структуре Haswell появился набор команд-расширений TSX (Transactional Synchronization Extensions), которые помогают программистам лучше управлять потоками команд и данных для более плотной загрузки многоядерных процессоров.

Оптимизирована межъядерная шина. Кроме того, вдвое увеличена пропускная способность кэш-памятей L1 и L2.В каждом такте они оперируют с вдвое большим количеством данных, хотя сами объемы кэш-памятей, а также задержки в выборке или в случае кэш-промахов остались аналогичными с предыдущим поколением.
Показатели задержек и пропускных способностей трех структур ядер приведены в таблице 31.2.

Таблица 31.2.

  Структура Sandy Bridge Структура Ivy Bridge Структура Haswell
  Задержка, такты
L1D кеш-память
L2 кеш-память
L3 кеш-память
Пропускная способность, Гбайт/с
L1D кеш-память 510,68 507,64 980,79
L2 кеш-память 377,37 381,63 596,7
L3 кеш-память 188,5 193,38 206,12

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

Организация, размеры, задержки, пропускные способности кэш-памятей первого и второго уровней приведены в таблице 31.3.

Таблица 31.3.

Характеристики Структура Nehalem Структура Sandy Bridge Структура Haswell
Организация кэш-памяти команд первого уровня L1K 32К байт, 4-канала 32К байт, 8-каналов 32К байт, 8-каналов
Организация кэш-памяти данных первого уровня L1D 32К байт, 8-каналов 32К байт, 8-каналов 32К байт, 8-каналов
Задержка при обращении в кэш-память L1 4 такта 4 такта 4 такта
Размер блока данных, читаемых из кэш-памяти L1 16 байт 32 байта 64 байта
Размер блока данных, записываемых в кэш-память L1 16 байт 16 байт 32 байта
Организация кэш-памяти второго уровня L2 256К байт, 8-каналов 256К байт, 8-каналов 256К байт, 8-каналов
Задержка при чтении из кэш-памяти L2 10 тактов 12 тактов 12 тактов
Размер блока данных, читаемых из кэш-памяти L2 в кэш-память L1 32 байта 32 байта 64 байта
TLB L1K 4К байт, 128, 4 канала, 2М/4М: 7 потоков 4К байт, 128, 4 канала, 2М байт/4М байт: 8 потоков 4Кбайт, 128, 4 канала, 2М байт/4М байт: 8 потоков
TLB L1D 4К байт, 64, 4 канала, 2М байт/4М байт: 32, 4 канала, 1G: расщепленный 4К байт, 64, 4 канала, 2М байт/4М байт: 32, 4 канала, 1G, 4, 4 канала 4К, 64, 4 канала, 2М/4М: 32, 4 канала, 1G, 4, 4 канала
TLB L2 4КМ, 512, 4 канала,   4КМ, 512, 4 канала 4К байт+2М байт, общий, 1024, 8 каналов
Размер блока при обращении в оперативную память 64 байта 64 байта 64 байта

В целом структура Haswell на фоне структуры Sandy Bridge не выглядит заметным продвижением вперёд. Принципиальное преимущество наблюдается лишь при использовании набора команд AVX2. Если же эти новые команды в рассмотрение не брать, то средний уровень превосходства структуры Haswell над структурой Sandy Bridge составляет порядка 10 процентов.

Общая блок-схема ядра со структурой Haswell приведена на рис. 31.3.

Особенности ядра со структурой Haswell - student2.ru

Рис. 31.3. Блок схема ядра со структурой Haswell

Контрольные вопросы

1. Назовите основные стадии конвейера команд современных универсальных процессоров.

2. Сколько уровней кэш-памяти в современных процессорах?

3. Функции кэш-памяти первого уровня?

4. Функции кэш-памяти второго уровня?

5. Функции кэш-памяти третьего уровня?

6. Почему кэш-память первого уровня разделяют на кэш-память команд и кэш-память данных?

7. Что такое предвыборка?

8. Какие различия между организацией кэш-памяти в процессорах фирм Intel и AMD?

9. Какие функции дешифратора?

10. Зачем нужно переименование регистров?

11. Почему необходим буфер для хранения выполненых команд?

12. Функции предсказателя переходов?

13. Функции планировщика выдачи команд на выполнение?

Наши рекомендации