NVIDIA Kal-El (Tegra 3)

первый взгляд на новую систему на чипе


Содержание

Введение

В предыдущей статье мы подробно рассмотрели популярную у производителей мобильных устройств систему на чипе NVIDIA Tegra 2. А сегодня у нас на повестке дня — довольно подробная, но предварительная информация о следующем решении компании, под кодовым названием Project Kal-El. В прошлой статье мы упоминали об этом решении, но недавно NVIDIA раскрыла некоторые подробности об устройстве чипа. Для начала давайте рассмотрим планы компании по выпуску SoC в целом.

Недавно ставшие известными планы NVIDIA по выпуску систем на чипе на ближайший период до конца 2012 года открыли кодовые имена нескольких новых решений. Помимо Kal-El в планах компании присутствует улучшенная версия Kal-El+ (вероятнее всего, это ускоренный Kal-El, возможно, изготовленный уже при помощи техпроцесса 28 нм), Wayne (последователь Kal-El, следующее поколение), а также система на чипе Grey, предназначенная для менее мощных систем.

Появление Kal-El+ в планах компании вполне ожидаемо и никого не удивило. Ведь это довольно простое и логичное решение — увеличить тактовую частоту чипа, а может сразу и перевести производимый по техпроцессу 40 нм чип на технологию 28 нм, получив преимущество в энергоэффективности и возможности работы на большей частоте. Тем более что после выхода версии Tegra 2 с частотой 1,2 ГГц стало понятно, что NVIDIA планирует выпуск новых SoC каждые полгода.

Ускоренная Tegra 2 для топовых мобильных устройств станет менее привлекательной, ведь теперь вместо Tegra 2 с 1.2 ГГц частотой можно сразу начать выпуск планшетов, использующих гораздо более мощную систему Kal-El. С другой стороны, выход Kal-El уже был отодвинут на несколько месяцев: NVIDIA ожидала появления первых планшетов с Kal-El в августе, но на деле они выйдут не раньше последнего квартала. И вполне возможно, что и вариант Tegra 2 на 1,2 ГГц успеет получить распространение в конечных продуктах. Да и для планшетов и смартфонов среднего ценового диапазона этот SoC вполне могут продолжать выпускать.

Что касается будущих решений, то Kal-El+ выглядит естественным апгрейдом «обычного» Kal-El. А потенциально возможное применение техпроцесса 28 нм позволит поднять частоты этого SoC от 1+ ГГц до 2+ ГГц, дав возможность конкурировать с аналогичными SoC компаний Qualcomm, Texas Instruments, Samsung и др. К слову, судя по словам главы компании, сама NVIDIA считает своим основным конкурентом именно Qualcomm.

Wayne появится лишь в 2013 году, и это, по всей вероятности, будет система на чипе, использующая вычислительные ядра Cortex A15, а также совершенно новое графическое ядро, в отличие от трёх предыдущих поколений Tegra, использующих одну и ту же графическую архитектуру. Похоже, что именно Wayne сможет сделать следующий значительный скачок в производительности, так как ядра Cortex A15 даже при прочих равных быстрее на 40-100%, чем Cortex A9 (по оценкам компании ARM). Поэтому SoC на Cortex A15, работающий на частотах порядка 2-2,5 ГГц, будет в разы быстрее пока ещё не вышедшего Kal-El.

Судя по утекшей странице из презентации NVIDIA, система на чипе Grey будет предназначена исключительно для смартфонов, а не для планшетов, что может говорить о том, что это — менее мощное решение, нацеленное на средний ценовой диапазон. Так что Grey будет менее производительной системой, но и значительно менее дорогой. Также важно, что Grey уже будет включать в себя и радиочасть — в виде наработок компании Icera, поглощённой NVIDIA. Более мощные решения, такие как Wayne, продолжат использовать отдельный чип модема, а Grey станет чипом с более высокой степенью интеграции, что особенно важно для недорогих смартфонов.

Предоставление системы на чипе вместе с 2G/3G/LTE модемом позволит сократить время выхода конечных продуктов на рынок. Кроме того, отличительными особенностями именно модемов Icera являются малый размер и энергопотребление, а также возможность внедрения поддержки новых стандартов связи на программном уровне, обновлением прошивки. Российским пользователям будет интересно узнать, что модемы Icera используются в распространённых мобильных модемах и беспроводных устройствах, таких как модемы, выпускаемые под брендами компаний-операторов МТС и Beeline.

После вышеперечисленных SoC от NVIDIA можно ожидать по-настоящему интересного решения — собственной разработки под кодовым именем Project Denver. Важнейшим изменением в Project Denver будет то, что NVIDIA планирует использовать вычислительные ARM-ядра своего дизайна, а не модифицированные изделия компании ARM. Этот чип будет иметь уже значительно большее количество вычислительных ядер, и нацелен на применение в серверах, высокопроизводительных настольных и мобильных системах. Конечно, такой чип уже не будет иметь столь низкое потребление энергии, как Tegra 2 и Kal-El, да и сам чип явно станет больше. Но всё же его потребление должно остаться меньшим, по сравнению со схожими по производительности x86-процессорами.

Внимание компании к мощным мобильным системам понятно, ведь Intel и AMD постепенно вытесняют NVIDIA с рынка ноутбуков и настольных ПК, выпуская всё более мощные интегрированные решения с архитектурой x86, которые становятся вполне достаточными для всё большего количества пользователей. Поэтому NVIDIA не остаётся ничего делать, как пытаться входить на рынок с другой стороны, планируя выпуск мощных систем на базе архитектуры ARM. И это правильный шаг, ведь почти все современные портативные устройства используют именно эту архитектуру, которая вполне может перейти и в более мощные системы.

