Мы решили разделить материал на две статьи. Данная часть будет состоять из теоретической информации. Возможно, она позволит некоторым из наших читателей лучше разобраться в ситуации, касающейся мобильных устройств и используемых в них технологических решений.
Самые нетерпеливые читатели могут сразу перейти к прочтению второго материала, который посвящен обзору готовящейся и выпущенной продукции.
Начнем издалека. Существует два различных подхода к реализации программной части процессорной архитектуры. Первый заключается в введении большого количества различных сложных инструкций, которые позволяют ускорять выполнение тех или иных задач. Второй подход, в свою очередь, подразумевает использование как можно меньшего количества инструкций, которые бы при этом выполнялись как можно быстрее.
Отсюда пошли два термина — CISC (Complex instruction set computing) и RISC (reduced instruction set computing). На заре развития компьютеров разработчики CPU шли путем наращивания количества инструкций. Это было вызвано высокой ценой дискового пространства и недоступностью высокоуровневых языков программирования. Соответственно, введение дополнительных инструкций упрощало написание программ.

RISC-процессоры существуют уже давно…
Однако со временем оказалось, что многие из инструкций практически не используются. Также многие из «сложных» инструкций были плохо оптимизированы, и зачастую команда быстрее выполнялась с помощью ряда простых инструкций. В результате появилась концепция RISC. В основу ее легли следующие идеи: минимизация количества инструкций и их унификация, увеличение тактовой частоты, распараллеливание. Такие модификации позволяют создавать недорогие процессоры с низким тепловыделением. Большинство RISC-архитектур хорошо масштабируются. Таким образом, можно без проблем создавать как процессоры для встраиваемых устройств, так и суперкомпьютеры. При этом нельзя однозначно сказать, что CISC-процессоры при прочих равных всегда оказываются быстрее.
С тех пор оба этих подхода существуют бок о бок. Больше того, зачастую в современных CISC-процессорах содержится «ядро», преобразующее сложные команды в последовательности более простых, использование которых позволяет обеспечить лучшее распараллеливание.
На ноутбуках и десктопных компьютерах «прописалась» CISC (в лице x86), а большая часть мобильных и встраиваемых устройств работает под управлением RISC-процессоров. Лишь на серверном рынке никак не прекращается борьба.
Если сейчас, говоря о CISC-процессорах, мы подразумеваем только модели с архитектурой x86, то для RISC всё не так однозначно. У многих на слуху названия ARM, ARC, AVR, MIPS, Power, SPARC и SuperH. Всё это — архитектуры, или даже наборы инструкций, в рамках которых выпускаются совершенно различные процессоры. Нас в данном случае интересует в первую очередь ARM.

ARM — английская компания, ее главный офис расположен в Кембридже
Первый ARM-процессор был разработан компанией Acorn Computers для собственных нужд. Впоследствии подразделение разработчиков было выделено в отдельную компанию ARM Holdings. Последняя занималась и продолжает заниматься разработкой новых версий процессорных ядер. Именно ядер, не самих процессоров целиком. Дело в том, что собственных производственных мощностей у ARM Holdings нет. Компания позволяет другим партнерам лицензировать свои архитектурные решения, зарабатывая деньги на самих лицензиях и получая отчисления за каждый проданный процессор с ядром собственной разработки. На данный момент подавляющее большинство мобильных устройств и многие встраиваемые содержат в себе ядра, разработанные ARM. Компания также решила начать выход на рынок серверных процессоров, заручившись поддержкой Dell.
Получается, что когда речь идет о «процессорах ARM», имеется в виду лишь использование соответствующих процессорных ядер. Лицензиями ARM обладает много компаний, но, ввиду тематики нашего обзора, мы перечислим лишь несколько из них: Freescale, Marvell, Qualcomm, Samsung, ST-Ericsson, Texas Instruments и, с недавних пор, NVIDIA. Сейчас именно эти компании производят подавляющее большинство чипов для смартфонов, и они же планируют поделить зарождающиеся рынки планшетников и смартбуков.
Здесь никак нельзя обойти вниманием Intel, которая не хочет упускать столь лакомый кусочек и подготовила платформу Moorestown, основанную на архитектуре x86. Заметим, что ранее Intel выпускала также RISC-процессоры, в том числе с архитектурой ARM. Однако последние разработки в виде процессоров XScale, были проданы компании Marvell, и с тех пор процессорный гигант сосредоточился на оптимизации x86.

