Маленькие принцы PXA


Современные PDA и смартфоны диктуют достаточно жесткие рамки элементной базе, на основе которой они реализованы — можно встретить модели, толщиною порядка сантиметра и весом около 100 грамм. И это, учитывая железный корпус, достаточно емкие аккумуляторы и достаточно большой по площади экран. Порой, глядя на свой HP iPaq 1910 задумываешся, а есть ли там вообще плата с процессором, памятью и прочей логикой:

И, как же она все-таки туда поместилась?

Залог подобной миниатюризации — компактные системы на чипе включающие не только ядро процессора, но и множество контроллеров устройств: ЖК дисплея, систему управления питанием и частотой, USB, звуковой интерфейс, интерфейсы к карточкам памяти различных стандартов и просто обобщенные интерфейсы ввода вывода (для реализации кнопок, колес и джойстиков). Разумеется, в чип встроен и контроллер различных типов системной памяти, как оперативной, так и Flash. В последнее время появились еще более интегрированные решения, в одном корпусе которых размещена не только система на чипе, но и один или два кристалла Flash памяти для операционной системы и иного программного обеспечения. В скором времени, следует ожидать интеграции в тот же корпус и оперативной памяти стандартного для индустрии объема, например, 32, 64 и 128 Мб.

Сегодня мы постараемся описать историю, перспективы и текущее положение дел достаточно популярных «систем на чипе» нашего времени — продуктов линейки PXA от Intel, основанных на RISC ядре XScale. Но об этом чуть далее, а пока:

Вокруг да около

RISC ядро Intel XScale ведет свою родословную от благородного и достаточно удачного детища компании Advanced RISC Machines Ltd (RISC архитектуры, незатейливо названной ARM), и является дальнейшим развитием этой архитектуры, совместимым с ней сверху вниз с точки зрения программ. Компания ARM была основана в 1990 году тремя фирмами — Acron, Apple (sic!) и VLSI. Acron желали получить CPU для своей во многом опередившей время разработки — Archimedus — ПК, удачного с архитектурной точки зрения, но не добившегося устойчивого успеха на рынке. Apple уже тогда начали искать RISC архитектуру, достойную стать заменой для маков, основанных тогда на CISC архитектуре Motorolla 68k и, потому, также были заинтересованы в этой разработке, а VLSI в свою очередь тешили себя планами по производству процессоров на основе этой архитектуры и по использованию оной в различных встраиваемых и гибридных системах.

В общем, и целом архитектура удалась, за время ее существования, различные версии ядра ARM (особенно 6,7,9,10,11) и различные готовые решения на их базе были лицензированы широкому списку компаний, среди которых DEC, Intel, TI, Atmel и т.д. Основой успеха послужило низкое (в пересчете на производительность) энергопотребление и возможность гибкой адаптации архитектуры под специфические нужды, включая дополнительные наборы инструкций для обработки сигналов (мультимедия) или эффективного исполнения Java байт кода.

Приведем примеры решений от ARM:

Интересующиеся внутренними подробностями могут обратится к этому документу, подробно описывающему базовую архитектуру, набор команд и некоторые другие аспекты оригинальных ARM.

В наше время, эта простая и в тоже время легко адаптируемая архитектура, в силу объективных (или не очень) причин, вытеснила с рынка PDA своих основных конкурентов (другие популярные во встраиваемых и компактных решениях RISC архитектуры NEC VR и MIPS) а также, стоявший особняком Motorolla DragonBall, ведущий свою родословную от однокристальных микроЭВМ Motorolla серии 68. Как бы там ни было, в данный момент, мы наблюдаем редкое единодушие производителей мобильных систем на чипе — архитектура ARM и ее производные являются базой для большинства из них (причем не только в исполнении Intel, но и Atmel и Texas Instruments — вспомним OMAP и других производителей).