И сегодня мы поговорим о ближайшей системе на чипе от компании NVIDIA — Kal-El. Первые планшеты и нетбуки, основанные на этой SoC, должны выйти через несколько месяцев, поэтому очень интересно разобраться, какие они будут иметь преимущества и что́ дадут пользователям, по сравнению с нынешними мобильными устройствами.

Основные нововведения в Kal-El

Мы уже много писали о том, что многоядерные CPU (да и системы на чипе) последовательно пробивали себе дорогу на рынке. Сначала многоядерные процессоры применялись в серверных системах, потом перешли и в настольные и мобильные. Основной плюс многоядерных систем, по сравнению с одноядерными той же производительности, заключается в большей энергоэффективности первых. Многоядерникам достаточно работать на меньшей частоте, потребляя меньше энергии, и при этом — в хорошо распараллеленных задачах они ещё и имеют лучшую производительность.

Довольно успешная на рынке система на чипе Tegra 2 уже имеет два вычислительных ядра, и совершенно неудивительно, что тенденция продолжается и в проекте Kal-El. Скорее всего, рост количества ядер уже не остановить, и почти каждое поколение будет приносить большее их количество. NVIDIA анонсировала проект Kal-El ещё в феврале этого года, и эта система на чипе стала первой продемонстрированной в работе мобильной системой, использующей четыре ядра. С тех пор раскрыли свои планы на четырёхъядерники и конкуренты NVIDIA, такие как Qualcomm и Texas Instruments.

NVIDIA выдавала информацию о Kal-El небольшими порциями. В начале года мы узнали, что эта система на чипе будет использовать четыре вычислительных ядра Cortex A9 с 1 МБ общей кэш-памяти второго уровня. А про графическое ядро Kal-El стало лишь известно, что оно будет состоять из 12 «ядер» (как они названы в маркетинговых материалах NVIDIA), по сравнению с восемью «ядрами» Tegra 2. И что это, вместе с архитектурными улучшениями и возросшей частотой, должно дать прирост производительности до 2-3 раз. Кстати, о тактовых частотах Kal-El пока известно лишь то, что цель NVIDIA — превзойти частоту Tegra 2. Но вряд ли получится превзойти её намного, так что будем ожидать частот порядка 1,2-1,3 ГГц.

Но мы пока говорим не о конкретных параметрах конечного решения, а о его архитектуре. Можно было бы подумать, что в Kal-El будет четыре процессорных ядра, как и ожидалось, но NVIDIA решила сделать необычный ход, представив в Kal-El новую технологию, получившую название Variable Symmetric Multiprocessing (vSMP). Конечно, это скорее маркетинговое название, но не без интереснейшего технического решения. В случае Kal-El технология vSMP подразумевает включение в состав системы на чипе вспомогательного пятого CPU-ядра («Companion»), отличающегося низким потреблением энергии и предназначенного для фоновых и нетребовательных к производительности задач.

Четыре основных ядра работают на значительно большей частоте и включаются в работу в случае запуска задач, требующих большой вычислительной мощи. Все пять процессорных ядер — абсолютно одинаковые ARM Cortex A9, с поддержкой набора инструкций NEON, и все они могут динамически отключаться в зависимости от загрузки процессора работой.

Архитектура Kal-El оптимизирована именно для наиболее распространённых сценариев использования мобильных устройств — бо́льшую часть времени (порядка 80%) они проводят в режиме пониженного энергопотребления (standby) с отключенным экраном и приложениями, запущенными в фоновом режиме. И лишь оставшиеся 20% времени, а то и меньше, на мобильных устройствах запущены требовательные приложения. В режиме standby процессор обычно обрабатывает фоновые задачи, не требующие высокой производительности и взаимодействия с пользователем, зато при активной работе в веб-браузере, мультимедийных приложениях и играх, при проверке электронной почты и пр. устройство должно быть в режиме высокой производительности, требующей функционирования нескольких ядер CPU на максимальных частотах.

Но ведь и в фоновом режиме на современных коммуникаторах и планшетах зачастую работает множество приложений — проверяется почта, работают виджеты, происходит синхронизация данных социальных сетей и т. п. Для этих задач вполне достаточно и ресурсов лишь одного ядра CPU, да ещё и работающего на низкой частоте. Просто потому, что скорость при обработке фоновых задач не так важна, как при взаимодействии с пользователем. А работа вычислительных ядер на низких частотах в режиме standby позволяет увеличить время работы устройства от батареи.

Итак, в системе на чипе Kal-El впервые применили «переменную симметричную мультипроцессорность» (vSMP — Variable Symmetric Multiprocessing). Эта технология помогает уменьшить потребление энергии в режиме простоя и низкой вычислительной нагрузки, но при этом одновременно обеспечивает и мощь четырёх ядер Cortex A9. Вспомогательное ядро Cortex A9 специально оптимизировано для минимизации потребления в простое и в режимах с фоновыми приложениями. Технология vSMP распределяет задачи между основными ядрами и вспомогательным ядром системы на чипе Kal-El.

Для чего NVIDIA вообще понадобилось «городить огород» с пятым колесом ядром? Не проще ли было просто отключать три из четырёх основных ядер, вместе с этим снижая частоту и напряжение? Ответ на этот вопрос довольно прост, но его понимание требует определённых знаний о современных полупроводниковых технологических процессах, о которых мы сейчас вкратце и побеседуем.

