Реклама:

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

Мультимедиа-процессоры Nexiperia

Область обработки мультимедийной информации, значимость которой непрерывно возрастает, мы изучим на примере процессоров Nexiperia производства компании Philips - это семейство микросхем для различных тактовых частот. Nexiperia представляет собой отдельный однокристальный гетерогенный мультипроцессор (см., например, процессор на рис. 8.9). Он содержит несколько ядер, включая управляющий VLIW-процессор TriMedia, и отдельные ядра для обработки изображений, звука и видео, а также для сетевых операций. Nexiperia может использоваться и как самостоятельный центральный процессор для CD-, DVD-, МРЗ-плеера, телеприемника, фото или видеокамеры, и т. д. Кроме того, он может играть роль сопроцессора, предназначенного для обработки изображений и мультимедиа-потоков в составе персонального компьютера. В любой конфигурации процессор Nexiperia работает под управлением собственной миниатюрной ОС реального времени.

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

Все поступающие данные сначала сохраняются в памяти для обработки, то есть между источниками и приемниками информации нет непосредственного соединения. Под захватом входных данных подразумевается декодирование видео различных размеров и форматов (включая MPEG-1, MPEG-2 и MPEG-4) и аудио (включая ААС, Dolby и МРЗ), а также сохранение декодированных данных в виде соответствующих структур в памяти для последующего вывода и обработки. Входные данные могут поступать с шины PCI, из сети Ethernet или через специальный вход (когда микрофон или стереосистема подключается непосредственно к микросхеме). На микросхеме Nexiperia 456 выводов, некоторые из которых позволяют непосредственно принимать и передавать мультимедийные (и другие) потоки.

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

В функции вывода входят преобразование структур данных в форму, пригодную для принимающих устройств, объединение нескольких источников данных (видео, аудио, изображения, двухмерная графика), управление выходными устройствами. Как и ввод данных, вывод может осуществляться через шину PCI, сеть Ethernet или по отдельным проводам (подсоединенным, например, к колонкам или усилителю).

Блок-схема процессора PNX 1500 из семейства Nexiperia приведена на рис. 8.14. Другие процессоры этого семейства слегка отличаются, поэтому в дальнейшем под именем Nexiperia мы будем понимать именно процессор PNX 1500. У процессора PNX 1500 есть четыре основные секции, отвечающие за управление, ввод, обработку и вывод. Роль центрального процессора играет 32-разрядный VLIW-процессор TriMedia, работающий на частоте 300 МГц. Функциональность процессора определяет программа, написанная обычно на С или С++.

Если не считать двух кэшей в центральном процессоре TriMedia, на микросхеме Nexiperia нет памяти. Вместо этого имеется интерфейс для подключения от 8 до 256 Мбайт памяти DDR SDRAM - вполне обычной памяти для мультимедиа-приложений. На тактовой частоте 200 МГц пропускная способность памяти составляет 1,6 Гбит/с.

Помимо интерфейса с памятью микросхема оснащена полнофункциональным PCI-интерфейсом на 8, 16 и 32 бит и частоте 33 МГц. При работе в качестве основного процессора внутри электронного устройства PCI-интерфейс может играть роль арбитра шины. Этот интерфейс может быть использован, например, для взаимодействия с DVD-приводом.

Возможность непосредственного подключения к сети Ethernet обеспечивается выделенным ядром, обслуживающим Ethernet-соединения с скоростями 10 и 100 Мбит/с. Соответственно, видеокамера, построенная на базе процессора Nexiperia, может напрямую транслировать цифровой видеопоток через Ethernet на удаленное устройство записи или вывода видео.

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

Мультимедиа-процессоры

Рис. 8.14. Гетерогенный однокристальный мультипроцессор Ыех1репа

Ядро управляется кварцевым генератором с частотой 27 МГц, которая умножается на 64 и дает сигнал на частоте 1,728 ГГц, использующийся везде в процессоре. Обычно центральный процессор работает на полной скорости, а остальные компоненты - на той скорости, которая необходима им для решения своих задач. Для экономии электроэнергии предусмотрена возможность снижения частоты. Кроме того, имеется режим сна, в котором отключаются большинство функций - это позволяет экономить заряд батарей в мобильных устройствах при простое.

В этом ядре имеются также 16 "семафоров", которые могут применяться для синхронизации устройств. Когда семафору, имеющему нулевое значение, ядро присваивает ненулевое число, запись завершается успешно, иначе запись не удается, и остается неизменным старое значение семафора. Запись нуля всегда происходит успешно. Так как в каждый момент времени только одно из ядер может задействовать шину, операции записи являются атомарными, а семафоры предоставляют все, что необходимо для исключения возможности одновременного использования шины несколькими ядрами. Чтобы получить доступ к ресурсу, ядро пытается записать ненулевое значение в определенный семафор. Если запись удалась, то ядро захватывает доступ к устройству, для освобождения которого в семафор записывается нуль. Если захватить устройство не удалось, ядро периодически повторяет попытки. Таким образом, эти семафоры несколько отличаются от классических семафоров, рассматриваемых в главе 6.

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