Вся системная логика Zune HD размещается на печатной плате 42x42 мм
(фото с сайта ifixit.com)
Однако все современные мобильные решения, как ARM, так и x86, объединяет одно: они представляют собой system-on-a-chip. Это означает, что на одной микросхеме, помимо процессорного ядра и кэш-памяти, располагаются все остальные компоненты, необходимые для работы устройства — эдакий очень компактный компьютер. На плате нужно распаять входы/выходы, оперативную память (иногда она располагается прямо на основном чипе, такая компоновка называется package-on-a-package), добавить чипы, обеспечивающие дополнительную функциональность (GPS, Wi-Fi, акселерометр и т.д.)… и всё. Именно используемыми элементами, а также их компоновкой в чипе, и различаются различные сборки.
В последнее время наметилась тенденция придумывать процессорам для мобильных устройств какие-нибудь звучные названия. Раньше тоже происходили подобные события, но сейчас это приняло повальный характер.

У мобильного процессора даже есть свой логотип
Началось всё, наверное, с конца 2008 года, когда компания Qualcomm представила платформу Snapdragon. Это название привлекло внимание прессы и читателей. Всем внезапно стало важно, что же скрывается внутри смартфона. Анонс Tegra парой месяцев позже произвел схожий эффект. Об этом решении сразу же начали много говорить, новости пестрели различными упоминаниями. И это несмотря на то, что первый продукт, использующий данный чип, появился лишь в сентябре 2009 года (это был Zune HD).
Данному примеру последовали также Marvell со своей ARMADA и Apple с процессором A4, который производит Samsung. Samsung также выпустила свою собственную разработку, называющуюся Hummingbird. Много разговоров было и про Moorestown.
Это не значит, что остальные компании «сошли с дистанции», но мы не удивимся, если они в будущем последуют примеру своих конкурентов. Пока же Texas Instruments продолжает выпускать свои сборки в серии OMAP (Open Multimedia Application Platform), а у Freescale соответствующая серия называется i.MX.
Как вы догадываетесь, важным элементом system-on-a-chip сборки является графическое ядро. Здесь долгое время правила бал компания PowerVR. Когда-то она производила дискретную графику для настольных ПК, но с появлением ATI и NVIDIA была вынуждена уйти с этого рынка, не выдержав конкуренции. Однако у нее получилось неплохо обосноваться на рынке графики для мобильных устройств, работая по схожей с ARM схеме. Различные решения серии PowerVR SGX уже давно используются Freescale, Intel, Samsung и Texas Instruments. Не жирно ли, спросите вы? Это же половина компаний из приведенного выше списка! Похоже, что подобный вопрос со временем пришел в голову нескольким компаниям. Притом некоторым, как вы увидите, достаточно давно.
Marvell для своей SoC будет пользоваться разработкой молодой компании Vivante. Ничего особенного о ней сказать нельзя — это первый контракт таких масштабов для данной компании.
Qualcomm поступила более решительно. В начале 2009 года она купила подразделение ATI/AMD, которое занималось разработкой SoC для встраиваемых систем (AMD Imageon). Через год появилась Adreno Graphics, которая и используется в современных сборках от Qualcomm. Забавно, что Imageon во многом выросла из Bitboys, купленной ATI в середине 2006 года.
В ARM Holdings подумали, что лицензировать еще и графические ядра — очень неплохая идея. В результате летом 2006 года была куплена компания Falanx, переименована в ARM Norway и теперь появилось семейство Mali. ST-Ericsson показалось разумным использовать процессорные и графические ядра одного производителя.
NVIDIA здесь отличилась, наверное, больше всех. В результате покупки в 2003 году компании MediaQ, которая разрабатывала «дискретные» GPU для многих КПК, появилась линейка GoForce. Она не снискала особой популярности, но и провальной ее назвать нельзя. Особенно стоит отметить появление GoForce в некоторых из моделей Motorola RAZR. Далее, в 2006 году была приобретена Hybrid Graphics. В данном случае это больше было похоже на устранение конкурента, но и некоторые разработки этой компании наверняка нашли применение в NVIDIA.