Потребление энергии любым чипом зависит от технологического процесса полупроводникового производства, который применялся при его создании; для его определения складываются токи утечек и динамическое потребление энергии. Токи утечек определяются в основном применённым техпроцессом, а динамическое потребление — техпроцессом, а также напряжением питания и частотой чипа. Динамическое потребление полупроводникового устройства пропорционально его тактовой частоте и квадрату напряжения, на котором он работает. При работе чипа на частотах, близких к пиковым, общее потребление в основном зависит от динамического, а токи утечек сказываются не слишком сильно. А вот в режиме простоя или небольшой нагрузки, наоборот, значительный вклад в общее потребление вносят утечки.

Современные производства предлагают несколько вариантов технологических процессов. При использовании «быстрых» техпроцессов транзисторы имеют высокие токи утечек, но при этом имеют быстрое время переключения при нормальном напряжении. То есть они способны работать на более высокой частоте при сравнительно низком напряжении. Транзисторы же техпроцессов низкого потребления (low power) имеют малые токи утечек, но время переключения при нормальном напряжении у них выше, и для работы на более высокой тактовой частоте они потребуют значительного поднятия их напряжения. Поэтому чипы, использующие такие техпроцессы, потребляют мало энергии при низкой частоте и много — при высокой. Наглядно это можно увидеть на графике (CPU A — «быстрый» техпроцесс, CPU B — для малого потребления):

Упрощённо можно сказать так: быстрый техпроцесс лучше оптимизирован для работы на высоких тактовых частотах, а техпроцесс малого потребления — на низких частотах. И для того, чтобы «убить двух зайцев сразу», компания NVIDIA при помощи тайваньского производителя полупроводников TSMC воплотила в системе на чипе Kal-El достоинства обоих техпроцессов, получив и низкое энергопотребление и высокую производительность одновременно, скомбинировав два разных типа транзисторов в одном чипе.

Большинство полупроводниковых фабрик предлагают минимум два варианта для каждого из техпроцессов: общего назначения (G — general purpose) и низкого потребления (LP — low power). Их возможности примерно одинаковые, но поведение транзисторов немного отличается, как было описано выше. Чипы, произведённые по техпроцессу 40 нм «LP» на фабриках TSMC используют пониженное напряжение, не могут работать на высокой частоте и имеют низкие токи утечек. Чипы, использующие техпроцесс 40 нм «G», имеют иные характеристики — могут работать на высокой частоте, но утечки у них больше.

Для мобильных систем на чипе совершенно не обязательно, чтобы весь чип работал на высокой частоте, а вот его потребление и низкие утечки весьма важны. Для подобных целей TSMC предлагает ещё один вариант — техпроцесс LPG (low-power triple gate oxide), позволяющий сочетать на одном кристалле транзисторы с разными характеристиками.

Этот специализированный техпроцесс LPG был разработан в TSMC специально для требовательных к производительности мобильных применений. Данный технологический процесс предлагает комбинацию транзисторов общего назначения «G» и транзисторов низкого потребления «LP» на одном ядре. То есть в основном используются «LP»-транзисторы, но часть кристалла может состоять из быстрых «G»-транзисторов.

В NVIDIA Tegra 2 уже использовался подобный подход со «смешанным» техпроцессом, позволяющим размещать и «G»-, и «LP»-транзисторы на одном кристалле, но подключать их к разным цепям питания. Быстрые два ядра Cortex A9 и кэш-память второго уровня в Tegra 2 используют «быстрые» транзисторы типа «G», а остальная часть SoC, включая и графическое ядро, состоит из «LP»-транзисторов.

В Kal-El разработчики из NVIDIA пошли ещё дальше — теперь «LP»-транзисторы использует не только вся «обвязка», но и вспомогательное ARM-ядро, имеющее ровно те же возможности, что и основные ядра Cortex A9. Использование «LP»-транзисторов позволило снизить потребление энергии для этого ядра при работе на низких частотах по сравнению с главными ядрами CPU, основанными на «G»-транзисторах.

Проведённые в NVIDIA измерения энергоэффективности ядер Kal-El показали, что вспомогательное ядро обеспечивает лучшую, по сравнению с основными ядрами, эффективность при работе на частотах до 500 МГц. Так как вспомогательное ядро используется только в режимах простоя и исполнения фоновых задач, то его частоту ограничили именно этим значением, вполне достаточным для подобного применения.

Вспомогательное ядро Kal-El работает и в случае нетребовательных к вычислительной мощи CPU приложений, таких как запись и проигрывание аудио- и видеоданных — ведь их кодированием и декодированием занимаются специализированные блоки, входящие в состав SoC. А основные ядра SoC более эффективны при работе на высокой частоте. Поэтому в Kal-El используется комбинация высокопроизводительных основных ядер и оптимизированного для малого потребления энергии вспомогательного. Помните графики с процессорами «LP» и «G»? Совмещение их на одном и даёт понимание того, как работают ядра в Kal-El.

Представленная NVIDIA технология vSMP позволяет с успехом объединять плюсы малопотребляющего ядра CPU B и высокопроизводительных ядер CPU A, показанных на графике ранее. Когда выгоднее использовать вспомогательное ядро, то используется именно оно, а при повышении нагрузки включаются более производительные ядра. И в итоге мы получаем схему почти идеальной (пока что лишь теоретически) кривой показателя энергоэффективности системы на чипе Kal-El.

Со временем распараллеленных приложений должно стать больше, практически все задачи по обработке медиаданных могут быть переложены на несколько потоков. А уж многозадачность так и вообще всегда использует несколько ядер CPU, при условии использования современной операционной системы. В мобильных устройствах часто одновременно запущено несколько задач, в том числе и фоновых, и на одном ядре им всем иногда просто «тесно». И в таких условиях одноядерные SoC снова работают неэффективно, так как им приходится задирать частоту и напряжение до максимальных значений. А два или четыре ядра справятся с такой работой намного легче.