Ядро базового входа позволяет захватывать неструктурированные 32-разрядные данные, полученные из произвольного источника, и сохранять их в памяти SDRAM. Частота шины при этом составляет 100 МГц. Кроме того, ядро может захватывать структурированные данные с метками, обозначающими границы записей. Маршрутизатор, предшествующий двум ядрам видеовхода, разделяет входной сигнал и, кроме того, может осуществлять некоторые преобразования видеосигнала "на лету". Разделение требуется потому, что одни и те же внешние контакты используются и для видеовхода, и для базового входа.

Ядро аудиовхода способно захватывать до 8 каналов стерео-музыки или голоса с точностью оцифровки 8, 16 или 32 бит и частотой до 96 КГц, и сохранять аудиоданные в памяти SDRAM. Кроме того, ядро может перед сохранением аудиоданных "на лету" выполнять декомпрессию сжатых форматов, смешивать каналы, менять частоту дискретизации и применять фильтры.

Ядро цифрового входа SP позволяет получать цифровой аудиосигнал, соответствующий стандартам Sony-Philips (IEC 1937). Цифровой аудиосигнал можно передавать от одного устройства к другому без потери качества.

Обычно после того, как аудио-, видео- или любые другие данные получены, их необходимо обработать, за что и отвечает следующая секция процессора. Для защиты от копирования DVD-фильмы шифруются. DVD-дешифратор выполняет дешифрирование, чтобы получить исходное видео в формате MPEG-2. Дешифрирование является операцией типа память-память, когда входные данные поступают из одного буфера, а результат записывается в другой.

Декодер длины продолжает начатое предыдущим ядром декодирование, позволяя избавиться от последствий кодирования с переменной длиной слова, характерного для формата MPEG-2 (и MPEG-1). В результате удается получить наполовину распакованные данные, которые затем передаются ядру обработки формата MPEG (в TriMedia оно реализовано программно), где происходит окончательное декодирование. Причина такого разделения в том, что процесс декодирования с переменной длиной слова (основанный на декодировании Хаффмана и групповом декодировании) не слишком эффективно использует возможности TriMedia, поэтому было сочтено разумным потратить несколько квадратных миллиметров кремния на аппаратную реализацию этого алгоритма. В результате эти две операции позволяют получить в памяти полную пиксельную карту.

Пиксельная карта может быть представлена в одном из трех основных форматов, каждый из которых имеет три или четыре варианта, различающиеся параметрами. В первом формате, который называется индексированным цветом, используется кодовая таблица цветов (Color Look Up Table, CLUT). Непосредственно в этой таблице хранятся 24-разрядные значения цветов, дополненные 8-разрядной маской альфа-канала. В формате RGB, в котором работает монитор, отдельно указываются интенсивности каналов красного, зеленого и синего цветов. Формат YUV соответствует способу кодирования телевизионных сигналов. В этом формате, вместо того чтобы непосредственно кодировать красную, зеленую и синюю составляющие, в камере делается преобразование, дающее в результате один канал яркости и два канала цветности. Система позволяет выделять под канал яркости большую часть полосы пропускания, что дает лучшую устойчивость к шумам при передаче. Формат YUV имеет смысл применять в приложениях, имеющих отношение к телевидению и телевизионному сигналу. Благодаря тому, что изображение представляется только в нескольких форматах с их вариантами, каждое из ядер процессора "понимает" результаты работы других ядер.

Ядро масштабирования видео с максимальной скоростью 120 млн пикселов в секунду получает и выполняет задания по масштабированию, среди которых можно отметить:

♦ устранение эффекта "гребенки";

♦ горизонтальное и вертикальное масштабирование;

♦ линейное и нелинейное лреобразование размера кадра;

♦ преобразования между разными цветовыми форматами;

♦ построение гистограммы яркости;

♦ устранение мерцания.

