2. Структура кэш-памяти Nehalem – более спорная, чем можно подумать
Ни для кого не секрет, что существующая подсистема кэш-памяти Core i7 серьезно усложнена по сравнению с предшествующими CPU поколения Core 2, и отныне сравнима с процессорами AMD архитектуры K10. Так, в сегодняшних Bloomsfield помимо стандартно-необходимых L1I и L1D по 32 Кб, на каждое ядро приходится 256 Кб L2, а все четыре вычислительных процессора имеют доступ к разделяемому L3 немалого объема в 8 Мб:
Стоит отдельно отметить факт, что впервые в CPU Intel применена инклюзивная структура кэша, что позволило минимизировать лишние операции по поиску нужной информации одним ядром в памяти других. Однако это, как и большой, но медленный L3, не снимает вопросов о минимизации L2. Ведь последний раз 256 Кб L2 мы могли наблюдать в давным-давно устаревших CPU семейства Pentium 4, основанных на ядре Willamette! Фактически, впервые за много лет Intel не увеличивает, а уменьшает размер кэша второго уровня. Данную тенденцию отлично иллюстрирует такая диаграмма:
Фактически на протяжении 10 лет, за исключением некоторых Pentium 4/D, только подтверждающих общее правило, просматривается линейное увеличение размеров кэш-памяти. В 2008 процессоры Intel имели по 2-3 виртуальных Мб L2 на ядро. Теперь посмотрим на правый нижний угол графика... Да, именно там находится Core i7, что крайне нестандартно и оригинально.
Однако если при этом обратить внимание на общий объем L2 и L3, становится ясно, что Nehalem не сильно выбивается из общей картины экспоненциального роста:
Легко объяснить, почему в данном случае зависимость уже нелинейная. В 2005-2006 годах Intel начала поставлять на рынок двухядерные CPU. Вместе с ростом количества ядер рос и объем кэша, быстро появились сначала двухъядерные процессоры с 2-4 Мб L2, а по прошествии пары лет на полках магазинов были доступны уже четырехядерные 45 нм CPU с 12 Мб L2.
Таким образом, с увеличением количества ядер рост объема индивидуального кэша замедлился, тогда как акцент был сделан на увеличении общего кэша, доступного всем ядрам. Nehalem изначально проектировался как четырехядерный процессор, однако при этом он должен был свободно масштабироваться как в сторону увеличения, так и уменьшения ядер. В видении Intel, нас ждет многоядерное будущее, поэтому оптимизировать Nehalem для двухядерной структуры корпорации не стала. Ту же концепцию продвигает и AMD, однако посмотрим на примере отдельно взятых CPU, насколько ощутимым может быть выигрыш от многоядерности сегодня.
|
SysMark 2007, общие баллы | E-Learning | Video Creation | Productivity | 3D |
Intel Celeron 420 (1 ядро, 512 Кб, 1.6 ГГц) | 55 | 52 | 55 | 54 | 58 |
Intel Celeron E1200 (2 ядра, 512 Кб, 1.6 ГГц) | 76 | 68 | 91 | 70 | 78 |
% увеличение производительности от 1 к 2 ядрам | 38% | 31% | 65% | 30% | 34% |
Intel Core 2 Duo E6750 (2 ядра, 4 Мб, 2.66 ГГц) | 138 | 147 | 141 | 120 | 145 |
Intel Core 2 Quad Q6700 (4 ядра, 8 Мб, 2.66 ГГц) | 150 | 145 | 177 | 121 | 163 |
% увеличение производительности от 2 к 4 ядрам | 8.7% | 0% | 26% | 1% | 12% |
Думаю, цифры говорят сами за себя. Мы ни в коем случае не являемся противниками прогресса, однако, в 90% домашних приложений за исключением некоторых игр вроде GTA IV или Supreme Commander, где прирост производительности от увеличения количества ядер практически линейный, четырехядерность сегодня не оправдана. Отсюда и вытекает немалая спорность полезности серьезного уменьшения размеров L2 и добавление достаточно медленного L3.
Если бы Nehalem оптимизировали для двух ядер в составе CPU, безусловно, от L3 бы отказались, скорее всего, еще более увеличив L2. Однако согласно концепции Intel, описанной парой абзацев выше, современный процессор должен нести как минимум 4 ядра, поэтому Core i7 сегодня такой, каким мы его знаем. Тогда как превосходство в хорошо распараллеленных приложениях выглядит логичным, удивляет то, что, несмотря на огромное сокращение размера значимого L2, Core i7 оказывается как минимум не медленнее предшественников даже в неоптимизированных под многоядерность программах.
Оказывается, для инженеров Intel размер L2 также стал головной болью при разработке i7, и сегодня при проектировании обновленного Nehalem задача увеличения L2 стоит. Она не так проста, как может показаться на первый взгляд, необходимо выдерживать баланс, учитывая размеры ядра и латентность кэша. Сегодня L2 в Bloomfield обладает задержками в 10 циклов. Без серьезных изменений в дизайне увеличение размера кэш-памяти второго уровня до 512 Кб вело к 20% замедлению его работы, что было неприемлемо для конечной скорости работы, поэтому в процессе разработки i7 решено было остановиться на 256 Кб.
Пока неизвестно, обзаведутся ли последователи Nehalem увеличенным L2, или же Intel пойдет по пути наращивания скорости L3. Обе задачи непросты, но, по словам представителей Intel, снижение в будущем латентности 8 Мб L3 с текущих 41 до 30 циклов весьма и весьма вероятно.
Вообще говоря, Intel столкнулась при разработке своего первого монолитного четырехядерного CPU с теми же проблемами, которые преследовали AMD при подготовке Phenom. Всем было ясно, что 8 Мб общего кэша (лишь 2 Мб на отдельное ядро) – мало по современным меркам, однако оставаться в рамках приемлемого транзисторного бюджета и тепловыделения без перехода на 32 нм техпроцесс оказалось возможным лишь с компромиссным уменьшением кэша. Скорее всего, одним из главных изменений в грядущих 32 нм CPU станет возросший объем L3, вместе с увеличением его скорости. Как мы уже отметили, L2 так же возможно будет увеличен, если это не скажется на скорости только в худшую сторону.
В любом случае, несмотря на всю неоднозначность решений, инженеров Intel можно только поздравить с тем, насколько удачно получилось сбалансировать Core i7. Ведь даже с относительно небольшим L3 (в контексте 2 Мб на одно ядро) новые процессоры оказываются на одной частоте на 0-60% быстрее, чем Penryn. Остается один вопрос – насколько же производительным будет последователь Bloomfield с увеличенным объемов столь необходимой кэш-памяти разных уровней, и что сможет противопоставить этому монстру AMD...
[N3-3. Массовый Nehalem – интеграция контроллера PCI-Express и графического ядра на кристалл]
Сегодняшняя платформа для Nehalem выглядит следующим образом:
Как вы знаете, на кристалле располагается трехканальный контроллер DDR3, а с чипсетом X58 Core i7 связывается с помощью одного из линков QPI. При этом фактически, северный мост X58 выступает контроллером PCI-Express для связи с высокопроизводительными видеокартами и периферией через слоты PCIe 2.0. Такая конфигурация требует наличия LGA1366. Материнские платы с данным сокетом и X58 на борту обладают сложным дизайном и высокой стоимостью, что в сочетании с недешевой памятью DDR3 и самим CPU Core i7 поднимает и без того немалую конечную стоимость системы. Это автоматически ограничивает сферу возможного распространения i7 компьютерами энтузиастов |