Четыре полноценных ядра против двух в Tegra 2 должны сильно помочь в игровых приложениях, особенно перенесённых с «больших» консолей или ПК, а также в мультиплатформенных проектах. Ведь старшие игровые платформы — все многоядерные, и их код обязательно распараллеливается для достижения высокой эффективности. Большинство современных игр на известных движках вроде Unreal, Id Tech 5 или Frostbite используют многопоточность. Отдельные потоки выполняют задачи обработки аудиоданных, определения столкновений объектов (collision detection), искусственного интеллекта, обработки данных от пользователя, сетевой код и т. п.

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

Но эти эффекты очень требовательны к вычислительным мощностям, для них нужно большое количество распараллеленных вычислений в реальном времени. И увеличение количества CPU-ядер в мобильных системах на чипе может дать явное увеличение сложности подобных эффектов. Процессор Kal-El позволяет считать на своих четырёх ядрах сразу несколько задач одновременно: динамическое освещение, физические эффекты, искусственный интеллект и т. д. При этом загрузка вычислительных ядер не максимальна, и ресурсов хватает и на фоновые задачи, вроде проверки почты, синхронизации и т. д.

Работа vSMP в операционной системе

Можно похвалить NVIDIA за нетрадиционный подход и интересное решение. Но как вспомогательное ядро работает в операционной системе, если та не рассчитывалась на такое хитрое применение? Android 3.x имеет поддержку многопроцессорных систем и вполне может использовать несколько вычислительных ядер, но поддержка эта сделана так, что все ядра должны обладать одинаковыми возможностями и производительностью. Android распределяет задачи по ядрам CPU, исходя из предположения об их одинаковости.

Поэтому для Kal-El пришлось сделать так, что вспомогательное ядро Cortex A9 «прозрачно» для операционной системы. Оно попросту недоступно для операционной системы и пользовательских приложений, а выполнение задач переключается между ядрами автоматически, при помощи специальных аппаратных и программных решений.

Специальная логика в Kal-El постоянно отслеживает загрузку CPU ядер, она способна автоматически и динамически включать и выключать вспомогательное ядро и основные CPU ядра. Решение о включении или выключении ядер принимается на основе текущей нагрузки и рекомендаций по тактовой частоте CPU от специализированной подсистемы, встроенной в ядро ОС.

Данная технология хороша ещё и потому, что она не требует каких-либо изменений в системе или специальной оптимизации приложений. Такой подход позволяет значительно упростить жизнь разработчикам приложений, но предъявляет довольно высокие требования к разработчикам самой Kal-El — такое переключение должно работать быстро, чётко и без проблем с совместимостью. Будем надеяться, что так оно и будет, а сейчас чуть подробнее рассмотрим, как работают вычислительные ядра в разных сценариях.

Когда вспомогательное ядро отключено и система использует основные ядра для вычислений, управляющая логика отслеживает загрузку каждого ядра CPU, динамически включая или выключая от одного до четырёх основных ядер. Как только потребление вычислительных ресурсов вспомогательного ядра превышает определённое значение, оно отключается, а его состояние пересылается к одному из основных ядер системы. Остальные пока не включаются, но если загрузка и первого основного ядра переходит через определённый предел, то включается следующее, и так далее. То же самое происходит и с отключением ядер — оно полностью динамическое.

Например, в случае простых приложений, вроде клиента электронной почты, SMS-клиента или просмотра несложных веб-страниц, системе потребуются мощности лишь одного из четырёх ядер Kal-El. В случае более требовательных приложений, типа многозадачной среды, просмотре «тяжёлых» страниц с Flash-анимацией, управляющая логика CPU может включить два основных ядра. Ну и для самых сложных случаев, вроде современных трёхмерных игр, перенесённых с настольных консолей, а также при обработке потоковых данных, в работу включатся все четыре ядра этой системы на чипе.

В случае системы Kal-El возможно полное отключение любого из вычислительных ядер в режиме простоя, а не только снижение частоты и напряжения, как было у предыдущего поколения — Tegra 2. Полностью отключенное ядро почти совсем не потребляет энергии, да и токи утечек весьма малы. Предыдущая система на чипе компании не могла отключать ядра по-отдельности, поэтому весьма вероятно, что во многих задачах Kal-El действительно будет потреблять меньше энергии, чем Tegra 2.

Технические решения и преимущества технологии vSMP

При проектировании чипа с архитектурой vSMP инженерам компании NVIDIA пришлось решить несколько непростых задач. Ведь сразу возникает вопрос — а как быстро переключаются ядра между главными и вспомогательным? Нет ли нежелательной задержки при этом, не замедляются ли приложения и не появляются ли неприятные лаги?

NVIDIA утверждает, что они решили вопрос скорости переключения между ядрами при помощи специальной логики, встроенной в Kal-El. В результате, полное время этого действия, включающее время переключения ядер и время стабилизации напряжения для включаемого ядра, по замерам NVIDIA не превышает 2 миллисекунды, что не должно быть заметно для пользователя.

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

Вообще, технология vSMP неплохо выглядит, по крайней мере теоретически. Её единственным явным недостатком можно считать дополнительные затраты транзисторного бюджета (а вместе с этим и усложнение чипа) на то, что работает далеко не всегда. Но лишнее ARM ядро вряд ли заняло много места на кристалле, по сравнению со всем остальным, так что этим доводом против вполне можно пренебречь, перейдя к рассмотрению преимуществ.

