Тестирование СнК NVidia Tegra 2 и Microsoft Windows Embedded Compact 7. Часть 1


В статье приведен обзор применения Embedded Windows Сompact 7 для систем-на-кристалле (СнК) и дан общий анализ СнК NVidia Tegra 2. Рассмотрены вопросы применения Embedded Windows Сompact 7 для работы с NVidia Tegra 2. Приведены результаты серии тестов работы кодеков в BSP по кодированию и декодированию видео (H.264, MPEG4, MJPEG).

Мы не будем детально описывать сам чип и дублировать множество статей, посвящённых Tegra 2. Мы расскажем о собственном опыте использования данной СнК и поделимся соображениями о возможностях ее применения. Из-за ограниченной доступности этот кристалл еще не вошел в категорию «выбор пользователей», что, однако, не является преградой на пути его применения. Компании Qseven и Toradex поступили, на наш взгляд, очень правильно, выпустив модули на базе мобильных решений от NVidia и открыв для этого чипа возможность применения во встраиваемых системах.

Обзор применения Embedded Windows Compact 7 для СнК

После выхода операционной системы (ОС) Windows Embedded Compact 7 стало понятно, что Microsoft не намерена сдавать позиций в секторе мобильных устройств. Более того, нововведения в названной ОС указывают на то, что платформы Microsoft Embedded сделали ещё один серьёзный шаг в сторону развития мобильных устройств.
На наш взгляд, такие возможности как SMP (Symmetric Multiprocessing) и поддержка ARMv7-инструкций позволили вдохнуть в эту ОС новую жизнь. В настоящее время активно используются архитектуры ARM Cortex-A8 и Cortex-A9 (причём, Cortex-A9 многоядерная), а в самом ближайшем будущем планируется вывести на рынок многоядерные СнК с архитектурой ядра Cortex-A15, работающие на частотах больше 1 ГГц. Это позволяет использовать данную ОС и в вышеназванных кристаллах.
Многие скептически настроенные инженеры до сих пор сохраняют уверенность в том, что продукты Microsoft Embedded не в состоянии конкурировать с теми же Embedded Linux или Google Android по ряду надуманных, необоснованных  причин, никак не связанных с текущим состоянием дел в сфере встраиваемых систем. Стабильность работы конечного устройства во многом зависит не столько от самой ОС, сколько (и в первую очередь!) от качества реализации BSP (уровня абстракции и драйверов). Поскольку сама ОС является ОСРВ (операционной системой реального времени), то при правильном подходе к реализации BSP можно добиться устойчивой работы самой ОС и обработки событий с минимальной латентностью. Почти все исходные коды доступны, и соответственно, можно легко переписать какой-либо модуль под собственную задачу, что не оставляет камня на камне в теории приверженцев ОС с открытыми исходными кодами. На наш взгляд, к наиболее ценным нововведениям в ОС Windows Embedded Compact 7 можно отнести следующие:
– появление компилятора с поддержкой вызовов EABI (Embedded-Application Binary Interface), которые обеспечивают большую эффективность по сравнению с существующими реализациями;
– появление в образе ОС полноценной поддержки математического сопроцессора (VFP);
– поддержка ARMv5-, ARMv6-, ARMv7-инструкций;
– появление поддержки OpenMP при компиляции приложений, что позволяет равномерно и корректно распределить задачи в многоядерных СнК на несколько вычислительных ядер;
– поддержка отладки приложений в среде Platform Builder, использующих более одного ядра;
– появление множества нововведений по улучшению процесса отладки в среде Platform Builder;
– новые утилиты удалённой работы (Remote FX) с возможностью создания собственных средств;
– появление нового подхода к обновлению ОС (Windows Embedded Developer Update);
– появление компонента Silverlight 3.0, позволяющего создавать пользовательские интерфейсы с поддержкой распознавания множества касаний сенсорного экрана.
На наш взгляд, ОС Windows Com­pact  7 является удачным продуктом линейки Windows Embedded и благодаря единой структурированной экосистеме позволяет разрабатывать успешные продукты либо усовершенствовать существующие на иной ОС. При качественной разработке продукта это однозначно станет залогом успешного бизнеса.

