Azalia: спой, светик, не стыдись
АрхивК азалии (azalea) — красивому растению семейства вересковых — интеловская Azalia не имеет никакого отношения. Все гораздо прозаичнее. Подобно AC’97, это спецификация PC-аудиоустройства, состоящего из цифрового контроллера, кодека и связывающего их интерфейса (линка).
Помимо производства процессоров Intel активно занимается и разработкой инфраструктуры для успешной работы этих самых процессоров.
Давно прошли те времена, когда фирма выбрасывала на рынок «голый» чип, а сторонние фирмы и организации, вроде IBM или VESA, создавали чипсеты и шины для функционирования компьютеров на базе нового CPU. По мере того как росли прибыли Intel, ее влияние увеличивалось, и некоторые разработки корпорации, такие как шина PCI, стали общепринятыми промышленными стандартами, определяющими архитектуру компьютеров практически любого уровня производительности на годы вперед.
Одной из самых удачных разработок Intel по праву может считаться кодек AC’97 — пожалуй, наиболее распространенное решение для интегрированного PC-звука. Фактически принятие AC’97 индустрией привело к повсеместному появлению звука в офисных компьютерах, бывших до этого в большинстве своем «безголосыми». Одна из причин «любви» производителей материнских плат к AC’97 — возможность сэкономить на цифровом контроллере, поскольку все операции над цифровым звуком можно выполнять программно (то есть средствами CPU). К слову сказать, отвратительное качество звучания AC’97 на многих материнских платах — следствие использования производителями дешевых кодеков, а вовсе не внутренняя порочность AC’97. В действительности он позволяет использовать полноценный аппаратный контроллер, и немало звуковых карт оснащены кодеками AC’97 (например, Creative Audigy), о чем пользователи часто не подозревают. Но время идет, разработки устаревают, и AC’97 уже не справляется с растущими требованиями: 24-битный звук, выход на восемь колонок — все это лежит за пределами его возможностей. Создатели дешевых аудиочипов мастерят иногда довольно причудливые контроллеры, улучшающие характеристики стандартного AC’97, — например, VIA Envy24PT; разработчики звуковых решений более высокого класса, вроде Creative, полагаются на шину I2S и мощные DSP. В общем, налицо разброд, шатание и отсутствие единой организующей силы. Тем временем в Intel полным ходом идет работа над PC-аудио нового поколения, которое должно сменить AC’97. Я говорю об Azalia.
Что в имени тебе моем?
К азалии (azalea) — красивому растению семейства вересковых — интеловская Azalia не имеет никакого отношения. Все гораздо прозаичнее. Подобно AC’97, это спецификация PC-аудиоустройства, состоящего из цифрового контроллера, кодека и связывающего их интерфейса (линка). Контроллер обрабатывает цифровой звук — осуществляет 3D-позиционирование, микширование и т. д.; кроме того, он связан с шиной компьютера для чтения/записи цифрового звука из памяти. Кодек преобразует цифровой сигнал в аналоговый и обратно. Линк связывает эти два важнейших блока, по нему происходит передача цифровых аудиоданных. Так работает любое современное устройство, которое хотя бы условно можно назвать звуковой картой (на одном полюсе расположены внешние устройства типа Extigy, на другом — встроенные в системную плату «кодеки», где контроллер предельно упрощен и интегрирован в чипсет). Спецификация будет описывать контроллер, кодек и линк; дополнительно Intel обещает предоставить примеры реализации аудиосистемы Azalia. В целом Azalia можно воспринимать как улучшенный AC’97, и сейчас мы рассмотрим основные особенности новой платформы.
Драйверы и совместимость
Шесть лет назад ради гибкости AC’97 пришлось пожертвовать совместимостью. Разные устройства AC’97 по-разному работают с памятью, поэтому написать единый драйвер практически невозможно. Распространенная ситуация: новая материнская плата, в руководстве ни слова не говорится об используемом кодеке, и диск с 20–30 драйверами, из которых надо выбрать нужный. Ясно, что AC’97 нельзя назвать дружественным пользователю. Интересно, что лет десять назад такой проблемы не существовало — почти любая звуковая карта за небольшими исключениями была аппаратно совместима с Adlib или Sound Blaster (Pro, 16) — но с приходом PCI- и AC’97-звука первоначальное единство было утрачено.
Так вот, Intel вместе с Microsoft обещают решить эту проблему. Стандарт Azalia будет включать в себя очень подробное описание работы контроллера вплоть до способа реализации DMA, поэтому станет возможным создание универсального драйвера, работающего с любым Azalia-устройством. Microsoft разрабатывает единую платформу Universal Audio Architecture (UAA, универсальная аудиоархитектура) для всех звуковых устройств Azalia, а также устройств, подключаемых к шинам USB и IEEE1394. Будущая версия Windows — Longhorn — сможет самостоятельно распознавать эти три типа и обеспечивать их работу без сторонних драйверов. Правда, речь идет лишь о базовой функциональности — то есть услышать звук из колонок можно будет сразу после установки Windows, а вот чтобы поиграть в игру с поддержкой последней версии EAX, придется устанавливать драйверы.
Кодек и линк
Кодек AC’97 не годится для современных аудиоприложений — предельный поддерживаемый размер сэмпла равен 20 битам. Учитывая, что максимальная разрядность звука DVD-Audio и DVD-Video составляет 24 бит, AC’97 автоматически выбывает из игры. Конечно же, разработчики Azalia предусмотрели поддержку и 24-битного звука, и частоты дискретизации до 192 кГц, чего теоретически достаточно даже для профессиональных звуковых карт. Здесь Azalia конкурирует с шиной I2S. Вероятно, через некоторое время она сильно потеснит I2S в звуковых картах для массового рынка (уровня Audigy/Audigy2). Конкретно, линк Azalia обладает пропускной способностью 48 Mбит/с в SDO-режиме (выход) и 24 Мбит/с в SDI-режиме (вход), что позволяет поддерживать самый «прожорливый» режим: восемь каналов (7.1), 24 бит, 192 кГц — плюс модемный и телефонный выходы (16 бит, 48 кГц). Суммарно устройства Azalia могут поддерживать до пятнадцати каналов. Обидно, но записывать звук с качеством 24 бит не удастся — полосы пропускания 24 Мбит/с (реально доступно около 13 Мбит/с) не хватит. Явно сказывается ориентированность Azalia на массовый рынок, так что создать карту уровня Lynx AES16 (16 каналов, 24 бит 192 кГц, $695) с ее помощью не получится. Впрочем, Intel не исключает, что со временем полоса пропускания может быть увеличена. Конечно, при желании разработчик может не использовать все возможности Azalia, а ограничиться поддержкой всего двух каналов (стерео). Вероятно, это будет распространенным явлением на многих материнских платах. Далее, кодеки Azalia обладают механизмом конфигурирования типа «запрос-ответ», в отличие от кодеков AC’97, конфигурирующихся через набор регистров. Для хранения запросов и ответов используется кольцевой буфер. Можно будет делать кодеки, рассчитанные на разные сегменты рынка — видимо, не только по качеству, но и по возможностям (например, разрядности и частоте сэмплирования). Таким образом, Azalia предоставляет разработчикам широкие перспективы для создания аудиоподсистем, существенно превосходящих AC’97.
Синхронизация
Надежный механизм синхронизации необходим для современных аудиоустройств, работающих с несколькими звуковыми потоками и выполняющих большой объем вычислений над цифровыми данными. Проблема усугубляется при программной обработке звука — не забывайте, что Windows не является операционной системой реального времени и у программиста нет возможности точно определять временные интервалы для совершения тех или иных действий. Для синхронизации на уровне контроллера в Azalia предусмотрен общий счетчик (времени), работающий, пока активен тактовый генератор. Предусмотрен программный механизм преобразования частоты дискретизации (sample rate conversion, SRC) и средства устранения перекоса сигналов.
Потоки и узлы
«Поток». В русском компьютерном жаргоне, пожалуй, трудно найти слово, которое бы имело так много разных толкований. Intel предлагает очередную трактовку этого термина — как логическое соединение между системной памятью и кодеком (кодеками), обрабатывающим данные. Непонятно? Цифровой звук считывается из определенного буфера в памяти по каналу DMA, преобразуется в контроллере и далее по линку направляется в кодек. Данные как бы «льются потоком» из памяти через различные устройства к кодеку. Все это вместе и определяет поток (stream). Потоки полностью независимы, каждый может обладать собственной разрядностью звука и частотой дискретизации. Узел (node) — это любой непосредственно адресуемый объект. Обычно узлы выполняют ту или иную строго определенную функцию — допустим, узлом может быть кодек, или часть кодека, или какой-то блок обработки цифровых данных. Узел содержит параметры, доступные только для чтения, но его состояние можно изменить посредством управляющих сигналов. Если вы занимались программированием, эти концепции наверняка покажутся вам знакомыми. В общем, все это призвано повысить уровень абстракции и упростить разработку устройств.
Зачем это нужно?
В целом Azalia производит очень благоприятное впечатление. Помимо поддержки современных звуковых стандартов, разработчикам предлагается готовая к использованию, мощная аппаратно-программная платформа. Поддержка Microsoft также имеет немаловажное значение. Специалисты Intel полагают, что к 2006 году Azalia-совместимые звуковые устройства займут более 90% рынка, превзойдя успех AC’97. Весьма вероятно, что так и случится; во всяком случае, есть все предпосылки для широкого применения Azalia. Какие? Стандарты, подобные AC’97 или Azalia, упрощают разработку устройств, унифицируют аппаратные и программные интерфейсы. Детально описанная программная модель упрощает написание драйверов. Благодаря совместимости можно создавать устройства из компонентов, выпущенных разными производителями и рассчитанных на разные сегменты рынка. Очень важно, что за использование Azalia не нужно платить лицензионные отчисления. Совокупность этих факторов позволяет сократить время разработки и снизить конечную цену продукции. Важно понимать, что в рамках Azalia можно сделать как сверхдешевую карточку ценой $6 с соответствующим «какчеством» звука, так и изделия уровня Audigy2, а потенциально даже гораздо выше — многое зависит от используемых кодеков и разводки аналоговых цепей. В то же время, с точки зрения пользователя, Azalia не дает ничего принципиально нового — уже довольно давно карты ценой менее $100 обеспечивают 24-битный многоканальный звук весьма неплохого качества. Так что ждать почти год, пока первые Azalia-совместимые устройства появятся в продаже, совсем не обязательно.