И раз пока до практики дело не доходит, давайте попробуем рассмотреть чисто архитектурные преимущества данного решения перед подобными. К примеру, такими, как асинхронная частота ядер в системе, что применяется конкурентами NVIDIA. Например, двухъядерные системы Snapdragon от Qualcomm являются одними из лучших систем на чипе на рынке. Эта компания использует «LP» техпроцесс и асинхронную тактовую частоту для вычислительных ядер. Неким аналогом этого решения можно считать технологии настольных x86-процессоров вроде Intel Turbo Boost, когда каждое из ядер постоянно работает на своей частоте.

Но у такого подхода есть свои недостатки. Во-первых, это дополнительные расходы на синхронизацию кэшей между ядрами, работающими на разной частоте. А вот vSMP не позволяет вспомогательному и основным ядрам работать одновременно (и на разной частоте). Все пять ядер используют общую кэш-память, данные из которой возвращаются вычислительным ядрам с одинаковыми задержками (речь именно о времени, так как у главных и вспомогательного ядер на это затрачивается разное количество циклов).

Кроме того, NVIDIA заявляет, что у их решения выше эффективность, так как операционная система Android подразумевает, что все ядра одинаковы и работают на одной частоте. И если несколько ядер CPU работают на разных частотах, то они имеют разную производительность в данный момент времени. Что может вызвать неэффективное распределение вычислительных потоков по ядрам системы. С нынешними невысокими нагрузками это не очень большая проблема, но что будет при дальнейшем развитии многозадачности на коммуникаторах и планшетах? В случае чипов NVIDIA (это касается и Kal-El и Tegra 2) все активные ядра всегда имеют одну и ту же синхронизированную частоту.

Ещё один недостаток конкурирующих SoC заключается в том, что изготовление кристаллов по техпроцессу низкого потребления («LP») обходится производителю дороже, да и выход годных чипов, работающих на высокой частоте, не так велик. Хотя, сравнить эти показатели адекватно не получится, так как их никто никогда не раскрывает.

В общем, теоретически оригинальное решение NVIDIA выглядит неплохо, но как оценить эту эффективность распределения потоков по ядрам на практике — непонятно. Зато в случае с асинхронной частотой ядер можно управлять их потреблением гораздо более гибко. Но NVIDIA утверждает, что и тут они впереди. Каждое ядро при асинхронной работе требует отдельную цепь питания, чтобы регулировать подаваемое напряжение для каждого ядра отдельно. Что может вызвать ухудшение качества питания и отрицательно повлиять на производительность. И так как каждая линия питания требует своего набора регуляторов напряжения, то такие архитектуры хуже масштабируются, а также требуют больше вспомогательных элементов в электронном устройстве. А если линия питания одна, но все ядра всегда работают при одинаковом напряжении, то такой подход не даёт возможного увеличения энергоэффективности, ведь потребление зависит от больше от напряжения, чем от частоты.

Достоверно пока трудно сказать, правы ли инженеры NVIDIA в своих решениях, это можно будет оценить только практически сравнив различные варианты мобильных систем по производительности и потреблению энергии. Но из теории следует, что vSMP не имеет накладных расходов по синхронизации кэш-памяти и более эффективно распределяет задачи по ядрам, что должно означать большую производительность решения, по сравнению с конкурирующими SoC с асинхронной частотой.

Улучшение энергоэффективности

Как мы описали выше, технология vSMP даёт возможность значительной экономии энергии, но пока что мы об этом знаем лишь теоретически. В зависимости от сценариев использования мобильного устройства на базе Kal-El, технология vSMP динамически включает и выключает ядра CPU, чтобы достичь требуемой производительности при низком среднем уровне потребления энергии. NVIDIA даёт следующие цифры, сравнивая решения на базе Kal-El и Tegra 2, изготовленные по техпроцессу 40 нм:

Даже если не учитывать небольшую маркетинговую хитрость в виде начала координат не от 0%, а от 20%, можно уверенно сказать, что новый SoC от NVIDIA получился лучше предыдущего. Как видите, Kal-El во всех случаях обеспечивает меньшее энергопотребление, имея минимум вдвое большую пиковую производительность. LP0 — это режим минимально возможного потребления энергии, и улучшение энергоэффективности в нём явно связано с работой вспомогательного ядра. Да и в других актуальных режимах (особенно с проигрыванием видео и игровым приложением) новое решение явно лучше старого.

Но даже если не брать в расчёт улучшенную эффективность из-за применения архитектуры vSMP, то Kal-El должен потреблять меньше предыдущей системы на чипе. Ведь большее количество ядер способно выполнить ту же работу, что и меньшее, но со сниженным потреблением энергии. Причина этого в том, что четыре ядра будут работать при этом на более низкой частоте и напряжении. А так как потребление пропорционально частоте и квадрату напряжения, то общее потребление чипа при совершении той же работы будет меньше.

В качестве практического доказательства этого тезиса NVIDIA приводит цифры замеренного в их лабораториях энергопотребления и производительности для Kal-El и нескольких двухъядерных решений от конкурентов в тесте Coremark. Цифры потребления только ядрами CPU при этом получались при помощи вычитания потребления энергии в режиме простоя из цифры общего потребления, замеренного при выполнении теста.

Судя по этой таблице, система Kal-El способна выполнять ту же работу, что и её двухъядерные аналоги при вдвое-втрое меньшем энергопотреблении при работе на сниженной до 480 МГц частоте. Будучи же запущенной на частоте 1 ГГц, система NVIDIA обеспечивает вдвое большую производительность и при этом всё равно потребляет чуть меньше энергии, по сравнению с конкурентами.

Так получается именно потому, что Kal-El использует «быстрые» «G»-транзисторы для основных вычислительных ядер, оптимизированных в основном для получения высокой производительности, и эти ядра способны работать на высокой частоте под меньшим напряжением питания, по сравнению с конкурентами, вынужденными оптимизировать одни и те же ядра и для высокой производительности и для пониженного энергопотребления. Вот эти же цифры, только в более удобном графическом виде:



Вроде бы всё очень неплохо у новой SoC от NVIDIA с производительностью, но всё же хотелось бы практических измерений и в нашей лаборатории. А то ведь и частота Kal-El ещё явно не финальная, да и у конкурентов уже вышли более производительные модели систем на чипе, пусть пока только двухъядерные, но с частотой 1,5 ГГц. Плюс — это всё-таки лишь хорошо распараллеленный бенчмарк, а не практические задачи, которые не всегда так хорошо используют многоядерные возможности систем.

Производительность вычислительных ядер

Итак, по данным NVIDIA, их система на чипе Kal-El потребляет энергии меньше, чем двухъядерные и одноядерные решения. Одна из ошибок пользователей в том, что они думают, что многоядерник нуждается в большей энергии, чем одноядерное или двухъядерное решение. Так и есть в случае постоянной работы на максимальных частотах. Но, благодаря внедрению «переменной симметричной мультипроцессорности» (vSMP), пять ядер Kal-El более эффективны и дают большую производительность при меньшем или равном потреблении с одно- и двухъядерными системами.

Ведь для выполнения одной и той же задачи одноядерная система должна будет работать на значительно более высокой частоте при большем напряжении, да ещё и может потребовать больше рабочего времени на её выполнение. А многоядерная система распределит задачи на имеющиеся ядра, и каждое из них будет работать на меньшей частоте и требовать меньшего напряжения. Поэтому эти ядра будут потреблять значительно меньше энергии и будут эффективнее одноядерных.

При этом мобильные устройства на базе многоядерных систем на чипе способны использовать все имеющиеся возможности даже в таких задачах, как интернет-браузеры. Современные браузеры распараллеливают вычисления на имеющееся количество процессорных ядер, что делает работу в них более комфортной. В качестве примера NVIDIA приводит браузер с несколькими одновременно открытыми страницами.

Как видите, все ядра CPU в этой задаче заняты полезной работой. На многоядерных чипах операционная система распределяет вычисления на ядра так, что обеспечивает намного большую скорость загрузки и исполнения тяжёлых веб-страниц со скриптами. В известном тесте производительности скриптов Moonbat четыре ядра дают почти 50% дополнительной скорости, по сравнению с двухъядерным процессором.

Ещё больший прирост скорости многоядерные системы обеспечивают в таких требовательных приложениях, как обработка фотографий и видеоданных, перекодирование видео, сжатие данных и др. Немаловажной для мобильных систем является и высокая производительность в играх, которые становятся всё ближе к настольным версиям. Оценить производительность вычислений нового Kal-El компания NVIDIA предлагает по результатам популярного мобильного теста Coremark.

В сравнении участвовали: система на чипе Apple A5, известная по iPad 2, а также двухъядерные Texas Instruments OMAP4430, работающий на частоте 1 ГГц и Qualcomm MSM8660, работающий при частоте 1,2 ГГц. Четырёхъядерник Kal-El в этом сравнении имеет частоту 1 ГГц.

Относительные показатели Coremark (конкретные цифры смотрите в предыдущем разделе статьи) показывают, что четыре ядра Kal-El обеспечивают вдвое большую скорость вычислений, по сравнению с распространёнными двухъядерными системами на чипе. Соответственно, это примерно вчетверо выше скорости аналогичных одноядерных CPU. Надо упомянуть, что у TI и Qualcomm уже готовы и более производительные системы на чипе, работающие на 1,5 ГГц, что может изменить общую картину. Хотя и частота Kal-El пока доподлинно не известна.

Ещё более популярный тест производительности — это Linpack, который очень часто используется при сравнении процессоров разных архитектур и даёт представление о производительности CPU в требовательных задачах, вроде обработки потоковых данных. В случае мобильных решений сравнивается скорость в специальной Android-версии бенчмарка.

В этом сравнении NVIDIA дала только две цифры, причём сравниваются два и четыре ядра одного Kal-El, в первом случае ядра отключены и не работают. В результате, четырёхъядерник оказался на 55% быстрее своего двухъядерного аналога. Для реальных приложений это был бы неплохой результат, но для бенчмарка, который довольно хорошо масштабируется по количеству вычислительных ядер, мы считаем прирост в 55% довольно скромным.

Возможно, причины его — в несовершенстве Android-версии Linpack, которую можно скачать из Market, а может быть дело в архитектуре самой системы Tegra. Не секрет, что Linpack требователен не только к вычислительной мощности, но нуждается ещё и в пропускной способности памяти. А Kal-El, как и Tegra 2, имеет лишь один 32-битный канал памяти, работающий с памятью типа LPDDR2 или DDR3.

Хотя Kal-El поддерживает более высокую рабочую частоту для оперативной памяти, но ширина шины в этой системе не выросла, к сожалению. А ведь за полосу пропускания теперь будут бороться в два раза большее количество процессорных ядер и в 1,5 раза большее количество потоковых процессоров графического ядра. Так что вполне возможно, что именно это узкое место и ограничивает производительность Kal-El в некоторых задачах. Отметим, что некоторые конкуренты имеют поддержку двухканальной памяти уже сейчас.

Графическое ядро GeForce

К сожалению, NVIDIA пока что не слишком подробно рассказывает о модификациях графического ядра в Kal-El, и раскроет карты ближе к выходу конечных решений. Но мы всё же смогли узнать некоторую информацию об устройстве графического ядра нового чипа из своих источников. На самом деле, GPU в новой системе на чипе не слишком сильно отличается от графического ядра той же Tegra 2. Которое, к слову, аналогично применённому и в первой системе Tegra.