В свою очередь, три наиболее распространенных среди подобных устройств ядра мобильных операционных систем — Windows CE, Symbian и PalmOS развиваются последнее время в основном в портах для этой архитектуры. Гораздо менее распространенные Linux решения, также портированы на ARM. Таким образом, можно с большой долей уверенности констатировать некую гегемонию этой архитектуры на рынке PDA, смартфонов и других "умных" мобильных решений. Исторический опыт показывает, что периоды доминирования одной архитектуры (в той или иной области хайтека) как правило, чередуются переходными периодами конкуренции нескольких, двух или трех архитектур. В разных областях, это чередование осуществляется с разной скоростью и соотношение времени монархии и демократии (если так можно выразится) тоже различное. Чего, например, стоит долгое и достаточно безраздельное властвование x86 архитектур на рынке PC (если не считать главной оппозиции — PowerPC в продуктах Apple). Рискнем предположить, что гегемония ARM в тех или иных ипостасях на рынке PDA и смартфонов продлится весьма значительный промежуток времени. Дело в том, что совершенство архитектуры как таковой не оказывает заметного влияния на предпочтения конструкторов PDA — вычислительная мощность важна, но не является определяющим фактором. Простота, низкое энергопотребление, высокая гибкость и самое главное — наличие программного обеспечения и средств разработки, вот что важно в первую очередь. С этим у ARM архитектуры и ее последователей все о'кэй. Разумеется, многое зависит от конкретной реализации системы на чипе, какие контроллеры и подсистемы интегрированы вместе с ядром, какие типы и объемы памяти она поддерживает, сколько потребляет и т.д. Но все эти аспекты совершенствуются в достаточной степени в отрыве от архитектуры ядра. Кстати, в современной системе подобного класса ядро занимает меньше половины кристалла — остальное — контроллеры и прочие служебные подсистемы.

Впрочем, начнем постепенно подбираться к главным героям нашего повествования. Спустя некоторое время после появления ARM, DEC лицензировали архитектуру и систему команд ARM и разработали свой собственный усовершенствованный вариант ядра, названный StrongARM. Затем, во время слияния DEC с Compaq, ядро StrongARM было приобретено Intel, и в течение значительного времени на его основе производились популярные в Windows CE PDA системы на чипе SA1110. Степень интеграции этих систем была несколько ниже современных, в том числе многие функции брал на себя второй чип компаньон. Присутствовал устаревший последовательный интерфейс и некоторые другие, в наше время ставшие рудиментарными, возможности.

Затем Intel разрабатывает новую собственную версию ядра и архитектуры совместимую с ARM v5 по командам — Xscale. Новое ядро более эффективно с точки зрения энергопотребления, и лучше масштабируется с ростом частоты — в данный момент доступны решения с частотой до 400 МГц, а в скором времени появятся и 600/800 МГц варианты на основе ядра Xscale. Кроме того, в новую архитектуру были добавлены команды, отвечающие за эффективное взаимодействие с различными сопроцессорами, расположенными на том же чипе. Одно из главных расширений — Wireless MMX — набор 64 бит SIMD инструкций и SIMD сопроцессор, который будет включаться в новые чипы на основе ядра XScale. Эти инструкции нацелены на эффективную обработку видео, трехмерную графику, звук и прочие области традиционного применения SIMD. И хотя данный набор не совместим с SSE/SSE2 настольных продуктов Intel он достаточно близок по заложенным функциональным возможностям — переписывание алгоритмов почти не требуется, векторные команды в большинстве случаев можно транслировать один в один, заботясь только о точности и представлении данных.

Надо отметить, что для эффективного исполнения программ на Xscale желательно перекопилировать их с использованием соответствующего оптимизирующего компилятора — производительность может возрасти почти вдвое. В этом плане ситуация чем то напоминает появление Pentium — программное обеспечение скомпилированное с учетом особенностей 486 процессора исполнялось на нем не столь эффективно как хотелось бы, но позже, по мере появления компиляторов эта ситуация была исправлена.

Семейка