Первая SoC-сборка NVIDIA
Дальше — больше. В начале 2007 года была приобретена PortalPlayer, которая делала ARM SoC для плееров iPod вплоть до 4-го поколения. Полученные технологии помогли выпустить GoForce 6100, последнюю модель в линейке. Эти же наработки во многом использовались при создании NVIDIA Tegra. Таким образом, ошибочно полагать, что появление Tegra стало для компании шагом в неизведанную ранее область. Но, конечно, при разработке этого решения пришлось изрядно потрудиться. Смена названия символизировала собой как проведенную работу, так и смену концепции позиционирования новых чипов.
Изначально было представлено 2 серии процессоров: Tegra APX и Tegra 600. Первая предназначена для менее требовательных устройств — смартфонов, портативных плееров и т.д. Сборки другой серии предназначены для установки в смартбуки, планшеты и прочие устройства, обладающие большим объемом батареи и более высоким разрешением экрана.
Принципиальные схемы данных процессоров практически идентичны, различия заключаются в тактовых частотах исполнительных блоков. Например, APX способны справляться с декодированием 720p сигнала, а Tegra 650 может декодировать 1080p.

Блок-схема Tegra первого поколения
Основные компоненты Tegra достаточно подробно рассматривались нами в обзоре плеера Zune HD, но вкратце расскажем про них и здесь. Процессор ARM11 MPCore, работающий на тактовой частоте 600 МГц, использует шестое поколение набора инструкций ARM и, по сложившемуся мнению, в большинстве сценариев работы является «узким местом» (т.е. ограничивающим фактором) для всего чипа. Также там есть ядро ARM 7, которое и вовсе представляет собой решение «третьего» поколения. Однако к нему требований совсем немного — оно управляет ресурсами и питанием остальных блоков, а также используется при выполнении не очень требовательных задач.
Остальные элементы являются разработками/собственностью NVIDIA. Это GPU, процессор обработки изображений, блоки кодирования и декодирования видеосигнала, а также процессор обработки аудиосигнала.