Из ранних утечек информации известно, что Kal-El имеет графическую часть с 12 «ядрами», как их назвали маркетинговые специалисты компании NVIDIA. И по оценке инженеров графика Kal-El быстрее видеоядра Tegra 2 примерно в 2-3 раза. Раз уж подробностей нам пока не раскрывают, попробуем разобраться сами.

В составе системы на чипе Tegra 2 есть два VEC4 блока, исполняющих по четыре команды за такт: по одному такому блоку на операции над вершинами и пикселями. То есть, говоря маркетинговым языком, всего в том чипе 8 «ядер». При этом к одному пиксельному VEC4 блоку «привязан» и один текстурный блок (TMU). Что же изменилось в Kal-El?

Нам стало известно, что в новый SoC включили уже три блока VEC4, аналогичных применённым в Tegra 2, но с некими архитектурными изменениями, вроде улучшений в алгоритмах отсечения невидимых фрагментов и увеличенных кэшей, а возможно и увеличенным количеством регистров. Теперь в Kal-El один VEC4 блок, обрабатывающий вершины (собственно, пока больше и не нужно), но уже два блока, работающих с пикселями. Всего — 12 графических «ядер».

И так как блоки TMU «привязаны» к ALU, то в следующей Tegra будет вдвое больше блоков TMU — то есть, два таких блока, а не один. Важнее то, что инженеры NVIDIA смогли значительно повысить частоты графического ядра, по сравнению с Tegra 2. Поэтому в тяжёлых приложениях с нагрузкой на попиксельные вычисления, можно действительно ожидать прироста производительности порядка 2,5-3 раз.

Теоретически, скорость текстурирования и затенения в Kal-El должна стать примерно на уровне лучших нынешних графических ядер в составе SoC. Тут необходимо сделать небольшое отступление о разнице между традиционными графическими архитектурами (GPU в Tegra) и тайловыми архитектурами (GPU остальных производителей современных систем на чипе). Тайловые архитектуры обладают лучшими показателями по эффективности, это касается и текстурирования и закраски (филлрейта). Они по своей природе меньше зависят от пропускной способности памяти и реже упираются в неё.

Но у тайловых архитектур есть и важный недостаток — необходимость посылать геометрию в параметрический буфер после вершинного шейдера. Поэтому установка геометрии (triangle setup) работает значительно медленнее на тайловых GPU, по сравнению с традиционными. То есть, тайловые GPU имеют меньшую эффективность в расчёте геометрически сложных сцен, и чем больше геометрии — тем хуже будет с ней справляться тайловая архитектура. Так было и с настольными GPU во времена KYRO от PowerVR. И так как модификации той архитектуры пришли в мобильные графические ядра, то вполне очевидно, что это повторится и в случае мобильных GPU.

Можно предположить, что Kal-El будет работать эффективнее в случае сложных портов с настольных консолей, а уж NVIDIA сможет сделать так, чтобы эти порты были. Собственно, они уже начинают, достаточно вспомнить показанную на тестовом образце с Kal-El игру Lost Planet 2. Программная поддержка у NVIDIA всегда была в числе сильных сторон, и дело даже не столько в драйверах, сколько в прочных связях с разработчиками программного обеспечения. Одна инициатива Tegra Zone и входящие в неё эксклюзивные для NVIDIA Tegra игры чего стоят. Немудрено, что компания постоянно усиливает это направление — именно этим они выгодно отличаются от любого другого производителя систем на чипе.

Но давайте уже поговорим о производительности. Графическое ядро Kal-El с удвоенным числом текстурных блоков и блоков пиксельной обработки, работающих на более высоких частотах, а также архитектурные изменения — всё это в сумме даёт заявленный прирост в 2,5-3 раза. Причём, наибольшие приросты должны наблюдаться в современных играх с упором производительности в скорость пиксельных вычислений. И хотя NVIDIA не желает открывать полные данные об архитектуре GPU в Kal-El, некоторые данные о скорости в 3D они публике всё же дали:

Пока что нам показали лишь сравнительную производительность между двухъядерной Tegra 2 и четырёхъядерным Kal-El, без сравнения с конкурентами. Но с учётом того, что в играх скорость обычно сильнее зависит от мощности GPU, мы можем примерно представить себе прирост мощности графического ядра в Kal-El.

Для демонстрации графической мощи Kal-El были выбраны три приложения, которые NVIDIA показывала публике ранее. Демо-программа Glowball с физическими эффектами, скорее всего, сильно зависит от скорости CPU, а вот остальные два приложения говорят о том, что графическое ядро в новом SoC примерно вдвое быстрее, чем у предыдущего мобильного чипа компании — Tegra 2. Неплохой показатель, хотя и не достигающий заявленных трёх раз, но всё же выводящий это решение на уровень лучших конкурентов.

Мы видим, что ранние тесты, проведённые самой NVIDIA, подтверждают наши теоретические выводы. В «тяжёлых» графических задачах новый SoC более чем вдвое быстрее предыдущего. Kal-El должен позволить NVIDIA соперничать с другими системами на чипе, которые ранее обошли Tegra 2 по графической производительности. Ведь видеоядро Tegra 2 не может конкурировать на равных с тем же PowerVR SGX543MP2, который входит в состав чипа Apple A5, на котором основан популярнейший планшет iPad 2. А следующее поколение систем Tegra должно как минимум восстановить паритет, судя по представленным цифрам.

