СПОСОБ АВТОСИНХРОНИЗАЦИИ ПРИЕМА И ОБРАБОТКИ ПОТОКА ДАННЫХ ПО СТАРТОВОМУ СИМВОЛУ И УСТРОЙСТВО ДЛЯ ЕГО ОСУЩЕСТВЛЕНИЯ
METHOD FOR AUTOMATIC SYNCHRONISATION OF RECEPTION AND PROCESSING OF DATA STREAM ON START SYMBOL AND APPARATUS FOR REALISING SAID METHOD

Изобретение относится к области вычислительной техники, а именно к области высокоскоростных последовательных интерфейсов передачи данных, использующих для синхронизации работы приемника и передатчика стартовые символы.
В настоящее время известны способы и устройства для обработки потока последовательных данных, содержащие регистр поразрядного сдвига данных и блок проверки содержимого этого регистра на наличие предварительно заданной стартовой последовательности. Они не подходят для использования в высокоскоростных последовательных интерфейсах, где требуется максимальная частота работы блока обработки данных и минимизация энергопотребления.
Наиболее близким по технической сути и достигаемому техническому результату является способ приема и обработки потока данных, включающий сохранение получаемых от приемника данных и проверку их на совпадение с предварительно заданной последовательностью, посредством устройства, содержащего сдвиговый регистр, подключенный к приемнику последовательного интерфейса передачи двоичных данных, и блоки сравнения (Патент US №4166271, кл. G06F 7/02, опублик. 1979).
Недостатком описанных способа и устройства является низкая производительность, обусловленная невозможностью параллельной обработки данных из-за сдвига данных на каждом такте только на один разряд.
Задача изобретения состоит в создании устройства, обеспечивающего возможность параллельной обработки данных.
Техническим результатом от использования изобретения является снижение энергопотребления и повышение производительности путем обеспечения возможности параллельной обработки данных.
Указанный технический результат достигается тем, что в способе автосинхронизации приема и обработки потока данных, включающем сохранение получаемых от приемника данных и проверку их на совпадение с предварительно заданной последовательностью, осуществляют проверку наличия и возможных вариантов размещения стартового символа во входном сдвиговом регистре, при этом при обнаружении стартового символа вычисляют величину его сдвига и фиксируют ее, а затем постоянно осуществляют сдвиг всех получаемых от приемника данных на зафиксированную величину посредством устройства, содержащего сдвиговый регистр, подключенный к приемнику последовательного интерфейса передачи двоичных данных и блокам сравнения, согласно изобретению дополнительно снабженного десериалайзером, мультиплексором, регистром величины сдвига, элементом «логическое ИЛИ» и регистром стартового символа, при этом сдвиговый регистр выполнен в виде набора последовательно соединенных между собой буферов, имеющих несколько разрядов, а десериалайзер подключен к приемнику последовательного интерфейса передачи двоичных данных и буферам сдвигового регистра, разряды которых и регистр стартового символа подключены к блокам сравнения, которые подключены к элементу «логическое ИЛИ» и регистру величины сдвига, при этом последний подключен к мультиплексору, к которому подключены буферы сдвигового регистра, а элемент «логическое ИЛИ» и мультиплексор выполнены с возможностью подключения к блоку обработки данных.
Изобретение поясняется чертежами, где на фиг.1 изображена общая схема устройства, на фиг.2 - схемы размещения стартового символа в буферах десериалайзера и сдвигового регистра.
Способ автосинхронизации приема и обработки потока данных по стартовому символу осуществляется следующим образом.
Для синхронизации десериалайзера с блоком обработки данных осуществляют сдвиг поступающих от десериалайзера данных. Поступающие из буфера десериалайзера данные размещают в последовательно соединенных между собой буферах сдвигового регистра для промежуточного хранения. На каждом такте данные из буфера десериалайзера подают в первый буфер, одновременно данные из первого буфера переписывают во второй буфер и так далее. Количество разрядов в каждом промежуточном буфере выбирают равным количеству разрядов в буфере десериалайзера. Суммарная ширина промежуточных буферов должна быть равна длине стартового символа. На каждом такте проводят проверку наличия в буферах стартового символа посредством блоков сравнения. Эта проверка осуществляется путем перебора всех вариантов расположения стартового символа. Как только в буферах оказывается заранее известный стартовый символ, производят определение варианта его размещения. На основании этого вычисляют, на сколько разрядов требуется сдвигать поступающие от десериалайзера данные. Величину сдвига записывают в регистр. Этот регистр управляет мультиплексором, с помощью которого производят выбор одного из вариантов сдвига. Сдвиг производят путем сочетания следующих друг за другом битов, находящихся в промежуточных буферах. После фиксации величины сдвига в регистре все данные, поступающие от десериалайзера, вплоть до следующего сигнала сброса перед обработкой приемником сдвигают на зафиксированную в этом регистре величину. Появление в буферах стартового символа является сигналом для начала работы блока обработки данных. После этого процесс синхронизации приема и обработки потока данных оказывается завершенным.
Описанный выше способ реализуется устройством автосинхронизации приема и обработки потока данных по стартовому символу.
Устройство состоит из десериалайзера 1 с буфером 2, имеющим разряды 3, 4, 5, 6. Буфер 2 десериалайзера соединен с буфером 7 сдвигового регистра, имеющим разряды 8, 9, 10, 11, который в свою очередь соединен с буфером 12 сдвигового регистра, имеющим разряды 13, 14, 15, 16. Также буфер 2 десериалайзера и буферы 7 и 12 соединены с четырьмя блоками сравнения 17, 18, 19, 20. Суммарная ширина блоков сравнения соответствует ширине буфера 2 десериалайзера. На блок сравнения 17 попадают данные из буферов 7 и 12. На блок сравнения 18 - младший разряд 3 данных из буфера 2, данные из буфера 7 и три старших разряда 14, 15, 16 данных из буфера 12. На блок сравнения 19 - два младших разряда 3, 4 данных из буфера 2, данные из буфера 7 и два старших разряда 15, 16 данных из буфера 12. На блок сравнения 20 - три младших разряда 3, 4, 5 данных из буфера 2, данные из буфера 7 и один старший разряд 16 данных из буфера 12. Также к каждому блоку сравнения 17, 18, 19, 20 подключен выход регистра стартового символа 21. Блоки сравнения 17, 18, 19, 20 соединены с логическим элементом ИЛИ 22 и с регистром величины сдвига 23. Регистр величины сдвига 23 соединен с мультиплексором 24, к которому также подключены буфер 2 десериалайзера (разряды 3, 4 и 5) и буфер 7 (разряды 8, 9, 10, 11). Мультиплексор 24 и логический элемент ИЛИ 22 соединены с блоком обработки данных 25.
Устройство автосинхронизации приема и обработки потока данных по стартовому символу работает следующим образом.
Десериалайзер 1 принимает поток последовательных данных. Ширина буферов 7, 12 сдвигового регистра соответствует ширине буфера 2 десериалайзера 1. Количество буферов 7, 12 сдвигового регистра определяется длиной стартового символа, который требуется распознать. Суммарная ширина буферов 7, 12, стоящих после буфера 2 десериалайзера 1, должна позволять поместить в них стартовый символ целиком. Для простоты рассмотрим случай буфера 2 десериалайзера 1 шириной 4 бита и стартового символа длиной 8 бит. Такой стартовый символ присутствует, например, в интерфейсе Space Wire - это 8-битный символ NULL 01110100, который должен распознать приемник интерфейса Space Wire перед началом обработки потока данных.
На каждом такте данные переписываются из буфера 2 в буфер 7, из буфера 7 - в буфер 12. На каждом такте также при помощи блоков сравнения 17, 18, 19 и 20 проводится проверка, присутствует ли в буферах 2, 7 и 12 заданный стартовый символ. После обнаружения с помощью одного из блоков сравнения стартового символа, образец которого находится в регистре стартового символа 21, номер блока записывается в регистр величины сдвига 23. Новая запись в этот регистр станет возможна лишь после разрыва соединения.
При помощи мультиплексора 24, управляющим сигналом для которого служит выход регистра величины сдвига 23, из буферов 2 и 7 отбираются 4 бита, которые будут попадать в блок обработки данных 25 на каждом такте. Тем самым производится автосинхронизация приема и обработки потока данных за счет определения величины сдвига стартового символа.