HSP - ШАГ К СОЗДАНИЮ ПРОГРАММНЫХ СРЕДСТВ СВЯЗИ
ПЕРВАЯ ЛАСТОЧКА
КАК ЭТО ДЕЛАЕТСЯ

Откуда ждать помощи


Давний спор о том, что лучше - специализированный процессор (т. е. hardware) или специализированное программное обеспечение (software), - принимает новый оборот. В него включаются поставщики модемов и другого оборудования для передачи данных. В результате на рынке появляются невиданные продукты, а специалисты начинают говорить о возникновении совершенно новых средств связи.

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

Этой темы мы уже касались некоторое время тому назад (см. "Как упаковать голос, или Вперед, к коммутации пакетов" (Сети, 1996 г., # 8). Сегодня мы собираемся подойти к проблеме отсутствия универсального способа обмена информацией с несколько другой стороны. Как известно, для доступа в сеть необходимо интерфейсное устройство: оно преобразует сигналы, используемые для представления информации внутри компьютера, в сигналы, которые можно передавать по сети. Наиболее распространенным интерфейсом такого рода является обычный телефонный модем. Современные модемы - это сложные устройства, в которых, как правило, используются процессоры цифровой обработки сигналов (DSP). Именно они выполняют операции, связанные со сжатием информации, преобразованием ее в последовательность тонов разной частоты, передаваемых по телефонным линиям, а также обратные процедуры. Все эти манипуляции совершаются без участия ЦП.

Бесспорными преимуществами такого подхода являются высокая скорость обмена информацией даже между маломощными компьютерами, и, с падением цен на DSP, относительно невысокая стоимость его реализации. Недостатки тоже вполне очевидны - ограниченная гибкость и довольно быстрое старение. Каждое аппаратное решение обычно может работать только с каким-то одним интерфейсом; существуют, правда, устройства, рассчитанные на обслуживание линий разных типов, однако такая универсальность обеспечивается отнюдь не бесплатно. Что касается старения, то вспомним, как еще совсем недавно нам вполне хватало модемов на 9600 Кбит/с, а теперь уже скорости меньше 28 800 Кбит/с считаются низкими и вот-вот на рынке появятся модемы на 56 Кбит/с; замена же устройств на более новые, скоростные, решения тоже обходится недешево. Все это обусловило возникновение идеи по передаче ЦП части функций, связанных с обработкой сигналов (или всех таких функций).

HSP - ШАГ К СОЗДАНИЮ ПРОГРАММНЫХ СРЕДСТВ СВЯЗИ

Бурное развитие средств связи (увеличение их мощности и пропускной способности, появление самых разнообразных устройств) совпало по времени с резким ростом быстродействия и объема оперативной памяти ПК. Передав обработку сигнала ЦП и оставив на плате расширения только цепи интерфейса с линиями связи, можно решить сразу несколько задач. Этот подход, получивший название HSP (host signal processing), имеет ряд преимуществ перед DSP.

Во-первых, можно заметно снизить стоимость коммуникационных средств - несколько забегая вперед, скажем, что недавно появившийся программный модем (soft modem) компании Motorola на 33.6 Кбит/с стоит около 20 дол. Конечно, снижение цены достигнуто за счет использования вычислительных ресурсов мощных - а следовательно, и дорогих - компьютеров, на которые устанавливаются такие модемы. Однако если на столе уже стоит ПК с Pentium-150, то имеет смысл применять программный модем, а не аппаратный, который во много раз дороже.

Во-вторых, что, даже более важно, возникает принципиальная возможность создания универсальной интерфейсной платы, которая, по существу, будет обеспечивать только физическое подключение сетевых проводов к компьютеру. Вставив ее, например, в переносной компьютер (с необходимым ПО), человек сможет перемещаться из одного места в другое, не беспокоясь о том, как именно решен вопрос подключения к сети там, куда он направляется. Чтобы начать работать, достаточно будет просто выбрать соответствующую опцию в меню программы. Речь, собственно, идет о едином "порте коммуникаций", который можно будет настраивать в соответствии с текущими потребностями пользователя.

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

ПЕРВАЯ ЛАСТОЧКА

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

Сначала в модемах появились DSP. Программы, предназначенные для выполнения этими процессорами, можно было "зашивать" в ППЗУ, что сразу же развязало руки разработчикам новых версий аппаратного обеспечения. Теперь для внесения изменений в работу модема и даже для оснащения его новыми функциями достаточно было заменить ППЗУ. Компания Digicom Systems сделала следующий шаг по этому пути, предложив записывать коды программ для DSP на жестком диске компьютера и помещать их в оперативную память DSP во время загрузки системы (эта же технология используется, например, в платах для компьютерной телефонии, выпускаемых компанией Dialogic.) При таком подходе вносить различные усовершенствования в работу модема стало еще проще.

Весной прошлого года компания PCtel объявила о выпуске первого модема, основанного на технологии HSP. В этом продукте, получившем название HSP MODEM и работающем на скорости 33,6 Кбит/с, реализованы функции передачи данных, факсимильной информации и речи. Фактически он состоит из трех частей: ПО, загружаемого в ЦП, специализированной интегральной схемы (application-specific integrated circuit - ASIC) и платы, осуществляющей собственно интерфейс с телефонными линиями. Распределение "обязанностей" между элементами этого набора таково: ПО отвечает за цифровую обработку сигналов, коррекцию ошибок и сжатие/декомпрессию данных; на ASIC реализованы устройство генерации битового потока, универсальный асинхронный приемопередатчик (UART), контроллер и память для него; на интерфейсной плате установлена только схема модуляции/демодуляции сигнала.

Несколько позже PCtel обеспечила в HSP MODEM поддержку обмена аудиоинформацией. Специальные модули позволяют осуществлять голосовой обмен со встроенной в компьютер мультмедийной платой средствами Windows. Без такого решения программный модем несколько проигрывал аппаратным с возможностью передачи речи. В планах PCtel - выпуск HSP-модема на 56 Кбит/с. Большие надежды связывает эта компания с MMX (multimedia extension) - мультимедийным расширением набора команд для процессоров фирмы Intel. Предполагается, что использование MMX позволит значительно снизить нагрузку на ЦП, связанную с обслуживанием программного модема (см. врезку "Откуда ждать помощи").

Компания Motorola недавно выпустила программный модем SM34DFV на 33,6 Кбит/с, выполняющий еще больше операций. В сущности, SM34DFV можно считать прообразом того самого порта коммуникаций, о котором говорилось выше. При использовании этого изделия (его блок-схема приведена на рисунке) ЦП занимается всем, что необходимо для передачи информации, в том числе и задачами, для решения которых в продукте HSP MODEM компании PCtel использовалась ASIC-микросхема. В SM34DFV на встраиваемой в компьютер плате расположены только модулятор/демодулятор для связи с телефонной линией, передающий и принимающий буферы и контроллер прерываний.

Этот модем способен передавать и принимать факсимильные сообщения на скоростях от 14,4 до 2,4 Кбит/с, а при наличии звуковой платы - и речь. Он совместим с Windows 95 и поддерживает технологию автоматического распознавания устройств Plug-and-Play. Его можно использовать как автоответчик. SM34DFV автоматически различает голосовое сообщение, передачу факсимильной информации и обмен данными. Минимальные требования к компьютеру при установке такой системы: Pentium-150, 256 Кбайт кэш-памяти второго уровня, Windows 95, оперативная память объемом 8 Мбайт, 2 Мбайт свободного места на диске, звуковая плата с микрофоном и громкоговорителями (если необходима поддержка голосовой связи). Хочется подчеркнуть одно обстоятельство: для работы с такой системой нужен очень мощный процессор, в противном случае программный модем будет сильно "подсаживать" скорость выполнения других приложений.

КАК ЭТО ДЕЛАЕТСЯ

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

Итак, мы сталкиваемся с необходимостью обеспечить выполнение с помощью программного модема некоей задачи, с одной стороны, в реальном времени (что, как правило, требует высокого приоритета соответствующего процесса), а с другой стороны, с минимальным замедлением работы других задач (что, как правило, достигается присвоением такому процессу низкого приоритета). Каким же образом удается добиться того, чтобы данные не терялись, даже если, запустив передачу длинного файла через модем, пользователь решил сыграть в DOOM? Разработчики ПО имеют несколько путей для достижения цели: надо правильно распределить нагрузку между процессором и аппаратной частью, принять все возможные меры для оптимизации программы, обеспечить работу в режиме реального времени под Windows и правильно настроить программу на использование кэш-памяти.

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

  • чем больше функций отдано ЦП, тем выше гибкость системы и тем ближе мы к достижению заветной цели создания единого порта коммуникаций;
  • чем выше быстродействие процессора, тем больше функций может быть ему передано без ущерба для скорости исполнения приложений (и именно поэтому все с нетерпением ждут широкого распространения MMX-процессоров);
  • чем менее критичны к времени исполнения пользовательские приложения, тем, опять-таки, больше функций можно "взвалить" на ЦП.
  • Как, правило, нагрузка на ЦП может быть снижена использованием дополнительных объемов оперативной памяти. Например, при непрерывном потоке данных можно не обрабатывать каждый фрагмент непосредственно после его поступления, а завести буфер в оперативной памяти и "складывать" в него все поступающие фрагменты, ожидая, пока ЦП освободится, чтобы ими заняться. Такой программный буфер отличается от аппаратного, с одной стороны, тем, что для помещения в него данных ЦП все-таки приходится выполнять какие-то действия, а с другой стороны, достаточно большим объемом (т. е. ждать, пока процессор освободится, можно довольно долго). Другой прием состоит в хранении результатов часто повторяемых вычислений в виде таблиц, из которых эти данные можно извлекать по мере необходимости.

    Еще одна проблема - обеспечение надежной обработки прерываний. Чтобы полностью передать обработку сигнала ЦП (а именно в этом и состоит идея HSP-технологии), необходимо, в принципе, отказаться от использования аппаратных буферов. Для этого надо, чтобы каждый прибывающий бит вызывал прерывание, которое бы успевало обрабатываться до прихода следующего бита. К сожалению, в Windows 95 это невозможно. Известно, что задержки обслуживания прерываний в Pentium-системах с Windows 95 могут составлять десятки микросекунд; в некоторых случаях, например при открытии окна DOS-приложения, задержка может возрастать даже до 12 мс (напомним, что при скорости обмена данными 33,6 Кбит/с передача одного бита происходит примерно каждые 30 мкс; при скорости 56 Кбит/с интервал между битами еще короче). Можно обойти проблемы, связанные с задержками обслуживания прерываний, отправляя получаемые фрагменты данных в аппаратный буфер и обслуживая впоследствии несколько фрагментов данных на одном прерывании. В результате удастся несколько "проредить" прерывания, подстраивая их частоту под задержки обслуживания. Тем самым будут снижены и накладные расходы на их обработку. Тем не менее нельзя не признать, что при использовании аппаратных буферов трудно говорить о последовательной реализации идеологии HSP. Впрочем, предлагаемые Microsoft новшества позволяют надеяться, что в будущем описанную проблему удастся решить.

    Наконец, построить нормально работающую HSP-систему можно благодаря правильному использованию системного кэша. Желательно, чтобы программа, требующая быстрого исполнения, постоянно находилась в кэше первого уровня (в противном случае можно потерять много времени на подгрузку кода из кэша второго уровня или оперативной памяти компьютера). Для этого размер часто исполняемых фрагментов кода не должен превышать размера кэша первого уровня, а именно 16 Кбайт. Если полный размер соответствующего фрагмента кода превышает это значение, фрагмент делят на блоки таким образом, чтобы выходные параметры предыдущего блока служили входными параметрами последующего. В крайнем случае задействуется и кэш второго уровня. Именно поэтому в требования к системе входит необходимый объем кэш-памяти.

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


    Александр Крейнес - научный сотрудник Института кристаллографии РАН. С ним можно связаться через Internet по адресу kreines@radio-msu.net.

    Откуда ждать помощи

    С появлением новых технологий можно ожидать дальнейшего роста возможностей обработки сигналов с помощью ЦП. По мнению многих специалистов, наиболее перспективными являются технология MMX, предложенная компанией Intel, и архитектура Win32 Driver Model (WDM), разработанная Microsoft.

    Технология MMX призвана расширить возможности процессоров Pentium в области цифровой обработки сигналов. При этом можно ожидать значительного ускорения (по ряду показателей - в два-четыре раза) выполнения различных мультимедийных приложений (в частности, обработки видео- и аудиоинформации) и характерных задач, связанных с поддержанием работы программных модемов. Идея технологии MMX состоит в сокращении числа циклов процессора, требуемых на выполнение операций обработки сигнала. Кроме того, к базовому набору команд процессора добавится 57 новых команд, специально рассчитанных на обработку сигналов. Ожидается, что новая технология получит широкое распространение уже в 1997 г., и тогда ЦП можно будет перепоручить многие функции, которые сейчас выполняет DSP.

    Технология WDM обеспечивает работу нескольких разных драйверов с одним и тем же оборудованием. Легко увидеть, что это - первое приближение к коммуникационному порту, который позволит выбирать необходимый драйвер в зависимости от того, к какой системе необходимо подключиться. Появление WDM также дает надежду на снижение задержек обслуживания прерываний. По данным Microsoft, задержки обработки прерываний при использовании WDM могут снизиться до величин порядка единиц микросекунд. В новой архитектуре будет насчитываться 32 уровня прерываний, 16 из которых специально предназначены для работы с приложениями реального времени.

    Поделитесь материалом с коллегами и друзьями