Блок-схема Tegra второго поколения
За счет большого количества узкоспециализированных блоков достигается длительное время работы Tegra. Например, в случае проигрывания звука может работать лишь соответствующий процессор и ARM 7-ядро. Именно на сниженное энергопотребление и продвинутые графические возможности делала ставку NVIDIA. В компании считают, что определенное количественное изменение времени работы и соответствующее повышение автономности способно качественно изменить восприятие мобильных устройств в глазах пользователей.
При создании второго поколения Tegra в NVIDIA руководствовались той же идеологией. Возможности первого поколения всё еще соответствуют современным стандартам, однако всегда можно что-то улучшить.
Первым претендентом на замену стало процессорное ядро. Дабы продлить жизненный цикл новой платформы, было решено сразу купить лицензию на ARM Cortex-A9, которое на данный момент является наиболее совершенным среди всех вариантов, предлагаемых ARM. На замену ему через некоторое время должно прийти ядро с кодовым названием Eagle, но пока ни о каких готовящихся сборках на его основе не известно, так что говорить тут не о чем. Конструкция ARM Cortex-A9 MPCore подразумевает использование до 4 процессорных ядер, однако в NVIDIA решили пока «ограничиться» двумя. Слово «ограничиться» поставлено в кавычки, потому что на текущий момент это явный перебор, особенно если учесть тактовую частоту ядер (в зависимости от модификации Tegra она может достигать 1 ГГц). Известно заявленное ARM «энергопотребление в типичном процессоре» для Cortex-A9 MPCore — 250 мВт на ядро, можно ориентироваться на эту величину.
Производительность графического ядра также была несколько увеличена, дабы его мощность соответствовала возросшей производительности CPU. Принципиальная архитектура осталась прежней, но NVIDIA увеличила тактовую частоту, количество вычислительных блоков и пропускную способность памяти. Точные значения производительности неизвестны, но ориентировочно она в 2 раза выше, чем у предшественника.
По заявлениям компании, новый GPU обеспечивает более 60 FPS при игре в Quake 3 в разрешении 1024*600. Также графическое ядро справляется с Unreal Engine 3, что открывает радужные перспективы по использованию устройств на базе Tegra 2 в качестве игровой консоли. При игре в Quake 3 графика потребляет несколько сотен мВт, а для воспроизведения полноэкранного flash (да, поддерживается аппаратное ускорение flash) системе достаточно лишь 150 мВт.
Нам неизвестно, насколько сильно были переработаны остальные блоки, однако в этом и так не было особой необходимости. Tegra 2 позволяет кодировать и декодировать 1080p видео, при этом соответствующий блок потребляет 400 мВт. При проигрывании музыки цифра энергопотребления блока и вовсе смешная — 30 мВт.
Данные по энергопотреблению мы приводили неспроста — они были взяты из официальных источников и могут представлять некоторый интерес для оценки времени автономной работы устройств, основанных на Tegra 2. В заключение этой части нашего обзора укажем некоторые официальные данные по времени автономной работы двух различных «референсных» устройств — планшетного ПК и смартбука.
Планшетник (батарея 2000 мА*ч, экран потребляет 500 мВт):