Общий анализ СнК NVidia Tegra 2

Выпустив в первом квартале 2010 г. поколение чипов Tegra 2 (см. рис. 1), NVidia взяла серьёзный реванш после первой серии Tegra. Использование многоядерных ARM Cortex-A9 MP с хорошим набором периферии с приправой в виде отличной графической подсистемы GeForce оказалось как никогда кстати для рынка мобильных устройств. В ходе работы с графической подсистемой мы были поражены её производительностью на больших разрешениях. Надо отметить, что сам чип не занимает много места (есть варианты 12×12  мм либо 23×23 мм), однако он выделяет значитель-
ное количество тепла (по замерам встроенного электронного термометра температура без пассивного охлаждения доходит до 85°C). Поэтому необходимо снижать частоту ядер, чтобы не вывести кристалл из строя. Мы бы рекомендовали использовать для данной СнК пассивное охлаждение.

 

Рис. 1. Внешний вид СнК NVidia Tegra 240 (PoP)

После детального изучения СнК стало ясно, что компания NVidia качест­венно подошла к его разработке и организации. Судя по набору периферии и функционалу, эту СнК можно отнести к мультимедийной серии. В процессоре реализована поддержка многоканального звука с возможностью вывода цифрового потока на несколько аудиопортов, поддержка SPDIF, поддержка PCI Express шины, встроены два независимых контроллера дисплея с возможностью вывода на два независимых экрана, подключенных по интерфейсам LCD (максимальное разрешение 1680×1050) и HDMI 1.3 1080p (максимальное разрешение 1920×1080). Присутствует также дисковый интерфейс EIDE, который поддерживает PIO-, UltraDMA-, MultiwordDMA-режимы. Необходимо отметить, что данная СнК имеет дополнительные закрытые ARM-ядра, использующиеся для кодирования и декодирования HD-звука, HD-видео и изображений. Сами кодеки поставляются с BSP под данную СнК в виде бинарных файлов. Касательно остальной периферии можно сказать, что тут представлен обычный «джентльменский набор»: NAND-контроллер, SPI, I2C, SDIO, UART и многое другое. Особенностью данной СнК является наличие собственного аппаратного ускорителя 3D-графики GeForce® с 8  ядрами.
Блок-диаграмма СнК NVidia Tegra 250 представлена на рисунке 2.

 

Рис. 2. Блок-диаграмма СнК NVidia Tegra 250

 

Применение Embedded Windows Сompact 7 для работы с NVidia Tegra 2

По причине труднодоступности данной СнК компания AXONIM Devices использовала готовый модуль компании Toradex с NVidia Tegra 2 (Tegra 250). Для данных модулей (см. рис. 3) компания Toradex предлагает готовый BSP под Windows Embedded Compact 7, в который входят следующие модули:
– загрузчик EBOOT;
– OAL с поддержкой VFP и SMP;
– KITL;
– драйвер сенсорного экрана с использованием Wolfson WM9715L в качестве контроллера;
– драйвер двух независимых контроллеров экрана (LCD, HDMI);
– драйвер аппаратного ускорителя графики GeForce;
– драйвер модуля HD AVP (аппаратного модуля ускорения обработки видео/аудио данных);
– звуковой драйвер, использующий Wolfson WM9715L контроллер;
– драйвер eMMC NAND-памяти;
– драйвер сетевого адаптера на базе AX88772B;
– драйвер USB-Device и USB-Host;
– драйвер последовательного порта UART;
– драйвер управления питанием;
– драйвер eMMC/SD-памяти;
DirectShow-фильтры, позволяющие проигрывать с помощью стандартного Windows Media Player видео/аудиофайлы с использованием аппаратного декодирования.
Все последующие драйверы компания AXONIM Devices разрабатывала самостоятельно, подписав соглашение о неразглашении (NDA — Non Disclo­sure Agreement) c NVidia.
Несущая плата Iris Pico ITX  с модулем Colibri Tegra 2 представлена на рисунке 4.

 