Другое дело, что конкуренты тоже не сидят, сложа руки. Выходящая в конце текущего года портативная консоль Sony PlayStation Vita будет основана на SoC, имеющем в своём составе мощнейший «четырёхъядерный» видеочип PowerVR SGX543MP4, который примерно вдвое мощнее своего двухъядерного аналога. Вполне вероятно, что и следующая версия Apple iPad также будет иметь намного более мощную графику от Imagination Technologies. Поэтому лёгкой прогулки для NVIDIA с их системой Kal-El явно не будет. С другой стороны, мы уже писали выше о том, что на смену Kal-El придёт Kal-El+, а потом и Wayne, графическое ядро которого должно получить намного более мощное графическое ядро новой мобильной архитектуры.

Выводы

Похоже, что у компании NVIDIA снова получится первой выпустить на рынок мощное четырёхъядерное решение для мобильных систем, как они сделали это ранее с двухъядерной системой на чипе Tegra 2. Но система Kal-El весьма интересна не столько просто своей мощью, сколько оригинальнейшим решением в виде дополнительного вспомогательного CPU ядра.

С ростом требований мобильных приложений к производительности систем на чипе, на которых основаны компактные решения, производители SoC не просто стараются использовать многоядерные решения, но и пытаются удержать потребление ими энергии в рамках, обычных для планшетов, нетбуков и даже коммуникаторов. Представленная в Kal-El технология vSMP должна улучшить энергоэффективность следующей системы на чипе от NVIDIA.

Новый SoC должен обладать лучшими качествами подобных систем — иметь минимальное потребление в режимах энергосбережения и малой нагрузки, но при этом обеспечить высочайшую производительность четырёх полноценных процессорных ядер, не выходя при этом за рамки потребления мобильных устройств. По данным NVIDIA, использование вспомогательного ARM ядра для фоновых и нетребовательных задач и подключение четырёх основных ядер в случае интенсивной нагрузки позволяет Kal-El обеспечить среднее потребление энергии ниже, чем у большинства конкурирующих решений при любом сценарии и нагрузке.

Четыре вычислительных Cortex A9 ядра и «переменная симметричная мультипроцессорность» должны помочь получить мощные мобильные устройства с отличной энергоэффективностью и длительным временем работы от батарей в большом количестве применений. Это весьма оригинальное решение проблемы одновременного увеличения производительности системы на чипе и снижения среднего потребления энергии, и будет очень интересно посмотреть на практике, как пятое ARM ядро с низким потреблением скажется на продолжительности работы от батарей в реальных устройствах.

Предварительные тесты скорости вычислений и энергопотребления подтверждают эффективность решения, но нужно ещё будет дождаться решений на Kal-El на рынке, а также систем от конкурентов NVIDIA, чтобы сравнить их в условиях нашей независимой лаборатории. Пока же отметим очень мощные теоретически CPU- и GPU-части в составе нового SoC. Хотя от компании, известной своими достижениями в области 3D-графики, хотелось бы чего-то значительно большего, чем очередное повышение частоты и увеличение количества исполнительных блоков в GPU. Но для большого рывка в производительности мобильной графики NVIDIA придётся подождать следующего поколения систем на чипе, использующего 28 нм техпроцесс.

Важно, что мощные мобильные SoC вроде Kal-El дадут возможность переноса и разработки игровых приложений с качеством, близким (но пока всё же уступающем, судя по известным проектам) к консольному у игровых приставок текущего поколения. Четыре вычислительных ядра и усиленное графическое ядро позволяют использовать более сложную геометрию объектов, продвинутые физические эффекты, сложный искусственный интеллект, процедурное текстурирование и т. п. И именно игры могут стать одним из тех локомотивов, которые сподвигнут пользователей на приобретение столь мощных мобильных устройств.

К сожалению, есть у Kal-El и недостатки. Одним из них мы считаем то, что при всём повышении количества исполнительных устройств (вычислительные ARM ядра, векторные блоки графического ядра), новая система на чипе до сих пор имеет лишь один контроллер и канал памяти. Это — весьма странное архитектурное решение, когда канал памяти не расширился при куче изменений: удвоенном количестве CPU ядер, добавлении к ним возможности исполнения инструкций NEON, добавлении шейдерных блоков к GPU. И эта странность вполне может объяснить менее чем двукратный прирост производительности в некоторых тестах и может серьёзно помешать в конкурентной борьбе с будущими системами от Qualcomm, Texas Instruments, Samsung и другими.

Но это — один из немногих технических недостатков, который мы нашли в новом решении. Что касается рыночных перспектив компании NVIDIA в мобильном секторе, то тут они в очень хорошем положении со своими решениями под маркой Tegra. Конечно, очень жаль, что и Tegra 2 и Kal-El немного опоздали с выходом на рынок относительно первоначальных планов компании, но даже при этом они остаются весьма конкурентоспособными на развивающемся стремительными темпами рынке.

Мы уверены, что система на чипе Kal-El, которую мы сегодня рассмотрели, будет применяться в мобильных устройствах не менее широко, что и предыдущее поколение — Tegra 2. Произведённая модификация Kal-El+ должна усилить позиции компании, а Wayne так и вообще может стать одним из первых решений с ARM архитектурой, который потеснит x86-процессоры из ниши более высокого уровня — ноутбуков. Но это дело будущего, а появление планшетов и других мобильных устройств (нетбуков или смартбуков) на базе рассмотренной сегодня системы на чипе NVIDIA Kal-El ожидается в течение следующей пары-тройки месяцев. Собственно, к рождественским продажам NVIDIA с партнёрами успеть должны, а нам остаётся только ждать этого.




Дополнительно

Нашли ошибку на сайте? Выделите текст и нажмите Shift+Enter

Код для блога бета

Выделите HTML-код в поле, скопируйте его в буфер и вставьте в свой блог.