Впечатляет, правда?
Смартбук (батарея 24 Вт*ч, экран потребляет 1 Вт):
Как вы уже поняли, Tegra 2 представляет собой мощное и энергоэффективное решение. Однако конкуренция на этом рынке высока, поэтому странно было бы ждать каких-то послаблений от других игроков. К тому же для составления новой сборки необязательно разрабатывать «с нуля» новый CPU или GPU — достаточно лишь купить соответствующие лицензии. Это не значит, что процесс разработки очень уж прост, но производители реагируют на различные события быстро.
В соответствующем разделе мы уже перечислили основных производителей графических ядер для ARM-сборок, здесь же попытаемся сравнить флагманские сборки различных компаний, дабы оценить возможности и перспективы Tegra 2 в сравнении с ними.
В таблицу мы включили как присутствующие на рынке решения, так и только готовящиеся к выходу. К сожалению, разработчики не стремятся делиться объективной информацией о своих продуктах. Видимо, считается, что подобная «тактика черного ящика» позволит добиться лучших результатов продаж. Будем надеяться, что со временем данная ситуация изменится.
Пока же имеющиеся данные следует воспринимать с некоторой долей скепсиса. В частности, мы не стали указывать данные по частоте и количеству исполнительных блоков для графического ядра, так как имеющаяся информация уж очень противоречива.
Если у вас есть какие-либо исправления или дополнения, просим отправлять их на адрес info@ferra.ru
| Разработчик | NVIDIA | NVIDIA | Apple (Samsung) | Samsung | Qualcomm | Qualcomm |
| Модель | Tegra 650 | Tegra 2 250 | A4 | S5PC110 Hummingbird | QSD8650 | QSD8672 |
| Техпроцесс | 65 нм | 40 нм | 45 нм | 45 нм | 65 нм | 45 нм |
| CPU IP | ARM11 MPCore | Cortex-A9 MPCore | Cortex-A8 | Cortex-A8 | Qualcomm Scorpion | Qualcomm Scorpion |
| Частота | 800 МГц | 1000 МГц | 1000 МГц | 1000 МГц | 1000 МГц | 1500 МГц |
| К-во ядер | 1 | 2 | 1 | 1 | 1 | 2 |
| RAM | LP-DDR | LP-DDR2 | LP-DDR (256 МБ PoP) | LP-DDR2 | LP-DDR1 | LP-DDR2 |
| GPU IP | NVDIA ULP GeForce | NVDIA ULP GeForce | PowerVR SGX 535 | PowerVR SGXMP series | Adreno 200 | Adreno 220? |
| Мполиг/с | 40 | 80? | 28 | 90 | 22 | 80 |
| Мпикс/с | 600 | 1200? | 500 | ~1000 | 133 | ~500 |
| Разработчик | T.I. | T.I. | Freescale | Freescale | Marvell | ST-Ericsson |
| Модель | OMAP 3430 | OMAP 4440 | i.MX515 | i.MX535 | ARMADA 510 | U8500 |
| Техпроцесс | 65 нм | 45 нм | 65 нм | ? | 55 нм | 45 нм |
| CPU IP | Cortex-A8 | Cortex-A9 | Cortex-A8 | Cortex-A8 | Marvell Sheeva PJ4 | Cortex-A9 MPCore |
| Частота | 550 МГц | 1000 МГц | 800 МГц | 1000 МГц | 1200 МГц | 1200 МГц |
| К-во ядер | 1 | 2 | 1 | 1 | 1 | 2 |
| RAM | LP-DDR1 | LP-DDR2 | LP-DDR2
|
LP-DDR3 | LP-DDR3 | LP-DDR2 |
| GPU IP | PowerVR SGX 535 | PowerVR SGX 540 | OpenGL ES 2.0-совместимый | PowerVR SGXMP series | Vivante GC600 | ARM Mali-400 |
| Мполиг/с | 8 | 28 | ? | ? | 63 | 30 |
| Мпикс/с | 200 | ~1000 | ? | ? | 250 | 275-1100? |
Тут в первую очередь надо отметить, что во всех сборках используются разные процессоры с различными значениями производительности на мегагерц. Некоторые из разработчиков (Qualcomm и Marvell, точнее говоря) разработали свои процессоры на основе набора инструкций ARMv7, остальные подвергли модификации существующие архитектуры. Это не значит, что разработанные «с нуля» процессоры сильно лучше, но свои преимущества у них есть. Qualcomm, например, смогла добиться от Scorpion работы на частоте 1500 МГц и большей энергоэффективности. Наибольшее же значение производительности на мегагерц ожидается у OMAP 4440. Впрочем, неплохие результаты показывает и Cortex-A9 MPCore в Tegra 2.
В целом среди всех сборок выделяются 4 с двухъядерными процессорами: Tegra 2, QSD8672, OMAP 4440 и U8500. Очевидно, что в качестве основы для производительных смартбуков и планшетных ПК стоит рассматривать именно их. Для смартфонов ситуация не столь однозначная — модели с одним процессорным ядром в теории смогут конкурировать с новинками за счет меньшей цены и большей энергоэффективности.
Высокой 3D-производительностью отличается обновленная Tegra, Hummingbird и QSD8672. Скорее всего, хорошо себя покажет новая сборка Freescale. Достойные результаты и у ARMADA.
Различные технологии энергосбережения используются во многих сборках, но оценка их эффективности по понятным причинам затруднена. На стороне Tegra 2 здесь наиболее тонкий техпроцесс — те самые злополучные 40 нм от TSMC. На сей раз, впрочем, никаких проблем с производством вроде бы нет.
Судя по первым впечатлениям, самым опасным конкурентом для Tegra 2 будет именно новая разработка Qualcomm. Однако тут есть одно «но»: мы уже видели прототипы устройств на Tegra 2, и в ближайшее время соответствующие устройства будут доступны для покупки. Об остальных сборках с двухъядерными процессорами такого сказать нельзя. Возможно, информация о них держится в секрете, но пока можно сказать, что конкурентов по уровню быстродействия у Tegra 2 нет.