CPU

Эволюция Intel Core: Nehalem, Sandy Bridge, Haswell, Skylake. Часть 1


В данном материале мы рассмотрим эволюцию Core на примере буферов и очередей.

Остальные материалы по микроархитектуре Skylake и эволюции Intel Core собраны здесь.

Сведем все данные об изменениях в буферах и очередях в единую таблицу.

Nehalem Sandy Bridge Haswell Skylake
Буфер переупорядочивания 128

168

(+31%)

192

(+14%)

224

(+17%)

Буфер загрузки 48

64

(+33%)

72

(+13%)

72

(+0%)

Буфер выгрузки 32

36

(+13%)

42

(+17%)

56

(+33%)

Очередь планировщика 36

54

(+50%)

60

(+11%)

97

(+62%)

Физический регистровый файл для целочисленных операндов - 160

168

(+5%)

180

(+7%)

Физический регистровый файл для операндов с плавающей точкой - 144

168

(+17%)

168

(+0%)

Очередь декодированных инструкций 2х28

2х28

(+0%)

56

(+0%)

2x64

(+129%)

Среднеарифметический прирост ~18% ~11% ~35%
Суммарный среднеарифметический прирост ~71%

Как можно заметить из поколения в поколение, компания Интел наращивала объемы буферов - правда, неравномерно. Рассмотрим подробнее.

Буфер переупорядочивания

Буфер переупорядочивания увеличивался с каждым переходом на новую микроархитектуру, что, в целом, логично - в процессорах Haswell количество портов запуска и исполнительных устройств значительно увеличилось относительно Sandy Bridge - увеличение буфера переупорядочивания повышает шанс встречи независимых друг от друга инструкций, что позволяет наиболее полно загружать исполнительные устройства, снижая вероятность простоя конвейера. Как можно заметить, наибольший скачок произошел при переходе Nehalem-Sandy Bridge и составил 31%. В целом же с 2008 года буфер переупорядочивания вырос на 75%. Вполне неплохо?

Буферы загрузки и выгрузки

Буфер загрузки, к сожалению, в последнем поколении Skylake не вырос относительно предшественника, при этом в остальных переходах - он рос. Скорее всего... это связано с тем, что увеличение данного буфера потребовало бы "перекройки" логического расположения элементов. В целом же за все шесть поколений Core буфер загрузки увеличился на 50%. Что касается буфера выгрузки, то он рос всегда, что позволило достичь суммарного прироста в 75% относительно Nehalem.

Буфер планировщика

Буфер планировщика рос также постоянно, причем наибольший скачок произошел именно при переходе Haswell-Skylake, увеличив количество записей на 62%. Общий же прирост за время существования Core - 169%. В целом, увеличение длины очереди планировщика должно способствовать более полной загрузки исполнительных устройств.

Регистровые файлы

Регистровый файл для целочисленных операндов растет незначительно с каждым новым поколением, а для операндов с плавающей точкой и того хуже - прирост был только при переходе Sandy Bridge - Haswell.

Буфер декодированных инструкций

Очередь декодированных инструкций самая пассивная с точки зрения развития архитектуры (увеличения емкости) - увеличение ее длины произошло только при переходе Haswell - Skylake, правда сразу на 129%. Причем стоит заметить, что сначала Интел использовала две раздельные очереди декодированных инструкций для каждого логического ядра (потока HT), при переходе на ядро Haswell было решено объединить буферы с целью лучшего распределения инструкций в случае разной загрузки логических ядер. Но при переходе на ядро Skylake Интел снова вернулась к двум раздельным буферам переупорядочивания, правда значительно увеличив при этом их объем - длина очереди переупорядочивания одного логического ядра в процессорах Skylake стала даже больше общего буфера переупорядочивания у предшественника (Haswell). То есть, как минимум, даже при неравномерной нагрузке на логические ядра хуже чем у предшественника стать не должно. Увеличение объема данного буфера должно положительно сказаться на эффективности технологии мультипоточности HT.
Суммируя выше сказанное, средний прирост буферов в процессорах Skylake составил 35% относительно Haswell, что намного больше предшествующих смен поколений Core. А общий прирост относительно Nehalem составил 71%. Учитывая это, в новых процессорах Skylake должна повыситься эффективность мультипоточности, средняя загрузка исполнительных устройств, а также должно снизиться влияние зависимых данных (благодаря увеличению емкости буфера переупорядочивания) - всё это должно повысить IPC в реальных задачах относительно предшественника. В целом, уже сейчас можно сказать, что компания Интел действительно работает над улучшением Core и не стоит на месте. Другой вопрос, что увеличение емкости того или иного буфера на 129% не приносит пропорционального роста производительности - и это надо понимать. Смотря на рост емкости буферов надо также понимать, что повышение реальной производительности на 5-10% требует увеличение их емкости на гораздо большие величины (при этом требуются и другие переработки в исполнительном тракте ЦП). Как факт, не так-то просто получить прирост производительности на 5-10% в реальных задачах... В следующей части мы продолжим разбирать архитектуру Skylake.
P.S.: Дополнительную информацию об архитектурах можно получить в материалах посвященных тепловому потоку процессоров (часть 1, часть 2, часть 3, часть 4), где можно пронаблюдать развитие Core с точки зрения теплового потока.

0 logo low

Copyright © by ServersTech.ru, 2015-2020. Копирование запрещено.
Коммерческие предложения, сотрудничество и реклама: cooperation@serverstech.ru
Предложения, вопросы и пожелания читателей: readership@serverstech.ru
Copyright © 2015-2020 ServersTech.ru. Все права сохранены
Copyright © 2015-2020 ServersTech.ru. All rights reserved