Рис. 3. Модуль Colibri Tegra 2 компании Toradex
Рис. 4. Несущая плата Iris Pico ITX с модулем Colibri Tegra 2

 

Кодирование и декодирование видео (H.264, MPEG4, MJPEG)

Перед разработкой устройства на базе NVidia Tegra 2 компания AXONIM Devices провела серию тестов работы кодеков в BSP версии 0.1 Beta 4 и представила в таблицах 1 и 2 их результаты.

 

Таблица 1. Результаты декодирования видео в формате H.264

Указываются максимальные наблюдаемые значения показателей загрузки, %

Без загрузки

H.264

1920×1080

1280×720

Базовый профиль, без аудио, 20 Мбит битрейт

Базовый профиль, B-фреймы, Аудио MP3, 20 Мбит битрейт

Базовый профиль, без аудио, 4 Мбит битрейт

Базовый профиль, аудио MP3, 4 Мбит битрейт

Основной профиль, B-фреймы

Высокий профиль без аудио, 2 Мбит

Высокий профиль без аудио, 2 Мбит

CPU (относительно 1000 МГц)

4

25

70

22

67

100

100

AVP (относительно 237 МГц)

2

13

25

12

19

70

70

EMC (рабочая частота 333 МГц)

20

45

45

44

46

37

37

VID (относительно 250 МГц)

90

98

99

99

96

96

AHB (относительно 100 МГц)

16

18

15

15

10

10

APB (относительно 100 МГц)

0,5

2

1,25

2,5

2

2

Примечание

30 FPS

10 FPS на динамичной картинке из-за B-фреймов

30 FPS

30 FPS

Не работает

4 FPS

3 FPS


Таблица 2. Результаты декодирования видео в MJPG и MPEG4

Указываются максимальные наблюдаемые значения показателей загрузки, %

Без за-

груз­ки

Motion JPEG (MJPG)

MPEG4

1920×1080

1920×1080

Без аудио, 20 Мбит битрейт

Аудио MP3, 20 Мбит битрейт

Без аудио, 80 Мбит битрейт

Аудио MP3, 80 Мбит битрейт

Без аудио, 2 Мбит битрейт

B-фреймы, Аудио MP3, 2 Мбит битрейт

Без аудио, 6 Мбит битрейт

B-фреймы, Аудио MP3, 6 Мбит битрейт

CPU (относительно 1000 МГц)

4

12

36

21

43

35

40

80

80

AVP (относительно 237 МГц)

2

13

23

13

23

80

100

93

100

EMC (рабочая частота 333 МГц)

20

34

37

35

37

40

42

46

46

VID (относительно 250 МГц)

41

56

45

45

30

51

89

82

AHB (относительно 100 МГц)

15

17

17

18

19

24

21

24

APB (относительно 100 МГц)

1,5

1,5

1,75

2,25

1,25

1,5

1,75

1,75

Примечание

30 FPS

30 FPS

30 FPS

30 FPS

30 FPS

30 FPS

30 FPS

15 FPS

 

Для тестирования были специально сформированы видеофайлы необходимых форматов (H.264, MJPG, MPEG4, MPEG2 и WMV8). Видеофайлы форматов MPEG2 и MPEG4 вообще отказались проигрываться. Видеофайлы проигрывались из SDHC-карты со скоростью чтения 12 Мбайт/с.

Литература
1. NVidia Tegra 200 Series Mobile Web Pro­cessor Datasheet.
2. NVidia Tegra 2 Family Technical Re­fe­rence Manual.
3. Toradex Colibri Tegra 2 Datasheet.

Оставьте отзыв

Ваш емейл адрес не будет опубликован. Обязательные поля отмечены *