Технология модемов HSP

Back Оглавление

HSP - шаг к созданию программных средств связи.

В обычных модемах операции обмена совершаются без участия ЦП. Преимуществами такого подхода являются высокая скорость обмена информацией даже между маломощными компьютерами, и, с падением цен на DSP, относительно невысокая стоимость его реализации. Недостатки: ограниченная гибкость и довольно быстрое старение. Это обусловило возникновение идеи по передаче ЦП части функций, связанных с обработкой сигналов (или всех таких функций).
Передав обработку сигнала ЦП и оставив на плате расширения только цепи интерфейса с линиями связи, можно решить сразу несколько задач. Этот подход, получивший название HSP (host signal processing), имеет ряд преимуществ перед DSP:
Полный переход на обработку сигналов средствами ЦП - вполне закономерный шаг в рамках общей тенденции обеспечения максимальной гибкости, которая явственно прослеживается на всем протяжении развития технологии модемов. Сначала в модемах появились DSP. Программы, предназначенные для выполнения этими процессорами, можно было "зашивать" в ППЗУ. Теперь для внесения изменений в работу модема и даже для оснащения его новыми функциями достаточно было заменить ППЗУ. Компания Digicom Systems сделала следующий шаг по этому пути, предложив записывать коды программ для DSP на жестком диске компьютера и помещать их в оперативную память DSP во время загрузки системы.
Компания Motorola разработала программный модем SM34DFV на 33,6 Кбит/с. SM34DFV можно считать прообразом того самого порта коммуникаций, о котором говорилось выше. При использовании этого изделия ЦП занимается всем, что необходимо для передачи информации. В SM34DFV на встраиваемой в компьютер плате расположены только модулятор/демодулятор для связи с телефонной линией, передающий и принимающий буферы и контроллер прерываний.
Этот модем способен передавать и принимать факсимильные сообщения на скоростях до 33,6 Кбит/с, а при наличии звуковой платы - и речь. Он совместим с Windows 95/98 и поддерживает технологию автоматического распознавания устройств Plug-and-Play. Его можно использовать как автоответчик. SM34DFV автоматически различает голосовое сообщение, передачу факсимильной информации и обмен данными. Минимальные требования к компьютеру при установке такой системы: Pentium-150, 256 Кбайт кэш-памяти второго уровня, Windows 95/98, оперативная память объемом 8 Мбайт, 2 Мбайт свободного места на диске, звуковая плата с микрофоном и громкоговорителями (если необходима поддержка голосовой связи). Хочется подчеркнуть одно обстоятельство: для работы с такой системой нужен очень мощный процессор, в противном случае программный модем будет сильно "подсаживать" скорость выполнения других приложений.

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

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

Prev Предыдущий Next Следующий
Hosted by uCoz