Итак, на ядре Xscale основаны все производимые Intel в данный момент системы на чипе для PDA и смартфонов а также других мобильных применений. По порядку.

Intel PXA255

  • 32 бит RISC ядро Xscale, система команд совместима с ARM v.5TE
  • 200, 300, 400 МГц
  • технология 0.18
  • суперскалярное исполнение
  • специальный 40 бит аккумулятор и 16 бит SIMD инструкции для обработки видео и аудио данных, позаимствованные из DSP архитектур (не путать с Wireless MMX)
  • высокоскоростной интерфейс для синхронной Intel Strata Flash памяти.
  • режимы повышенной производительности и низкого энергопотребления.
  • 32 килобайта кэш команд и 32 килобайта кэш данных
  • специальный 2 килобайта кэш для потоковых мультимедиа данных
  • контроллер памяти: 4 банка, 100MHz, поддержка 2.5 и 3.3V SDRAM, SRAM, ROM, Flash ROM и т.д., 16 и 32 бит ширина шины. До 256 Мбайт оперативной памяти при использовании всех четырех банков RAM.
  • двуканальный PCMCIA и Compact Flash контроллер периферии и карт памяти
  • MMC/SD контроллер карт памяти
  • 15 однобитных портов ввода вывода общего назначения с поддержкой прерываний
  • встроенный программируемый тактовый генератор и таймер
  • 16 DMA каналов
  • контроллер LCD дисплея с аппаратным ускорением закраски и перемещения прямоугольных блоков (активные и пассивные матрицы, одно и двух страничные, до 16 бит на точку).
  • AC97
  • USB (конечный интерфейс устройства, не хост)
  • UART (один урезанный, для внутренних устройств и один с полным аппаратным контролем передачи)
  • IrDA интерфейс
  • Bluetooth (стандартный последовательный 960 килобит UART интерфейс к приемопередающему модулю)
  • I2C и I2S шины
  • SSP интерфейс
  • 256 выводов PBGA корпус размером всего 17х17 миллиметров
  • широкий допустимый температурный диапазон.

Перед нами блок схема PXA256. Конфигурируемый контроллер памяти справа берет на себя и функции работы с CF/PCMCIA интерфейсом. Всего одновременно может быть сконфигурировано 6 банков, каждый из которых по выбору может быть CF/PCMCIA, RAM или ROM памятью, с различными параметрами и шириной шины.

Слева обширная зона контроллеров различных устройств, некоторые из них получают доступ к данным самостоятельно, через DMA канал, выбирая их из системной памяти. В наличии:

  • Часы
  • Точный таймер для операционной системы
  • Два генератора широтно-импульсной модуляции
  • Контроллер прерываний
  • Контроллер тактового генератора и системы экономии энергии
  • А также все ранее перечисленные интерфейсы.

Кроме того, система содержит контроллер дисплея, поддерживающий 1,2,4,8 и 16 битный цвет (вплоть до 8 бит на точку поддерживается и 16 битная палитра), допустимы активные и пассивные матрицы, с одной или двумя страницами. Максимальная частота передачи точек — 83 МГц. Для примера — для дисплея с разрешением 800х600 при частоте обновления 75 Hz необходима частота передачи точек около 36 МГц. Максимальное поддерживаемое разрешение — 1024х1024. Для пассивных панелей реализован качественный аппаратный 16-битный дизеринг.

Intel PXA26X

Основное отличие и основное преимущество этой серии в наличии встроенной в тот же корпус Flash памяти. Такая степень интеграции делает это решение привлекательным для смартфонов и даже обычных сотовых телефонов с продвинутыми функциональными возможностями. Вот так выглядит корпус этой системы на чипе в разрезе:

Один кристалл процессора и один или два кристалла Flash памяти. Кроме того, в новой серии увеличено число периферийных контроллеров. Итак:

  • 32 бит RISC ядро Xscale, система команд совместима с ARM v.5TE
  • PXA261 — 200 МГц, PXA262 — 200, 300 МГц
  • технология 0.18
  • PXA261 — 16 Мбайт, PXA262 — 32 Мбайта интегрированной в корпус Flash памяти.
  • суперскалярное исполнение.
  • специальный 40 бит аккумулятор и 16 бит SIMD инструкции для обработки видео и аудио данных, позаимствованные из DSP архитектур (не путать с Wireless MMX)
  • высокоскоростной интерфейс для синхронной Intel Strata Flash памяти.
  • режимы повышенной производительности и низкого энергопотребления.
  • 32 килобайта кэш команд и 32 килобайта кэш данных
  • специальный 2 килобайта кэш для потоковых мультимедиа данных
  • контроллер памяти: 4 банка, 100MHz, поддержка 2.5 и 3.3V SDRAM, SRAM, ROM, Flash ROM и т.д., 16 и 32 бит ширина шины.
  • двуканальный PCMCIA и Compact Flash контроллер периферии и карт памяти
  • MMC/SD контроллер карт памяти
  • 20 однобитных портов ввода вывода общего назначения с поддержкой прерываний
  • встроенный программируемый тактовый генератор и таймер
  • 16 DMA каналов
  • контроллер LCD дисплея с аппаратным ускорением закраски и перемещения прямоугольных блоков (активные и пассивные матрицы, одно и двух страничные, до 16 бит на точку).
  • AC97
  • USB (конечный интерфейс устройства, не хост)
  • UART (один урезанный, для внутренних устройств и один с полным аппаратным контролем передачи)
  • IrDA интерфейс
  • Bluetooth (стандартный последовательный 960 килобит UART интерфейс к приемопередающему модулю)
  • I2C и I2S шины
  • SSP/NSSP/ASSP интерфейсы
  • 294 выводы PBGA корпус размером всего 14х14 (!) миллиметров
  • широкий допустимый температурный диапазон.

Итак, основное отличие диаграммы PXA26x от PXA255 — синхронная Flash память и дополнительные контроллеры. Следует отметить, что «набортная» Flash память занимает один из шести банков банк и таким образом, решению с объемом DRAM 256 Мегабайт будет доступен только один свободный банк для слота CF/PCMCIA или другого схожего с памятью оборудования (т.н. Variably Latency I/O Control на схеме).

NSSP и ASSP — обозначения для интерфейсов ввода вывода нацеленных на применение в мобильных (сотовых) приложениях — соответственно Network и Audio интерфейсы.

На последок давайте посмотрим на несколько примеров того, что дает нам столь плотная интеграция функций и контроллеров в одном чипе. Вот так подсоединяются AC97 кодеки — один или даже два:

А вот так дисплей:

А вот так разъем для MMC карточки памяти (какой ужас, все-таки не удалось избежать нескольких резисторов):

Т.е. грубо говоря, 90% устройств и схем современного PDA или смартфона стыкуются с его сердцем, системой на чипе напрямую без каких либо посредников и лишних компонент. Вот что скрывается за словами «высокая степень системной интеграции».

Будущее

Что нам следует ожидать от подобных систем в будущем (в хронологическом порядке)?

  • Тактовая частота 600 и 800 МГц
  • Wireless MMX векторный сопроцессор
  • Интегрированная Flash память до 64 Мегабайт
  • Интегрированная SDRAM память до 256 Мегабайт
  • Интегрированный беспроводной приемопередатчик (WiFi/Bluetooth)
  • Интегрированные средства оцифровки и воспроизведения звука.
  • Интегрированный графически сопроцессор.
  • Интегрированный сотовый (или универсальный) приемопередатчик.

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

Ну, разве, с разъемом для зарядки питания нам придется мириться еще очень долго. ;-)




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



iXBT BRAND 2016

«iXBT Brand 2016» — Выбор читателей в номинации «Процессоры (CPU)»:
Подробнее с условиями участия в розыгрыше можно ознакомиться здесь. Текущие результаты опроса доступны тут.

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

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

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