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

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

Для эффективного исполнения 256-битных инструкций исполнительные устройства процессора были подвергнуты специальному редизайну. Суть изменений сводится к тому, что для работы с 256-битными данными 128-битные исполнительные устройства объединяются попарно. А учитывая то, что каждый из трёх исполнительных портов Sandy Bridge (как и Nehalem) имеет устройства для работы одновременно с тремя видами данных – 64-битными, 128-битными целыми или 128-битными вещественными – попарное объединение SIMD устройств в рамках одного порта выглядит вполне естественным и разумным решением. И, что немаловажно, такое перераспределение ресурсов не наносит ущерба общей пропускной способности исполнительного блока процессора.

Ориентация Sandy Bridge на работу с 256-битными векторными инструкциями заставила разработчиков процессора задуматься и над повышением производительности работы функциональных устройств загрузки и выгрузки данных. Три порта для работы с данными, которые были реализованы в Nehalem, перекочевали и в Sandy Bridge. Но для увеличения их коэффициента полезного действия инженеры унифицировали два порта, которые ранее были предназначены для сохранения адресов и загрузки данных. Теперь они стали равноценными и оба могут либо загружать адреса и данные, либо выгружать адреса. Третий же порт остался в неизменном виде и предназначается для сохранения данных. Учитывая, что каждый порт способен пропускать до 16 байт за цикл, суммарная пропускная способность кэша данных первого уровня в новой микроархитектуре возросла на 50 %. В результате, процессоры с микроархитектурой Sandy Bridge могут загружать до 32 байт данных и сохранять 16 байт данных за такт.

14. Новые подходы к интеграции Sandy Bridge

С разработкой архитектуры Nehalem Intel начал предпринимать реальные шаги в сторону увеличения уровня интеграции своих процессоров. В них стали последовательно переноситься функциональные узлы, ранее являвшиеся прерогативой набора логики: контроллер памяти, контроллер PCI Express, графическое ядро. Также, в процессоре добавился и кэш третьего уровня. Иными словами, процессор стал не просто локальным «вычислительным центром», а сосредоточением большой группы разнородных сложных блоков.

Конечно, такое объединение имеет множество положительных сторон и позволяет поднять производительность за счёт уменьшения задержек при обмене данными. Однако чем больше различных блоков присутствует в процессоре, тем сложнее становится реализация взаимосвязей между ними на электрическом уровне. И наиболее серьёзную проблему в этом ключе представляет соединение разделяемого L3 кэша с процессорными ядрами, особенно в свете перспективы дальнейшего увеличения их количества. Иными словами, работая над микроархитектурой процессоров Sandy Bridge, разработчики были вынуждены серьёзно задуматься об организации удобной схемы взаимодействия между функциональными узлами, находящимися в процессоре. Применявшееся ранее обычное перекрёстное соединение смогло послужить в двух- четырёх- и шестиядерных Nehalem, но для модульного процессорного дизайна с большим количеством различных ядер оно уже не подходит.

Собственно, это уже было учтено в восьмиядерных серверных процессорах Nehalem-EX, где для соединения вычислительных ядер и L3 кэша была использована принципиально новая технология. Эта технология, которая успешно перекочевала и в Sandy Bridge, – кольцевая шина. В перспективных процессорах вычислительные ядра, кэш, графическое ядро и элементы северного моста объединены специальной кольцевой шиной с QPI-подобным протоколом, которая позволила существенно сократить количество внутрипроцессорных соединений, необходимых для маршрутизации сигналов.

Для эффективной реализации взаимодействия функциональных блоков процессора с кэшем третьего уровня посредством кольцевой шины он в процессорах Sandy Bridge делится на равноправные банки объёмом по 2 Мбайта. Исходный дизайн предполагает, что число этих банков соответствует числу процессорных ядер. Но в маркетинговых целях без ущерба для целостности кэша банки могут отключаться от шины, сокращая таким образом общий объём кэш-памяти. Каждый из банков кэш-памяти управляется собственным арбитром, но при этом все они работают в тесном взаимодействии – информация в них не дублируется. Разделение на банки не означает дробления L3 кэша, оно просто позволяет увеличить его пропускную способность, которая в результате масштабируется с ростом количества ядер и, соответственно, банков. Например, учитывая, что ширина «кольца», используемого для пересылок данных, составляет 32 байта, пиковая пропускная способность L3 кэша четырёхъядерного процессора, работающего с частотой 3.4 ГГц составляет 435.2 Гбайт/с.

Кольцевая шина хороша не только своей масштабируемостью при росте количества процессорных ядер. Учитывая, что при обменах информации по «кольцу» используется кратчайший маршрут, снизилась и латентность L3 кэша. Теперь она составляет 26-31 цикл, в то время как L3 кэш Nehalem предлагал латентность 35-40 циклов. Правда, при этом следует учитывать, что вся кэш-память в Sandy Bridge работает на частоте процессора, то есть она стала быстрее и за счёт этого тоже.

Ещё одно преимущество, привнесённое кольцевой шиной, заключается в том, что она позволила подключить к общим путям пересылок данных и интегрированное в процессор графическое ядро. То есть графика в Sandy Bridge работает с памятью не напрямую, а аналогично процессорным ядрам – через кэш-память третьего уровня. Это увеличивает её производительность, а также уменьшает тот ущерб, который встроенная графика способна нанести общей производительности системы, борясь за шину памяти с вычислительными ядрами.