В широковещательном телевидении имеет место так называемый эффект "гребенки", возникающий при оцифровке аналогового телевизионного сигнала, когда для каждого кадра, состоящего из 525 строк (625 для форматов PAL и SECAM), сначала передаются все четные строки, а потом - все нечетные. После устранения эффекта "гребенки" получается более качественное изображение с прогрессивной разверткой (progressive scan), когда строки передаются или обрабатываются в их истинном порядке, а частота обновления кадров вдвое больше (29,97 кадров в секунду для NTSC и 25 кадров в секунду для PAL и SECAM), чем при чресстрочной развертке (interlaced scan). Путем горизонтального и вертикального масштабирования можно уменьшать или увеличивать размер изображения, возможно, после обрезки. В стандартном телевидении используется кадр с отношением ширина/высота, равным 4/3, а для широкоэкранного телевидения это отношение равно 16/9, что лучше соответствует отношению 3/2, характерному для кадра 35-миллиметровой кинопленки. Ядро масштабирования позволяет менять формат кадра по линейному или нелинейному алгоритму. Кроме того, оно может преобразовывать друг в друга разные форматы представления цвета (индексированные цвета, RGB и YUV), а также строить гистограмму яркости, которая может быть полезной для повышения качества изображения на выходе. Наконец, могут выполняться определенные преобразования для устранения мерцания.

Ядро обработки графики строит изображения двухмерных объектов по их описаниям. Кроме того, оно может заполнять цветом замкнутые области и выполнять графические операции поблочной пересылки данных (bitblt), которые сводятся к тому, что соответствующие пиксельные карты объединяются с помощью функций AND, OR, XOR или других булевых функций.

Отдельных ядер для обработки аудиоданных нет. Для хранения звука требуется так мало данных, что они вполне могут обрабатываться программно, что и происходит в центральном процессоре TriMedia. Кроме того, во многих приложениях обрабатывать звук вообще не требуется, за исключением, возможно, изменений формата.

Ядро отладки призвано помочь разработчикам отлаживать программное и аппаратное обеспечение процессора. Это ядро предоставляет интерфейс для средств JTAG (Joint Test Action Group - объединенная рабочая группа по автоматизации тестирования), как определено в стандарте IEEE 1149.1.

Секция вывода отвечает за считывание обработанных данных из памяти и их вывод. Ядро композитного видеосигнала нормализует и смешивает перед выводом одну или несколько пиксельных структур данных. Индексированные цвета "деиндексируются" в реальные пикселы "на лету", а для несовместимых форматов ядро композитного видеосигнала выполняет предварительное преобразование. Кроме того, это ядро при необходимости производит коррекцию яркости и контрастности, поддерживает функцию хроматического ключа, когда изображение актера, снимающегося на однородном синем фоне, затем отделяется от фона и помещается поверх сцены, взятой из другого источника. Аналогичным образом можно создавать анимацию, в которой анимированный персонаж на переднем плане двигается поверх неподвижного или равномерно прокручивающегося фона. Окончательный результат работы ядра, конечно же, преобразуется в требуемый видео или телевизионный формат (NTSC, PAL или SECAM), содержащий, в том числе, вертикальные и горизонтальные синхроимпульсы.

Ожидается, что большинство систем, создаваемых на базе процессора Nexi-peria, смогут автоматически распознавать все три телевизионных формата, так как для этого не требуется никаких дополнительных затрат, и устройства можно будет без изменений продавать по всему миру. Аналогично, поддержка телевидения высокой четкости (High Definition Television, HDTV) требует всего лишь незначительного усложнения программного кода, который должен преобразовывать видеоданные в структуры памяти и обратно.

Ядро базового выхода выполняет только передачу данных по 8, 16 или 32 бит за цикл с частотой 100 МГц, что дает максимальную пропускную способность в 3,2 Гбит/с. Подключив выход одного процессора Nexiperia ко входу другого, можно передавать между ними файлы со скоростью большей, чем позволяет Gigabit Ethernet (1 Гбит/с). Кроме того, на этом интерфейсе центральный процессор может программно формировать любые необходимые сигналы.

Выходной маршрутизатор определяет, выход какого из двух ядер должен выводиться на контакты процессора, а также может выполнять некоторые дополнительные действия. Среди них обновление с частотой 60 Гц TFT-панелей, имеющих разрешение до 1280 х 760 пикселов, а также телевизионных изображений с чересстрочной или прогрессивной разверткой.

Ядро аудиовыхода может генерировать до 8 стереоканалов звука с точностью до 32 бит и частотой дискретизации до 96 кГц. Обычно этот выход управляет внешним цифроаналоговым преобразователем. Цифровой выход SP может подключаться к устройствам, поддерживающим стандарт цифрового звука Sony-Philips.

Последнее оставшееся ядро отвечает за ввод и вывод сигналов общего назначения. 16 контактов этого ядра можно использовать по любому назначению, например, их можно соединять с кнопками, переключателями, светодиодами и программно с ними работать. Кроме того, эти контакты можно использовать для среднескоростных (20 Мбайт/с) программно управляемых сетевых протоколов. Также в этом ядре есть разнообразные таймеры, счетчики и обработчики событий.

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

Сетевые процессоры || Оглавление || Криптопроцессоры