УДК 681.325.5-184.4 МИКРОПРОЦЕССОРНЫЕ КОДЕКИ В СИСТЕМАХ СВЯЗИ
Г.А. Петров1
Санкт-Петербургский государственный университет сервиса и экономики (СПбГУСЭ),
191015, Санкт-Петербург, ул.Кавалергардская, 7
Аннотация - В статье рассматриваются вопросы организации структур микропроцессорных кодирующих и декодирующих устройств c функциональными расширителями, называемых кодеками, для обнаружения и исправления ошибок в системах связи
Ключевые слова: кодек; помехоустойчивый код; кодовое слово; функциональные расширители; распределенная микропроцессорная система.
MICROPROCESSOR CODECS IN A COMMUNICATION SYSTEM
G.A.Petrov
St.-Petersburg state university of service and economy (SPbSUSE), 191015, St.-Petersburg, streetKavalergardsky, 7 The summary - The article deals with the organization structure of microprocessor encoders and decoders c functional extenders, called codecs, for detecting and correcting errors in communication systems
Keywords: codec; noiseless code; code word; functional extenders; distributed microprocessor
system
В настоящее время в связи с возросшими объёмами передаваемой и хранимой информации в системах хранения и обработки информации одной из важнейших задач является повышение требований к защите передаваемых данных. Одним из распространенных подходов к решению данной задачи является обеспечения достоверности передачи и приёма информации на основе помехоустойчивого кодирования данных. Коды, исправляющие ошибки, нашли применение во многих системах сбора, передачи и хранения данных. Примерами таких систем являются сотовые и спутниковые системы связи, система глобальной морской связи, системы автоматизации технологических процессов, сети сбора информации с датчиков различного назначения, магнитные и оптические и многие другие устройства и системы.
Передача потоков данных в системах связи осуществляется в реальном режиме времени, который определяется скоростью передачи информации. Для пользователя существенное значение имеет достоверность передачи, которая зависит от скорости передачи, типа модема, используемого корректирующего кода. Достоверность характеризуется степенью соответствия принятого сооб-
щения переданному и определяется вероятностью ошибки:
P= Nош /Nобщ,
где: ^,ш- число знаков, принятых неправильно за ^,бщ - общее число знаков, переданных за Дt. Одним из эффективных путей повышения достоверности передачи информации является использование корректирующих кодов (КК), обнаруживающих и исправляющих ошибки. Применение КК позволяет также повысить надежность системы передачи информации в целом. В спутниковых системах связи для борьбы с помехами иногда повышают мощность сигнала, однако это приводит к заметному увеличению стоимости передающей части системы. В этом смысле КК являются также средством снижения необходимой мощности, так как с их помощью можно правильно восстановить полученные сигналы пониженной мощности.
Для кодирования передаваемого сообщения в него вводятся дополнительные избыточные символы, обеспечивающие повышение помехоустойчивости системы передачи-приема информации. Линейный (п^)-код называется циклическим, если циклический сдвиг любого кодового слова также дает кодовое слово. Под кодеком будем понимать программные и ап-
паратные средства, реализующие заданный (п^) - код. Выделим три основных этапа передачи сообщения:
1. задание кода, то есть выбор такого множества кодовых слов, посредством которых будет выполняться передача данных;
2. кодирование, то есть разработка алгоритма и аппаратуры , реализующей алгоритм декодера;
3. декодирование, то есть разработка алгоритма и аппаратуры, реализующей алгоритм декодера.
К корректирующим кодам предъявляются следующие требования:
• коды должны иметь минимально необходимое число проверочных символов (разрядов) для обнаружения или исправления ошибок заданной кратности;
• правила построения кодов должны быть простыми, обеспечивающими построение кодов любой длины, исправляющих ошибки любой кратности;
• переход от кода, обнаруживающего заданную кратность ошибок, к коду, обнаруживающему большую или меньшую кратность ошибок, должен осуществляться несложным изменением схем кодирующих и декодирующих устройств.
В зависимости от назначения системы к кодекам предъявляются дополнительные требования:
• скорость передачи информации V в канале может быть от сотен бит/с до десятков миллионов бит/с;
• ошибки могут быть одиночными, многократными одиночными, одиночными пакетами, многократными пакетами;
• длина блока - от нескольких десятков до десятков тысяч бит; вероятность ошибочного декодирования бита должна быть, по крайней мере, не выше
10-9, кодек должен работать в непрерывном режиме в темпе поступления информации из канала, однако иногда допускается постоянная задержка до десятков длин блоков;
• объем аппаратуры кодека может составлять от десятков до сотен интегральных микросхем различной степени интеграции.
Перечисленным выше требованиям в наибольшей степени удовлетворяют циклические коды, которые являются универсальными, наиболее экономичными и обладают хорошими корректирующими способностями.
Из перечисленных требований к кодекам наиболее важным для разработчика аппаратных и программных средств является обеспечение заданных скоростей приема и передачи информации. Широкий диапазон требований приводит к необходимости рассмотрения ряда подходов к реализации кодеков. Перечислим основные особенности процессов кодирования и декодирования:
• работа в реальном режиме времени;
• выполнение алгебраических операций в полях Галуа ОБ (211);
• блочно-иерархическая структура алгоритмов;
• представление информации в виде множества блоков, каждый из которых обрабатывается по одному и тому же алгоритму;
• возможность изменения алгоритма декодирования в зависимости от интенсивности помех,
Применение того или иного корректирующего кода зависит от типа ошибок. Например, код Хэмминга используется для исправления одиночных ошибок, код БЧХ - для исправления многократных одиночных независимых ошибок, код Файра - для одиночных пакетов ошибок и код РС - для многократных пакетов ошибок. После выбора кода разработчик приступает к технической реализации кодека, реализующего выбранный код. Детально вопросы реализации алгоритмов помехоустойчивого кодирования и декодирования информации, а также организация кодеков на базе микропроцессорных средств рассмотрены в монографии
[1]. Ниже будут рассмотрены принципы организации микропроцессорных кодеков с функциональными расширителями.
Организация микропроцессорных кодеров и декодеров с функциональными расширителями. Используются два основных способа подключения
функциональных расширителей (ФР) к микропроцессору (МП). Первый предполагает подключение ФР к микропроцессору как периферийное устройство, обращение к которому осуществляется посредством команд ввода и вывода информации. Второй способ предполагает подключение ФР в режиме сопроцессора, что позволяет расширить набор команд, форматы данных, увеличить число регистров микропроцессора и скорость выполнения операций. Причем такое расширение функциональных возможностей системы является «прозрачным», так как программист не знает эмулируется ли операция программными средствами или непосредственно выполняется аппаратным способом. Подключение ФР к МП в режиме периферийного устройства, в общем случае требует выполнения следующих функций: .
• адресации ФР и отдельных его элементов, например операционных регистров, регистра состояния ит. д.;
• передачи в ФР операндов, команд, чтения результатов операции;
• настройки ФР на выполняемую операцию;
• формирования расширителем признаков выполнения операций, ошибок и т. л.
Наиболее эффективным способом подключения ФР к МП является использование режима сопроцессора для расширителя. С точки зрения программиста система с такими ФР выглядит как один МП с расширенным набором команд. Когда МП получает команду, которая должна выполняться в ФР, он выбирает соответствующий ФР или настраивает многофункциональный ФР на требуемую операцию. Если нужного ФР в системе нет, то МП будет вырабатывать прерывание, что позволит эмулировать нужную операцию программными средствами. Это дает возможность разрабатывать микропроцессорные системы без аппаратных ФР, вводя их при необходимости и ,тем самым, повышая быстродействие. Другое достоинство подобного способа состоит в том, что при подключении или
исключении ФР из системы не требуется вносить никаких изменений в прикладные программы. Кроме того, повышается надежность за счет дублирования аппаратных и программных средств, реализующих некоторые функции в системе
[2].
Для построения систем с подобными свойствами рассмотрим один из подходов к распределению функций между программными и аппаратными средствами. Данный подход базируется на модульном представлении этих средств. Каждая выделенная функция представляется в виде процедуры (рис. 1), обращение к которой осуществляется, например, по команде CALL As, где As - адрес первой команды подпрограммы (ПП).
Рисунок 1. Передача параметров в ФР
Способы передачи параметров в ПП и ФР, при которых параметры доступны всем обрабатывающим модулям системы, позволяют унифицировать обращение к ПП и ФР. Информация, необходимая ФР для выполнения требуемой функции, представлена в виде дескриптора аппаратно-реализуемых функций (АРФ). Дескриптор содержит метку ПП А^ начальные адреса данных Ае и результата выполнения функции Ая. Кроме того, в дескриптор может входить длина обрабатываемого слова или массива в байтах Ь, код адреса (КА) ФР, код операции (КОП) реализуемой функции и т. д. Поле АS является признаком, в соответствии с которым процессор распределения функций
(ПРФ) запускает программный или аппаратный модуль системы. При наличии метки Аз в дескриптор АРФ происходит загрузка операндов в ФР в режиме прямого доступа к памяти и выполнение требуемой функции. Таким образом, осуществляется «перехват» и передача в ФР тех функций, на эффективную реализацию которых ориентирован ФР и которые в МП реализуются программным путем. При этом функции инвариантны к средствам реализации и МП система рассматривается как однопроцессорная с расширенным набором команд, т. е. остается прозрачной для пользователя. Кроме того, функциональное резервирование в системе повышает ее отказоустойчивость.
В структурах с микропрограммиру-емыми МП подключение ФР осуществляется к общим с МП шинам данных, а управление функционированием ФР реализуется микропрограммно. Для этого в формате микрокоманды выделяется соответствующее поле для каждого ФР и за счет этого расширяется набор микрокоманд. Рассмотрим пример построения микропроцессорной системы с ФР для кодирования и декодирования информации. Структурная схема микропроцессорного кодека с ФР представлена на рис.
2. В ней можно выделить три основных блока: блок процессора (БП), блок оперативной памяти (БОП) и блок микропрограммного управления (БМУ)
Рисунок 2. Структура кодека с функциональными расширителями
Блок процессора включает в себя собственно МП, регистр-счетчик (РгС1) с блоком буферных усилителей (ББУ1), регистры Рг1 - РгЗ с программируемыми логическими матрицами (ПЛМ1-ПЛМЗ), реализующими вычисление компонент синдрома, и ПЗУ, содержащее таблицы преобразования данных. Блок оперативной памяти содержит ОЗУ, регистр-счетчик РгС2 с блоком буферных усилителей ББУ2, ПЗУ адресов перемежения
(ПЗУА), счетчик блоков (СчБ) и сумматор (См), а также входной (Ргвх) и выходной (Ргвых) регистры. Шины данных Б, У - 8-разрядные, шина адреса ОЗУ -
11-разрядная, шина адреса перехода 12разрядная.
Система обеспечивает асинхронный прием и выдачу данных по синхроимпульсам Си1 и Си2, используя механизм прерываний. Входные кодовые символы из регистра Ргвх через шину данных У
записываются в ОЗУ. Один разряд слова в ОЗУ выделяется для записи меток стираний М. Выходные кодовые символы считываются из ОЗУ и через шину данных Б поступают в регистр Ргвых. Таким образом, ввод-вывод данных и все необходимые функции реализуются блоком оперативной памяти без участия блока процессора. Блок управления БМУ имеет внешние входы выбора режима. Это позволяет переключаться с кодирования на декодирование, а также оперативно изменять стратегию декодирования. Кроме того, возможен переход в режим контроля функционирования системы. Все узлы МП-системы функционируют по сигналам с шины управления, вырабатываемым блоком БМУ в соответствии с хранящимися в нем микропрограммами. В формате микрокоманды БМУ выделим поле адреса перехода и поле шины управления. Последнее может быть разделено на ряд подполей: сигналы управления микропроцессором, сигналы управления шинами данных , сигналы синхронизации записи и счета в регистрах и ОЗУ , сигналы управления узлами БМУ.
Микропроцессорные кодеки с перестройкой структуры. Под гибкой перестройкой структуры МП системы будем понимать возможность изменения пользователем логических связей между программными модулями (процедурами) и их аппаратными эквивалентами, реализованными в виде ФОП, без модификации разработанного прикладного и системного программного обеспечения. Определяющие принципы организации МП систем с ГПС:
• наращиваемость вычислительных ресурсов; настраиваемость структуры системы на структуру программы;
• гибкая взаимозаменяемость программных и аппаратных модулей;
• единство программного обеспечения (ПО) семейства систем.
Модульное ПО облегчает разработку, реализацию, тестирование структуры программы, допускает ускорение его создания за счет распараллеливания работ по программированию между несколькими исполнителями, способствует экономии памяти и повышает надежность вычислений. Модульность аппаратных средств способствует стандартизации
элементов и сокращению затрат на построение вычислительных устройств, упрощает наращивание вычислительной мощности и реконфигурацию системы без изменения схем составляющих ее элементов, позволяет создавать семейства МП систем, отличающихся функциональными возможностями и производительностью, увеличивает время морального старения систем. В общем случае на вход программного модуля (ПМ) поступает множество входных параметров Рг ; , которое он преобразует во множество выходных параметров-результатов Рг;° в соответствии со своей функцией.
С принципом расширения структуры тесно связан принцип настраиваемости системы на структуру программы. Для его реализации необходимы специальные средства, а также действия со стороны пользователя системы. Речь идет об устройстве, названном процессором распределения функций (ПРФ) и о реализации программного модуля настройки (ПМН). ПРФ и ПМН позволяют определить для системы требуемый вычислительный ресурс (число ФОП), необходимую логическую структуру связей между ПМ и АМ и, как следствие, требуемую производительность. В соответствии с принципом модульности ПРФ можно считать управляющим аппаратным модулем.
В соответствии с разделением функциональной части системы на совокупности ПМ и АМ и с учетом перечисленных принципов организации предлагается следующая модель структуры распределенной МП системы с ГПС (рис. 3). Модель содержит четыре типа модулей: ПМ (1,...^ ), ПМН, АМ (1,..., М), управляющие АМ - УАМ. В зависимости от требуемых характеристик системы модули ПМ; могут иметь (Х= 1) или не иметь (X =0) аппаратные эквиваленты - АМ; . Программные модули делятся на две группы:
• ПМ, не имеющие аппаратных эквивалентов (обозначаются ПМ );
• ПМ, имеющие аппаратные эквиваленты (обозначаются ПМН ).
На модели показано, что связи между обрабатывающими модулями заданы только для ПМ;, 1=1,..., N и определены структурой программы (алгоритмом решаемой задачи). Первым выполняемым
системой модулем является ПМ; , который предназначен для занесения настроечной информации в УАМ. Основу этой информации составляет сообщение о модулях типа ПМ.
Рисунок 3. Модель функционально-распределенной МПС
В соответствии со структурой программы в системе производятся выборка ПМ; , 1=1,..., N которую отслеживает УАМ. Если очередным модулем является ПМ;, ;=1,..., N. то УАМ осуществляет необходимые действия, в результате которых функция этого модуля выполняется эквивалентным АМ;, ;=1,..., М. В противном случае (модуль типа ПМ; я, ;=1,..., К) функция модуля выполняется программно. Очевидно, что гибкая замена программной реализации функции на ее аппаратную реализацию невозможна без передачи в АМ; вектора параметров Рг;, предназначенного для ПМ;Н ;=1,..., N. При этом предполагается, что в системе имеет место соглашение о едином формате параметров, передаваемых в эквивалентные модули. Построенная модель структуры служит основой для перехода к структурной схеме функционально-
распределенной МП системы с ГПС (рис. 4).
Стандартные соглашения о межпрограммных связях предусматривают единые правила использования некоторых общих регистров МП, правила сохранения и восстановления их содержимого и, как следствие, унификацию обмена па-
раметрами. Принимая стандартные соглашения о связях, пользователь получает возможность объединять свои программы с другими, полученными в результате трансляции. Гибкая перестройка структуры становится возможной только благодаря дублированию функции модуля типа ПМ в поле ФОП. При этом различаются однократное и многократное дублирования. Для последнего характерно наличие нескольких ФОП, реализующих функцию ПМ.
Рисунок 4. Структурная схема функционально-распределенной МПС
К числу основных достоинств и особенностей рассмотренных структур следует отнести: функционально-
распределенное выполнение программ, возможность адаптации структуры к реализуемому вычислительному процессу, достижение требуемой производительности за счет использования ФОП и аппаратной поддержки , организации режима прямого доступа к памяти при передаче параметров между памятью и ФОП.
Список литературы
1.Микропроцессорные кодеры и декодеры/В.М.
Муттер, Г.А.Петров, В.И.Маринкин,
В.С.Степанов.-М.: Радио и связь, - 1991, -184 с.
2.А.с. 1702377 СССР. Устройство для сопряжения центрального процессора с группой арифметических процессоров/ Г.А.Петров, Д.В.Пузанков, Шишкин В.В. - Опубл. 1991, Бюл. № 38.
1Петров Геннадий Алексеевич, к.т.н., доцент, профессор кафедры «Информатика» СПбГУСЭ, тел.:(812) 2745489, моб: +7 906 2564666, e-mail:[email protected]