Главная страница  |  Описание сайта  |  Контакты
КОНТРОЛЛЕР
КОНТРОЛЛЕР

КОНТРОЛЛЕР

Патент Российской Федерации
Суть изобретения: Изобретение относится к вычислительной технике и предназначено для обмена данными по каналу связи. Цель изобретения - расширение области применения устройства за счет уменьшения адресного пространства, отведенного под адресацию регистров внешних устройств, и выполнения обмена данными управления в режиме прямого доступа к памяти ЭВМ, сокращение аппаратурных затрат на реализацию регистров состояний, регистров управления на логику управления, связанную с каждым из разрядов регистров внешних устройств. Новым в контроллере является введение регистрового устройства 8, мельтиплексора 14, оперативной памяти 6, в которой храняться слова состояний и слова управления, а также запонимающего устройства 7 и контроллера 9 прерываний, которые выполняют функции управляющей логики. 17 ил.
Поиск по сайту

1. С помощью поисковых систем

   С помощью Google:    

2. Экспресс-поиск по номеру патента


введите номер патента (7 цифр)

3. По номеру патента и году публикации

2000000 ... 2099999   (1994-1997 гг.)

2100000 ... 2199999   (1997-2003 гг.)
Номер патента: 2012043
Класс(ы) патента: G06F11/00, G06F13/00
Номер заявки: 4907998/24
Дата подачи заявки: 04.02.1991
Дата публикации: 30.04.1994
Заявитель(и): Акционерное общество "Контур"
Автор(ы): Россинский В.П.
Патентообладатель(и): Россинский Виктор Петрович
Описание изобретения: Изобретение относится к вычислительной технике и предназначено для обмена данными по каналу связи.
Известны устройства [1] , предназначенные для обмена данными по каналу связи, содержащие регистры управления и регистры состояний для хранения управляющей информации, регистры данных, шифратор управления.
Недостатком известных устройств яляются большие аппаратурные затраты, необходимые на реализацию регистров управления, регистров состояний, шифратора управления в случаях, когда требуется значительное количество регистров управления и регистров состояний для обеспечения функций известных устройств.
Наиболее близким к предлагаемому является контроллер [2] , содержащий контроллер шины, интерфейс, селектор адреса, счетчик адреса, регистр адреса, схему сравнения, приемник, передатчик, шифратор управления, причем входы-выходы контроллера шины подключены к системной шине управления контроллера, первая группа входов-выходов интерфейса подключена к шине данных контроллера, вторая группа его входов-выходов подключена к шине адреса контроллера, его входы данных подключены к внутренней шине контроллера, его выходы адреса - к адресным входам селектора адреса, разрядные выходы счетчика адреса подключены к входам адреса интерфейса и к первой группе входов схемы сравнения, к второй группе входов которой подсоединены выходы регистра адреса, входы данных счетчика адреса и информационные входы регистра адреса подсоединены к внутренней шине контроллера, вход записи счетчика адреса, вход записи регистра адреса, вторая группа входов управления интерфейса, третья группа входов управления контроллера шины, вторая группа входов управления передатчика, вторая группа входов управления приемника, первая группа выходов шифратора управления подключены к шине управления контроллера, выход контроллера шины подключен к счетному входу счетчика адреса, выход "Равно" схеме сравнения соединен с первым входом шифратора управления, вход данных приемника подключен к входу данных контроллера, выход передатчика подключен к выходу контроллера.
Недостатком известного контроллера являются большие аппаратурные затраты, необходимые на реализацию регистров управления, регистров состояний и шифратора управления в случаях, когда для функционирования контроллера требуется значительное количество регистров управления и регистров состояний для хранения слов состояний и управления. Поскольку через регистры управления и регистры состояний между ЭВМ и известным контроллером осуществляется обмен управляющей информацией, содержащейся в словах управления и словах состояний, то для обработки управляющей информации и выработки сигналов управления по результатам обработки слов состояний и слов управления требуются аппаратурные затраты на реализацию шифратора управления, выполненного на элементах жесткой логики, тем больше, чем большее число регистров управления и регистров состояний используется, поскольку каждый разряд регистров управления и регистров состояний соединен с соответствующим входом шифратора управления. Применение элементов гибкой логики, например микропроцессоров, для реализации шифратора управления ограничивается временными характеристиками известных контроллеров, для которых обмен данными должен осуществляться в режимах реального времени.
Недостатком известного контроллера является ограничение области применения в случаях, когда использование большого количества регистров управления и состояний невозможно по причине ограниченности адресного пространства шины адреса ЭВМ, отведенного под адресацию внешних регистров. Так, при использовании ЭВМ микропроцессора серии 580 под адресацию внешних регистров отведено адресное пространство в 256 адресов, что ограничивает возможности использования контроллера, если для его реализации требуется большее, чем 256 число регистров управления и регистров состояний.
Цель изобретения - расширение области применения контроллера при сокращении аппаратурных затрат на его реализацию.
Цель достигается тем, что в контроллер, содержащий контроллер шины, интерфейс, селектор адреса, счетчик адреса, регистр адреса, схему сравнения, приемник, передатчик, шифратор управления, причем входы-выходы контроллера шины подключеы к системной шине управления контроллера, первая группа входов-выходов интерфейса подключена к шине данных контроллера, вторая группа его входов-выходов подключена к шине адреса контроллера, его входы данных подключены к внутренней шине контроллера, его выходы адреса - к адресным входам селектора адреса, разрядные выходы счетчика адреса подключены к входам адреса интерфейса и к первой группе входов схемы сравнения, к второй группе входов которой подсоединены выходы регистра адреса, входы данных счетчика адреса и информационные входы регистра адреса подсоединены к внутренней шине контроллера, вход записи счетчика адреса, вход записи регистра адреса, вторая группа входов управления интерфейса, третья группа входов управления контроллера шины, вторая группа входов управления передатчика, вторая группа входов управления приемника, первая группа выходов шифратора управления подключены к шине управления контроллера, выход контроллера шины подключен к счетному входу счетчика адреса, выход "Равно" схемы сравнения соедиен с первым входом шифратора управления, вход данных приемника подключен к входу данных контроллера, выход передатчика подключен к выходу контроллера, введены оперативная память, запоминающее устройство, регистровое устройство, контроллер прерываний, мультиплексор, при этом выходы управления контроллера шины подключены к входам управления селектора адреса, к первой группе входов управления интерфейса, к первой группе входов управления приемника и к первой группе входов управления передатчика, первая группа входов управления контроллера шины подключена к выходам управления передатчика, вторая группа входов управления контроллера шины подключена к выходам управления приемника, входы-выходы приемника, входы-выходы передатчика, входы-выходы оперативной памяти, входы-выходы регистрового устройства, первая группа адресных входов запоминающего устройства подключены к выходам мультиплексора и к внутренней шине контроллера, выходы приемника подключены к входам интерфейса, входы передатчика соединены с выходами интерфейса, входы адреса оперативной памяти соединены с первой группой выходов регистрового устройства, выходы запоминающего устройства соединены с третьей группой входов регистрового устройства, выходы состояний запоминающего устройства соединены с первой группой входов шифратора управления, вторая группа адресных входов запоминающего устройства соединена с второй группой выходов регистрового устройства, первая группа входов регистрового устройства соединена с второй группой выходов шифратора управления, вторая группа входов регистрового устройства соединена с третьей группой выходов шифратора управления, третья группа выходов регистрового устройства соединена с входам управления запоминающего устройства, управляющий вход шифратора управления соединен с выходом переноса запоминающего устройства, вход переноса которого соедиен с первым выходом шифратора управления, вторая группа входов шифратора управления и первая группа входов запроса контроллера прерываний соединены с выходами состояний приемника, выходы состояний передатчика подключены к третьей группе входов шифратора управления и к второй группе входов запросов контроллера прерываний, к третьей группе входов запросов которого и к четвертой группе входов шифратора управления подключены выходы контроллера шины, выходы селектора адреса соединены с четвертой группой входов запросов контроллера прерываний, второй выход шифратора управления соединен с входом запроса контроллера прерываний, выход управления которого соединен с вторым входом шифратора управления, вход синхронизации контроллера прерываний и вход синхронизации регистрового устройства соединены с третьим выходом шифратора управления, к пятой группе входов которого подключены выходы контроллера прерываний, выходы адреса интерфейса подсоединены к первой группе входов мультиплексора, к второй группе входов которого подключены выходы данных интерфейса, выход "Равно" схемы сравнения соединен с входом управления приемника и с входом передатчика, входы управления приоритета контроллера прерываний, входы управления оперативной памяти, входы управления мультиплексора, входы управления регистрового устройства подключены к шине управления контроллера.
Введение в контроллер оперативной памяти, запоминающего устройства, регистрового устройства, контроллера прерываний и мультиплексора в указанной выше взаимосвязи позволяет расширить область применения контроллера при сокращении аппаратурных затрат на его реализацию.
Расширение области применения контроллера выражается в том, что он может использоваться в системах, ведущих обмен данными в реальном времени и использующих ЭВМ, с ограниченным адресным пространством шины адреса, отведенным под адресацию регистров внешних устройств, что ограничивает число регистров управления и регистров состояний в устройстве, к которым ЭВМ может обратиться в режиме программного обмена. Примером ЭВМ, имеющих ограниченное адресное пространство шины адреса, могут служить ЭВМ, построенные с использованием микропроцессоров серии 580, а также ЭВМ серии "электроника 60". Расширение области применения контроллера объясняется тем, что обмен словами управления и словами состояния между ЭВМ и контроллером производится не только в режиме программного обмена, но и в режиме прямого доступа к оперативной памяти ЭВМ со стороны контроллера, и при этом условия обмена данными в режиме реального времени, а также условия обработки слов состояний и слов управления и формирования по результатам обработки управляющих воздействий в режиме реального времени выполняются. Использование оперативной памяти, запоминающего устройства, регистрового устройства, мультиплексора и контроллера прерываний при работе контроллера в режиме прямого доступа к оперативной памяти ЭВМ позволяет вести обмен словами состояний, словами управления между оперативной памятью ЭВМ и оперативной памятью контроллера, а также позволяет производить ускоренную обработку слов состояний и слов управления и по результатам этой обработки управлять режимами работы контроллера в условиях реального времени обмена данными. Оперативная память служит для хранения слов состояний и слов управления, которыми ЭВМ и контроллер обмениваются в режимах программного обмена и прямого доступа к памяти ЭВМ. Применение оперативной памяти позволяет сократить затраты на регистры, необходимые для хранения слов управления и слов состояний. Однако при этом возникает проблема формирования сигналов управления по результатам обработки слов состояний и слов управления, поскольку эти сигналы управления должны формироваться за интервалы времени не большие, чем необходимо для обеспечения режимов реального времени обмена данными. Использование запоминающего устройства позволяет производить за ограниченные интервалы времени обработку битов слов состояний и слов управления и по результатам обработки вырабатывать управляющие сигналы для перевода контроллера в различные режимы функционирования, во время которых реализуются процессы реального времени обмена словами состояний, словами управления в режиме программного обмена и в режиме прямого доступа к памяти ЭВМ и процессы обмена данными. Применение оперативной памяти, контроллера прерываний, запоминающего устройства, мультиплексора позволяет произвести сокращение аппаратурных затрат на реализацию контроллера, функционирующего в условиях реального времени обмена данными при расширении области его применения, во-первых, за счет сокращения аппаратурных затрат на реализацию регистров состояний и регистров управления, поскольку слова состояний и слова управления хранятся в оперативной памяти, а во-вторых, за счет сокращения аппаратурных затрат на шифратор управления, под управлением которого производится обработка слов состояний и слов управления и под управлением которого контроллер выполняет операции по обработке, формированию и обмену данными между ЭВМ, контроллером, передатчиком и приемником. Применение запоминающего устройства, сохраняя работоспособность контроллера в условиях реального времени обмена данными между ЭВМ, контроллером, приемником и передатчиком, позволяет сократить аппаратурные затраты на шифратор управления, использующий в прототипе элементы жесткой логики, соединенные линиями связи с каждым из разрядов регистров управления и регистров состояний. Вместо элементов жесткой логики используется запоминающее устройство для обработки и преобразования слов состояний и слов управления, что достигается за счет хранения в ячейках памяти запоминающего устройства результатов арифметических и логических операций над давлением, которые подаются на первую и вторую группы адресных входов запоминающего устройства. Набор нестандартных и стандартнх арифметических и логических операций, результаты которых хранятся в запоминающем устройстве, позволяет сократить время обработки данных и за требуемые промежутки времени вырабатывать на выходах состояний запоминающего устройства управляющие сигналы, подающиеся на шифратор управления. Набор операций, выполняемых запоминающим устройством, выбирается индивидуально для каждого из вариантов котроллера. Использование контоллера прерываний дает возможность в условиях реального времени работы контроллера обеспечить обмен данными между ЭВМ, оперативным запоминающим устройством, приемником и передатчиком и поизводить арбитраж процессов реального времени. Использование контроллера прерываний совместно с запоминающим устройством, регистровым устройством и мультиплексором позволяет выполнять в реальном времени обмен данными между ЭВМ, приемником, передатчиком и контроллером. Использование мультиплексора позволяет выполнять переключение на первую группу адресных входов запоминающего устройства сигналов адреса с шины адреса контроллера или сигналов данных с шины данных контроллера, что необходимо для обработки слов управления и слов состояний запоминающим устройством. Применение регистрового устройства позволяет обеспечить временное хранение данных при обмене данными между оперативной памятью, запоминающим устройством, ЭВМ, приемником и передатчиком.
На фиг. 1 представлена структурная схема контроллера; на фиг. 2 - структурная схема подключения ЭВМ через контроллер к каналу связи; на фиг. 3 - структурная схема запоминающего устройства; на фиг. 4 - структурная схема интерфейса; на фиг. 5 - структурная схема контроллера шины; на фиг. 6 - структурная схема регистрового устройства; на фиг. 7 - структурная схема контроллера прерываний; на фиг. 8 - структурная схема шифратора управления; на фиг. 9 - структурная схема формирователя адреса микрокоманды; на фиг. 10 - структурная схема приемника; на фиг. 11 - структурная схема передатчика; на фиг. 12 представлен пример реализации схемы кодера; на фиг. 13 - пример реализации схемы декодера; на фиг. 14 представлена структурная схема логики циклического контроля; на фиг. 15 - структурная схема памяти обратного магазинного типа (схема фифо); на фиг. 16 представлен формат пакетов данных, передаваемых в канал связи; на фиг. 17 - формат дескрипторов буферов передачи и буферов приема. Дескрипторы описывают зоны памяти ЭВМ (буферы приема и буферы передачи), отведенные под хранение принимаемых и передаваемых данных, а также под слова состояний, описывающие процесс обмена данными.
Контроллер содержит (фиг. 1) интерфейс 1, контроллер 2 шины, счетчик 3 адреса, регистр 4 адреса, схему 5 сравнения, оперативную память 6, запоминающее устройство 7, регистровое устройство 8, контроллер 9 прерываний, селектор 10 адреса, шифратор 11 управления, приемник 12, передатчик 13, мультиплексор 14.
Через внутреннюю шину 15, шину 16 управления, через шину 17 данных, шину 18 адреса, системную шину 19 управления контроллер 20 (фиг. 2) имеет связь с ЭВМ 21. Первая группа входов-выходов интерфейса 1 связана с шиной 17 данных контроллера, вторая группа входов-выходов интерфейса 1 связана с шиной 18 адреса контроллера. Шина 17 данных подключается к шине данных ЭВМ, шина 18 адреса - к шине адреса ЭВМ, системная шина 19 управления контроллера подключается к системной шине управления ЭВМ. Входы-выходы контроллера 2 шины соединены с системной шиной 19 управления. По линии 22 через вход данных контроллера и по линии 23 через его выход контроллер подключен к каналу 24 связи. Вход управления приемника 12 подключен к входу данных контроллера, а выход передатчика 13 - к выходу контроллера. Через шину 25 разрядные выходы счетчика 3 адреса подключены к первой группе входов схемы 5 сравнения и к входам адреса интерфейса 1. Выходы регистра 4 адреса соединены с второй группой входов схемы 5 сравнения. Входы интерфейса 1 через шину 26 подключены к выходам приемника 12, а его выходы через шину 27 подключены к входам передатчика 13. По шине 28 выходы данных интерфейса 1 соединены второй группой входов мультиплексора 14, первая группа входов которого и адресные входы селектора 10 адреса связаны по шине 29 с выходами адреса интерфейса 1. По шине 30 первая группа входов управления интерфейса 1, первая группа входов управления приемника 12, первая группа входов управления передатчика 13, входы управления селектора 10 адреса связаны с выходами управления контроллера 2 шины. По шине 31 четвертая группа входов шифратора 11 управления и третья группа входов запросов контроллера 9 прерываний связаны с выходами контроллера 2 шины, выход которого по линии 32 связан со счетным входом счетчика 3 адреса. Первая группа входов управления контроллера 2 шины по шине 33 связана с выходами управления передатчика 13, а вторая группа входов управления по шине 34 связана с выходами управления приемника 12. Выходы состояний приемника 12 связаны по шине 35 с второй группой входов шифратора 11 управления и с первой группой входов запросов контроллера 9 прерываний. Выходы состояний передатчика 13 связаны по шине 36 с третьей группой входов шифратора 11 управления и с второй группой входов запросов контроллера 9 прерываний. Входы адреса оперативной памяти 6 соединены по шине 37 с первой группой выходов регистрового устройства 8. Выходы запоминающего устройства 7 подключены по шине 38 к третьей группе входов регистрового устройства 8. Вторая группа выходов шифратора 11 управления подключена по шине 39 к первой группе входов регистрового устройства 8. Линия 40 соединяет управляющий вход шифратора 11 управления с выходом переноса запоминающего устройства 7, к входу переноса которого по линии 41 подключен первый выход шифратора 11 управления. Пятая группа входов шифратора 11 управления соединена по шине 42 с выходами контроллера 9 прерываний, вход запроса которого соединен по линии 43 с вторым выходом шифратора 11 управления, выход управления соединен по линии 44 с вторым входом шифратора 11 управления, а вход синхронизации и вход синхронизации регистрового устройства 8 соединены по линии 45 с третьим выходом шифратора 11 управления. Выходы селектора 10 адреса подключены по шине 46 к четвертой группе входов запросов контроллера 9 прерываний. Выход "Равно" схемы 5 сравнения соединен по линии 47 с входом управления приемника 12, с входом управления передатчика 13, с первым входом шифратора 11 управления. Третья группа выходов шифратора 11 управления соединена с второй группой входов регистрового устройства 8 по шине 48. Третья группа выходов регистрового устройства 8 по шине 49 соединена с входами управления запоминающего устройства 7, вторая группа выходов регистрового устройства 8 соединена по шине 50 с второй группой адресных входов запоминающего устройства 7. Выходы состояний запоминающего устройства 7 по шине 51 соединены с первой группой входов шифратора 11 управления. К внутренней шине 15 контроллера подключены входы данных счетчика 3 адреса, информационные входы регистра 4 адреса, выходы мультиплексора 14, входы данных интерфейса 1, входы-выходы передатчика 13, входы-выходы приемника 12, входы-выходы оперативной памяти 6, входы-выходы регистрового устройства 8, первая группа адресных входов запоминающего устройства 7. К шине 16 управления контроллера подключены первая группа выходов шифратора 11 управления, вход записи счетчика 3 адреса, вход записи регистра 4 адреса, вторая группа входов управления интерфейса 1, входы управления мультиплексора 14, входы управления оперативной памяти 6, входы управления регистрового устройства 8, третья группа входов управления контроллера 2 шины, вторая группа входов управления приемника 12, вторая группа входов управления передатчика 13, входы управления приоритетами контроллера 9 прерываний.
Запоминающее устройство 7 содержит (фиг. 3) секции 52 и запоминающее устройство 53 ускоренных переносов. Первая и вторая группы адресных входов запоминающего устройства 7, а также его выходы содержат группы линий. Число групп линий в первой группе адресных входов равно числу групп линий во второй группе адресных входов, равно числу групп линий выходов запоминающего устройства 7. Например, при числе секций, равном четырем, в первой, второй группах адресных входов и в выходах запоминающего устройства 7 содержатся по четыре группы линий, причем каждая из групп линий первой группы адресных входов запоминающего устройства 7 соединена с первой группой входов одной из секций 52 запоминающего устройства, а каждая из групп линий второй группы адресных входов запоминающего устройства 7 соединена с второй группой входов одной из секций 52 запоминающего устройства, третьи группы входов секций 52 запоминающего устройства соединены с входами упавления запоминающего устройства 7. Входы переноса каждой из секций 52 запоминающего устройства соединены с одной из гупп выходов переноса запоминающего устройства 53 ускоренных переносов, каждая из групп входов переноса которого соединена с выходами переноса одной из секций 52 запоминающего устройства. Вход переноса запоминающего устройства 7 соединен с входом переноса первой секции 52 запоминающего устройства и с входом переноса запоминающего устройства 53 ускоренных переносов, выход переноса запоминающего устройства 7 соединен с выходом переноса запоминающего устройства 53 ускоренных переносов. Каждая из групп линий выходов запоминающего устройства 7 подключена к выходам одной из секций 52 запоминающего устройства и к выходам состояний запоминающего устройства 7. Входы управления запоминающего устройства 53 ускоренных переносов соединены с входами управления запоминающего устройства 7.
Для реализации секции 52 запоминающего устройства используется постоянное программируемое запоминающее устройство, вход адреса которого соединен с входом переноса секции запоминающего устройства. Первая гуппа входов адреса последнего соединена с первой группой входов секции 52 запоминающего устройства, вторая группа входов адреса соединена с второй группой входов секции запоминающего устройства, третья группа входов адреса соединена с третьей группой входов секции запоминающего устройства, четвертая группа входов адреса соединена с входами переноса секции запоминающего устройства, а первая группа выходов соединена с выходами переноса секции запоминающего устройства, вторая группа выходов - с выходами секции запоминающего устройства.
Запоминающее устройство 53 ускоренных переносов реализуется на постоянном программируемом запоминающем устройстве, причем с каждой из групп входов переноса запоминающего устройства 53 ускоренных переносов соединена одна из групп входов адреса постоянного программируемого запоминающего устройства, вход адреса которого соединен с входом переноса запоминающего устройства 53 ускоренных переносов, а каждая из групп выходов соединена с одной из групп выходов переноса запоминающего устройства 53 ускоренных переносов, выход которого соединен с выходом переноса запоминающего устройства 53 ускоренных переносов, а отдельная группа входов адреса соединена с входами управления запоминающего устройства 53 ускоренных переносов.
Интерфейс 1 содержит (фиг. 4) усилители 54 шины адреса и усилители 55 шины данных, регистр 56, коммутатор 57. Входы-выходы усилители 54 шины адреса соединены с второй группой входов-выходов интерфейса 1, первая группа входов-выходов которого соединена с входами-выходами усилителей 55 шины данных. Входы усилителей 54 шины адреса подключены к входам адреса интерфейса 1, к выходам адреса которого подключены выходы усилителей 54 шины адреса. Выходы усилителей 55 шины данных соединены с выходами данных и с выходами интерфейса 1. Первая группа входов коммутатора 57 соединена с входами данных интерфейса 1, вторая группа входов коммутатора 57 соединена с входами интерфейса 1. Выходы коммутатора 57 соединены с входами регистра 56, выходы которого соединены с входами усилителей 55 шины данных. Первая группа входов управления усилителей 54 шины адреса, первая группа входов управления усилителей 55 шины данных, первый вход управления записью регистра 56, первый вход управления коммутатором 57 соединены с первой группой входов управления интерфейса 1, вторая группа входов управления которого соединена с второй группой входов управления усилителей 54 шины адреса, с второй группой входов управления усилителей 55 шины данных, с вторым входом управления записью регистра 56, с вторым входом управления коммутатора 57.
Контроллер 2 шины содержит (фиг. 5) усилители 58, дешифратор 59, таймерное устройство 60. Входы-выходы усилителей 58 соединены с входами-выходами контроллера 2 шины, выходы которого соединены с первой группой выходов дешифратора 59. Входы усилителей 58 соединены с второй группой выходов дешифратора 59, первая группа входов которого соединена с выходами усилителей 58. Третья группа выходов дешифратора 59 соединена с выходами управления контроллера 2 шины, вторая группа входов дешифратора 59 соединена с третьей группой входов управления контроллера 2 шины. Четвертая группа выходов дешифратора 59 соединена с входами таймерного устройства 60, выходы которого соединены с третьей группой входов дешифратора 59. Четвертая группа входов дешифратора 59 соединена с первой группой входов управления контроллера 2 шины, вторая группа входов управления которого соединена с пятой группой входов дешифратора 59. Выход дешифратора 59 соединен с выходом контроллера 2 шины, выход управления дешифратора 59 соединен с входом управления усилителей 58.
Регистровое устройство 8 содержит (фиг. 6) мультиплексор 61, мультиплексор 62, регистры 63, усилители 64, реверсивный счетчик 65. Входы управления усилителей 64, входы управления мультиплексора 61, входы управления мультиплексора 62, входы управления регистров 63, входы управления реверсивного счетчика 65 соединены с входами управления регистрового устройства 8, первая группа входов которого соединена с первой группой входов мультиплексора 62. Вторая группа входов мультиплексора 62 соединена с второй группой входов регистрового устройства 8. Третья группа входов мультиплексора 62 соединена с выходами усилителей 64. Третья группа входов регистрового устройства 8 соединена с четвертой группой входов мультиплексора 62. Входы-выходы регистрового устройства 8 соединены с входами-выходами усилителей 64, к входам которых подключена первая группа выходов мультиплексора 61. Первая группа выходов регистрового устройства 8 соединена с второй группой выходов мультиплексора 61, его вторая группа выходов соединена с третьей группой выходов мультиплексора 61, а его третья группа выходов соединена с четвертой группой выходов мультиплексора 61. Входы синхронизации регистров 63 и вход синхронизации реверсивного счетчика 65 соединены с входом синхронизации регистрового устройства 8. Мультиплексор 62 имеет несколько групп выходов, причем входы каждого из регистров 63 соединены с одной из групп выходов мультиплексора 62. Мультиплексор 61 содержит несколько групп входов, причем выходы каждого из регистров 63 соединены с одной из групп входов мультиплексора 61. Выходы реверсивного счетчика 65 соединены с входами адреса регистров 63.
Контроллер 9 прерываний содержит (фиг. 7) логическую матрицу 66, в качестве которой может использоваться, например, программируемая логическая матрица, регистр 67. Выходы регистра 67 соединены с выходами контроллера 9 прерываний и с первой группой входов логической матрицы 66, к второй группе входов которой подключены входы управления приоритетами контроллера 9 прерываний, к третьей группе входов подключена первая группа входов запросов контроллера 9 прерываний, к четвертой группе входов подключена вторая группа входов запросов контроллера 9 прерываний, к пятой группе входов подключена третья группа входов запросов контроллера 9 прерываний, к шестой группе входов подключена четвертая группа входов запросов контроллера 9 прерываний, к входу подключен вход запроса контроллера 9 прерываний, а выходы соединены с входами регистра 67, выход соединен с входом управления записью регистра 67. Выход управления контроллера 9 прерываний соединен с выходом регистра 67, вход синхронизации которого соединен с входом синхронизации контроллера 2 шины.
Шифратор 11 управления содержит (фиг. 8) регистр 68 микрокоманд, мультиплексор 69, память 70 микрокоманд, в качестве которой используется, например, постоянное программируемое запоминающее устройство, мультиплексор 71, дешифратор 72 - преобразователь начального адреса, формирователь 73 адреса микрокоманды, мультиплексор 74 условий, генератор 75, мультиплексор 76, счетчик 77 - таймер, дешифратор 78, RS-триггер 79, шину 80 управления.
Выходы формирователя 73 адреса микрокоманды соединены с шиной 81. Его выход соединен с линией 82, его входы адреса, входы инструкций, вход инкремента соединены с шиной 80 управления. Его вход условий соединен с линией 83, вход синхронизации - с линией 45. Вторая группа выходов шифратора 11 управления соединена с выходами мультиплексора 69, первая группа входов которого соединена с выходами счетчика-таймера 77 и с входами дешифратора 78. Первая группа выходов шифратора 11 управления соединена с первой группой выходов регистра 68 микрокоманд, входы которого соединены с первой группой выходов памяти 70 микрокоманд. Входы управления и первый вход мультиплексора 76, входы управления мультиплексора 71, входы адреса, входы инструкций, вход инкремента формирователя 73 адреса микрокоманды, вход сброса счетчика-таймера 77, R-вход RS-триггера 79, входы управления мультиплексора 74 условий, вторая группа выходов регистра 68 соединены с шиной 80. Вход управления мультиплексора 69 соединен с выходом памяти 70 микрокоманд. Вторая группа выходов памяти 70 микрокоманд соединена с второй группой входов мультиплексора 69. Выход генератора 75 соединен со счетным входом счетчика-таймера 77, с входом записи регистра 68 микрокоманд, с входом синхронизации формирователя 73 адреса микрокоманды, с третьим выходом шифратора 11 управления. Входы адреса памяти 70 микрокоманд соединены с выходами мультиплексора 71, первая группа входов которого соединена с выходами формирователя 73 адреса микрокоманды, вторая группа входов соединена с выходами дешифратора-преобразователя 72 начального адреса, третья группа входов соединена с пятой группой входов шифратора 11 управления, а первый вход управления соединен с вторым входом шифратора управления. Входы дешифратора-преобразователя 72 начального адреса соединены с первой группой входов шифратора 11 управления. Выход формирователя 73 адреса микрокоманды соединен с вторым входом управления мультиплексора 71. Вход условий формирователя 73 адреса микрокоманды соединен с выходом мультиплексора 74 условий, первая группа входов которого соединена с третьей группой входов шифратора 11 управления, его вторая группа входов соединена с четвертой группой входов шифратора управления, третья группа входов соединена с второй группой входов шифратора управления, а его первый вход и второй вход мультиплексора 76 подключены к управляющему входу шифратора управления. Второй вход мультиплексора 74 условий соединен с первым входом шифратора 11 управления. Выход дешифратора 78 соединен с S-входом RS-триггера 79, выход которого подключен к второму выходу шифратора 11 управления. Выход мультиплексора 76 соединен с вторым выходом шифратора управления. Третья группа выходов памяти 70 микрокоманд соединена с третьей группой выходов шифратора 11 управления.
Формирователь 73 адреса микрокоманды (фиг. 9) содержит регистр 84, сумматор 85, стек 86, реверсивный счетчик 87 - указатель стека, мультиплексор 88, дешифратор 89 инструкций. Выходы мультиплексора 88 соединены с выходами формирователя 73 адреса микрокоманды и с входами сумматора 85, вход инкремента которого соединен с входом инкремента формирователя 73 адреса микрокоманды, а выходы подключены к входам регистра 84. Входы адреса формирователя 73 адреса микрокоманды соединены с первой группой входов мультиплексора 88, с второй группой входов которого соединены выходы стека 86, а с третьей группой входов и с входами стека 86 соединены выходы регистра 84. Входы инструкций формирователя 73 адреса микрокоманды соединены с входами дешифратора 89 инструкций, вход условий которого соединен с входом условий формирователя 73 адреса микрокоманды, выходы управления соединены с входами управления мультиплексора 88, а выход соединен с входом управления реверсного счетчика-указателя 87 стека и с входом управления стека 86. Выход дешифратора 89 инструкций соединен с выходом формирователя 73 адреса микрокоманды. Вход синхронизации формирователя 73 адреса микрокоманд соединен со счетным входом реверсивного счетчика-указателя 87 стека, с входом синхронизации стека, с входом синхронизации регистра 84. Выходы реверсивного счетчика-указателя 87 стека соединены с входами адреса стека 86.
Пример реализации приемника 12 показан на фиг. 10. Приемник содержит фифо 90 приема, мультиплексор 91, сдвиговый регистр 92, детектор 93 флага, RS-триггер 94, логику 95 циклического контроля, декодер 96, детектор 97 входного сигнала, счетчик 98 битов, счетчик 99 байтов, управляющую логику 100, шину 101. Выходы фифо 90 приема по шине 26 соединены с выходами приемника 12 и с первой группой входов мультиплексора 91. Выходы меток фифо 90 приема по шине 102 соединены с первой группой входов управляющей логики 100. Выходы сдвигового регистра 92 соединены по шине 103 с входами фифо 90 приема и с входами детектора 93 флага, выход которого соединен с S-входом RS-триггера 94. Выход декодера 96 соединен по линии 104 с входом сдвигового регистра 92 и с входом логики 95 циклического контроля. Выход синхронизации декодера 96 соединен по линии 105 с входом синхронизации сдвигового регистра 92, с входом синхронизации логики 95 циклического контроля и со счетным входом счетчика 98 битов. Вход декодера 96 и вход детектора 97 входного сигнала соединены с входом данных приемника 12. Выход контроля логики 95 циклического контроля по линии 106 соединен с первым входом мультиплексора 91. Выход RS-триггера 94 соединен с входом сброса счетчика 98 битов, выходы которого соединены с второй группой входов управляющей логики 100 и с второй группой входов мультиплексора 91. Выходы мультиплексора 91 соединены с входами-выходами приемника 12. Выход детектора 97 входного сигнала соединен с вторым входом мультиплексора 91 и с вторым входом управляющей логики 100. Выходы счетчика 99 байтов соединены с третьей группой входов мультиплексора 91 и с третьей группой входов управляющей логики 100, с четвертой группой входов которой соединена вторая группа входов управления приемника. Выходы состояний и выходы управления приемника 12, входы управления и входы меток фифо 90 приема, входы управления мультиплексора 91, входы управления логики 95 циклического контроля, счетный вход и вход сброса счетчика 99 байтов, R- вход RS-триггера 94, выходы управляющей логики 100 соединены с шиной 101. Пятая группа входов управляющей логики 100 соединена с первой группой входов управления приемника 12, к входам-выходам которого подключена шестая группа входов управляющей логики 100. Вход управления приемника 12 соединен с входом управляющей логики 100.
Пример выполнения передатчика 13 приведен на фиг. 11. Передатчик содержит фифо 107 передачи, сдвиговый регистр 108, логику 109 циклического контроля, коммутатор 110, кодер 111, счетчик 112 битов, управляющую логику 113, усилители 114, генератор 115, шину 116. Выходы фифо 107 передачи соединены по шине 117 с входами регистра 108 сдвига, выход которого по линии 118 подключен к первому входу коммутатора 110 и к входу логики 109 циклического контроля. Выход генератора 115 по линии 119 подключен к входу синхронизации кодера 111, к входу синхронизации управляющей логики 113, к входу синхронизации сдвигового регистра 108, к входу синхронизации логики 109 циклического контроля, к счетному входу счетчика 112 битов. Выход данных логики 109 циклического контроля соединен по линии 120 с вторым входом коммутатора 110, выход которого соединен по линии 121 с входом кодера 111. Выход кодера соединен с выходом передатчика 13. Входы-выходы передатчика соединены с пятой группой входов управляющей логики 113 и с выходами усилителей 114. Входы и входы управления усилителей 114, выходы состояний и выходы управления передатчика 13, входы меток и входы управления фифо 107 передачи, вход записи сдвигового регистра 108, входы управления логики 109 циклического контроля, вход управления коммутатора 110, вход сброса счетчика 112 битов, вход управления кодера 111, выходы управляющей логики 113 соединены с шиной 116. Выходы меток фифо 107 передачи соединены по шине 122 с первой группой входов управляющей логики 113, с второй группой входов которой соединены выходы счетчика 112 битов, с третьей группой входов соединена вторая группа входов управления передатчика 13, а с четвертой группой входов соединена первая группа входов управления передатчика. Входы передатчика 13 подключены по шине 27 к входам фифо 107 передачи. Вход передатчика 13 соединен с входом управляющей логики 113.
Пример выполнения кодера 111 показан на фиг. 12. Кодер содержит диод 123, резистор 124, инвертор 125, схемы 126, 127 совпадений, JK-триггеры 128, 129. Вход инвертора 125 и первый вход схемы 126 совпадений соединены с входом кодера 111. Выход инвертора 125 соединен с первым входом схемы 127 совпадений. Второй вход схемы 126 совпадений и второй вход схемы 127 совпадений соединены с инверсным выходом JK-триггера 129, J- и К-входы которого через резистор 124 подключены к шине питания для установки уровня "1". Выход схемы 126 совпадений соединен с J-входом JK-триггера 128, к К-входу которого подключен выход схемы 127 совпадений. Вход синхронизации JK-триггера 128 и вход синхронизации JK-триггера 129 подключены к входу синхронизации кодера 111. Выход JK-триггера 128 через диод 123 подключен к выходу кодера 111.
Пример выполнения декодера 96 показан на фиг. 13. Декодер содержит линию 130 задержки, схемы ИСКЛЮЧАЮЩЕЕ ИЛИ 131, 132, инвертор 133, D-триггеры 134, 135. Вход линии 130 задержки, первый вход схемы ИСКЛЮЧАЮЩЕЕ ИЛИ 131, D-вход D-триггера 135 соединены с входом декодера 96. Второй вход схема ИСКЛЮЧАЮЩЕЕ ИЛИ 131 соединен с первым выходом линии 130 задержки, второй выход которой соединен с первым входом схемы ИСКЛЮЧАЮЩЕЕ ИЛИ 132, а третий выход - с вторым входом схема ИСКЛЮЧАЮЩЕЕ ИЛИ 132. Выход схемы ИСКЛЮЧАЮЩЕЕ ИЛИ 131 соединен с входом инвертора 133, выход которого подключен к D-входу D-триггера 134. Выход схемы ИСКЛЮЧАЮЩЕЕ ИЛИ 132 соединен с входом синхронизации D-триггера 134, выход которого подключен к выходу синхронизации декодера 96 и к входу синхронизации D-триггера 135. Инверсный выход D-триггера 135 подключен к выходу декодера 96.
Подключение контроллеров 20 к каналу 24 связи производится через некоторые расстояния. Такие подключения могут производиться, например, путем прокола коаксиального кабеля, применяемого для реализации канала 24 связи. По концам коаксиального кабеля в этом случае устанавливаются согласующие нагрузки 136 (фиг. 2).
Логика 109 циклического контроля передатчика 13 и логика 95 циклического контроля приемника 12 реализуют проверку данных с помощью полинома х15125+1 и построены по одинаковой схеме (фиг. 14), в состав которой входят схема ИСКЛЮЧАЮЩЕЕ ИЛИ 137, схема 138 совпадений, пятиразрядный сдвиговый регистр 139, схема ИСКЛЮЧАЮЩЕЕ ИЛИ 140, семиразрядный сдвиговый регистр 141, схема ИСКЛЮЧАЮЩЕЕ ИЛИ 142, пятиразрядный сдвиговый регистр 143, мультиплексор 144, дешифратор 145. Вход логики циклического контроля соединен с первым входом схемы ИСКЛЮЧАЮЩЕЕ ИЛИ 137 и с первым входом мультиплексора 144. Вход синхронизации логики циклического контроля соединен по линии 119 для передатчика 13 и по линии 105 для приемника 12 с входами синхронизации регистров 139, 141, 143. Входы управления логики циклического контроля соединены с первым входом схемы 138 совпадений и входами управления мультиплексора 144. Выход данных логики циклического контроля соединен с выходом мультиплексора 144, к второму входу которого и второму входу схемы ИСКЛЮЧАЮЩЕЕ ИЛИ 137 подключен выход сдвигового регистра 143. Выход схемы ИСКЛЮЧАЮЩЕЕ ИЛИ 137 соединен с вторым входом схемы 138 совпадений, выход которой соединен с входом сдвигового регистра 139, с первыми входами схем ИСКЛЮЧАЮЩЕЕ ИЛИ 140, 142. Выход регистра 139 соединен с вторым входом схемы ИСКЛЮЧАЮЩЕЕ ИЛИ 140, выход которой соединен с входом сдвигового регистра 141. Выход сдвигового регистра 141 соединен с вторым входом схемы ИСКЛЮЧАЮЩЕЕ ИЛИ 142, выход которой соединен с входом сдвигового регистра 143. Выходы сдвигового регистра 139 соединены с первой группой входов дешифратора 145. Выходы сдвигового регистра 141 соединены с второй группой входов дешифратора 145. Выходы сдвигового регистра 143 соединены с третьей группой входов дешифратора 145, выход которого соединен с выходом контроля логики циклического контроля.
Фифо 90 приема и фифо 107 передачи являются памятью обратного магазинного типа, в которую входят (фиг. 15) оперативная память 146, оперативная память 147, мультиплексор 148, счетчики 149, 150. Входы фифо соединены с входами оперативной памяти 146, к выходам которой подключены выходы фифо. Входы фифо соединены с входами оперативной памяти 147, к выходам которой подключены выходы меток фифо. Входы управления фифо соединены с входами управления оперативной памяти 146, оперативной памяти 147, мультиплексора 148, счетчиков 149, 150. Выходы счетчика 149 соединены с первой группой входов мультиплексора 148, к второй группе входов которого подключены выходы счетчика 150. Выходы мультиплексора 148 соединены с входами адреса оперативной памяти 146 и оперативной памяти 147.
Запоминающее устройство 7 предназначено для хранения результатов арифметических и логических операций над данными. Операнды поступают на первую и вторую группы адресных входов запоминающего устройства 7, если операции производятся над двумя операндами, или поступают только на первую группу адресных входов запоминающего устройства 7, если операции производятся над одним операндом, при этом вторая группа входов используется для расширения разрядности сигналов управления запоминающим устройством 7. В последнем случае на вторую группу адресных входов и на входы управления запоминающего устройства 7 подают код выполняемой операции.
Запоминающее устройство 7 может быть реализовано, например, на основе постоянных программируемых запоминающих устройств или программируемых логических матриц. Программирование постоянных программируемых запоминающих устройств или программируемых логических матриц производится предварительно перед сборкой контроллера.
Запоминающее устройство 7 выполняет функции арифметико-логического устройства с нестандартным набором арифметических и логических команд, который выбирается индивидуально для каждого конкретного исполнения контроллера. Набор арифметических и логических команд реализуется путем программирования постоянных программируемых запоминающих устройств или программируемых логических матриц, входящих в состав запоминающего устройства 7. Нестандартный набор арифметических и логических команд при программировании запоминающего устройства 7 выбирается таким, чтобы повысить быстродействие контроллера и, в частности, за счет этого добиться сокращения аппаратурных затрат и расширения его функций.
При использовании постоянных программируемых запоминающих устройств для построения запоминающего устройства 7 в их ячейках памяти должны быть записаны результаты логических и арифметических операций над операндами, которые подаются на их адресные входы.
Примером программируемой в запоминающем устройстве 7 нестандартной арифметической операции может служить операция вычитания, выполняемая на запоминающем устройстве. Время выполнения такой операции меньше, чем время выполнения аналогичной операции на стандартных арифметико-логических устройствах, поскольку для выполнения этой операции не требуется перевода одного из операндов в дополнительный код. Программирование должно выполняться таким образом, чтобы результат операции читался на выходы запоминающего устройства 7 при подаче операндов на первую и вторую группы его входов, при подаче кода операции на входы управления и при подаче сигнала входного переноса на вход переноса запоминающего устройства 7.
Другим примером операции может служить операция умножения на константу. При этом запоминающее устройство 7 должно программироваться таким образом, чтобы при подаче множимого на первую группу адресных входов и при подаче на входы управления кода операции на выходах ячеек памяти запоминающего устройства 7 считывался результат операции, а выход переноса запоминающего устройства 7 мог указывать на то, что результат операции не вмещается в одно слово. В этом случае запоминающее устройство 7 программируется таким образом, чтобы при подаче кода операции извлечения из запоминающего устройства 7 следующего слова результата операции умножения на выходах запоминающего устройства 7 читалось следующее слово результата операции.
Если запоминающее устройство 7 выполнено односекционным на основе программируемого постоянного запоминающего устройства, то первая группа адресных входом запоминающего устройства 7 соединена с первой группой входов адреса программируемого постоянного запоминающего устройства, вторая группа входов адреса которого соединена с второй группой адресных входов запоминающего устройства 7, третья группа входов адреса соединена с входами управления запоминающего устройства 7, выходы соединены с выходами запоминающего устройства 7, вход адреса соединен с входом переноса запоминающего устройства 7, а выход - с выходом переноса запоминащего устройства 7.
Для выполнения операции вычитания предварительно перед сборкой контроллера программируемые постоянные запоминающие устройства программируются таким образом, что при подаче на входы управления запоминающего устройства 7 кода операции вычитания, на первую группу его адресных входов кода уменьшаемого, на вторую группу его адресных входов кода вычитаемого на выходы программируемого постоянного запоминающего устройства, являющиеся выходами запоминающего устройства 7, из его ячеек памяти считываются коды чисел, являющиеся разностью уменьшаемого и вычитаемого. Если уменьшаемое меньше вычитаемого, то на выходе переноса запоминающего устройства 7, являющемся выходом программируемого постоянного запоминающего устройства, из ячейки памяти, адрес которой определяется кодами уменьшаемого, вычитаемого и кодом операции, считывается сигнал выходного переноса. Сигнал входного переноса, подключаемый к одному из входов адреса программируемого постоянного запоминающего устройства, также влияет на результат операции, поскольку выбирается соответствующая ячейка памяти.
Если входов адреса программируемого постоянного запоминающего устройства недостаточно для выполнения операций над многоразрядными числами, то запоминающее устройство 7 выполняется секционированным. Каждая из секции 52 запоминающего устройства может выполняться на основе программируемого постоянного запоминающего устройства. При этом первая группа входов секции 52 запоминающего устройства предназначена для подачи нескольких разрядов уменьшаемого, вторая группа входов - нескольких разрядов вычитаемого, третья группа входов - кода операции, входы переноса секции 52 запоминающего устройства - выходных сигналов с выходов переноса запоминающего устройства 53 ускоренных переносов, входы переноса которого предназначены для подачи сигналов распространения и генерации переноса с выходов переноса секции 52 запоминающего устройства. Вход переноса запоминающего устройства 53 ускоренных переносов и вход переноса секции 52 запоминающего устройства предназначены для подачи на них сигнала входного переноса. Входы управления запоминающего устройства 53 служит для подачи на них сигналов кодов операции.
Запоминающее устройство 53 ускоренных переносов может быть выполнено, например, на основе программируемой логической матрицы или программируемого постоянного запоминающего устройства, которые программируются заранее перед сборкой контроллера таким образом, что при подаче на входы переносов сигналов распространения переноса и генерации переноса с выходов переноса секции 52 запоминающего устройства на выходах переносов запоминающего устройства 53 ускоренных переносов генерируются сигналы входных переносов для каждой из секций 52 запоминающего устройства, с учетом этих сигналов на выходах которых формируется результат операции.
Аналогично путем программирования в ячейках памяти запоминающего устройства 7 результатов операций реализуются операции сложения, сдвига, логического сложения и умножения. Кроме того, реализуются логические операции преобразования кодов, например преобразования кодов адреса с шины 18 адреса контроллера в коды адреса ячеек оперативной памяти 6. Реализуются логические операции преобразования слов состояний и управления в коды управления, которые подаются с выходов состояний запоминающего устройства 7 на первую группу входов шифратора 11 управления. По этим кодам управления контроллер переходит на тот или иной режим функционирования.
Каждая из операций, выполняемая на запоминающем устройстве 7, программируется таким образом, чтобы максимально уменьшить время реакции контроллера по отработке внешних воздействий и добиться выполнения процессов реального времени, например обеспечить обмен данными (словами управления и состояний) между шиной 17 данных контроллера и оперативной памятью 6 в режиме программного обмена со стороны ЭВМ 21 за время, отведенное для режимов чтения и записи на шине 17 данных. Операции, выполняемые на запоминающем устройстве 7, позволяют, например, обеспечить фильтрацию принимаемых из канала 24 связи пакетов по адресам назначения этих пакетов за промежутки времени, не превышающие время приема пакета минимальной длины.
Для расширения возможности запоминающего устройства 7 по хранению в его ячейках памяти результатов арифметических и логических операций над операндами, подаваемыми на его входы при выполнении однооперандных команд, вторая группа адресных входов запоминающего устройства 7 используется как группа управляющих входов, сигналы управления при этом подаются с второй и третьей групп выходов памяти 70 микрокоманд через регистровое устройство 8.
Контроллер 9 прерываний обеспечивает арбитраж запросов внутренних прерываний и формирует на своих выходах вектор внутренних прерываний для перевода контроллера в новый режим работы.
В качестве логической матрицы 66 может использоваться программируемая логическая матрица, программируемая перед установкой в контроллер. Программирование выполняется таким образом, что программируемая логическая матрица на своих выходах формирует сигналы вектора, значение которого определяется состоянием входов управления приоритетами, состоянием входов текущего приоритета и входов запросов. Программирование выполняется таким образом, что если состояние входов управления приоритетами определяет приоритет более высокий, чем запрашиваемый приоритет на входах запроса логической матрицы 66, то на ее выходе управления не формируется сигнал запроса. Если на входах запроса запрашиваемый приоритет равен или выше приоритета на входах управления приоритета и на первой группе входов логической матрицы 66 (выше текущего приоритета), то на выходах логической матрицы 66 должны формироваться сигналы вектора внутренних прерываний, соответствующие наивысшему из запрашиваемых приоритетов на входах запроса, а на выходе управления логической матрицы 66 должен формироваться сигнал запроса.
Регистр 67 служит для хранения сигнала запроса, который вместе с сигналами вектора внутренних прерываний по тактовому импульсу на входе синхронизации регистра 67 вектора прерываний переписывается на его выходы и на выход управления.
Приоритеты могут распределяться следующим образом. Наивысшим приоритетом обладают режим инициализации контроллера, затем его режимы чтения и записи при работе в программном обмене с ЭВМ 21, затем режимы перехода на прямой доступ к памяти ЭВМ 21 - переход на эти режимы производится после выполнения внутренних прерываний по сигналам запросов с выходов контроллера 2 шины. Следующий по значению приоритет у программы фильтрации принимаемых пакетов по адресам назначения. Запросы на прерывания для этого режима поступают с второй группы выходов состояний приемника 12. Следующий по приоритету запрос с выходов состояний передатчика 13 на прерывание по концу передачи пакета. Наиболее низкий приоритет поступает на вход запроса контроллера 9 прерываний при переходе на подпрограмму таймера-задатчика.
Шифратор 11 управления предназначен для формирования управляющих сигналов на узлы контроллера. Управляющие сигналы, в частности, могут формироваться в виде последовательности микрокоманд. Ргеистр 68 микрокоманд предназначен для временного хранения микрокоманд и для выдачи микрокоманд с первой группы выходов регистра 68 микрокоманд на шину 16 управления контроллера и с второй его группы выходов на шину 80 управления. Память 70 микрокоманд предназначена для хранения микрокоманд и констант. В качестве памяти 70 микрокоманд может быть использовано программируемое постоянное запоминающее устройство. Константы считываются с второй группы выходов памяти 70 микрокоманд. Последовательность выборки микрокоманд из памяти 70 микрокоманд обеспечивается подачей на ее входы адреса сигналов адреса, формируемых формирователем 73 адреса микрокоманды, дешифратором-преобразователем 72 начального адреса, контроллером 9 прерываний. Мультиплексор 71 предназначен для коммутации сигналов адреса с выходов формирователя 73 адреса микрокоманды, дешифратора-преобразователя 72 начального адреса, контроллера 9 прерываний на входы адреса памяти 70 микрокоманд. Дешифратор-преобразователь 72 начального адреса преобразует сигналы управления с выходов запоминающего устройства 7 в адреса памяти 70 микрокоманд. Генератор 75 синхронизирует работу шифратора 11 управления. По его импульсам осуществляются смена микрокоманд в регистре 68 микрокоманд, синхронизация формирователя 73 адреса микрокоманды, счетчика-таймера 77, контроллера 9 прерываний и регистрового устройства 8. Мультиплексор 69 позволяет выполнить переключение сигналов констант с второй группы выходов памяти 70 микрокоманд и сигналов интервалов времени с выходов счетчика-таймера 77 на первую группу входов регистрового устройства 8. Мультиплексор 76 обеспечивает по сигналам на своих входах управления переключение сигнала входного переноса или с выхода переноса запоминающего устройства 7, или с шины 80 управления на вход переноса запоминающего устройства 7. Мультиплексор 74 условий переключает со своих входов на вход условий формирователя 73 адреса микрокоманды сигналы условий. Счетчик-таймер 77 предназначен для синхронизации работы программных таймеров контроллера по сигналам с его выходов. Дешифратор 78 по достижении на выходах счетчика-таймера 77 определенного значения сигналов на своем выходе формирует сигнал, опрокидывающий RS-триггер 79. RS-триггер 79 формирует сигнал запроса прерываний контроллера 9 прерываний при переходе на подпрограмму таймера-задатчика.
Формирователь 73 адреса микрокоманды формирует адреса микрокоманд, которые поступают на его выходы или с выходов регистра 84, или с выходов стека 86, или с шины 80 управления через его входы адреса. Сумматор 85 при наличии на входе инкремента сигнала единицы наращивает адрес микрокоманды на единицу, что дает возможность формировать последовательность адресов. Стек 86 при переходе на подпрограмму обеспечивает загрузку адреса микрокоманды из регистра 84 в стек 86 с последующей его выгрузкой на выходы стека 86 при выходе из подпрограммы. Дешифратор 89 предназначен для установки режимов работы формирователя 73 адреса микрокоманды по сигналам на входах инструкций дешифратора 89. В соответствии с сигналом на входе условий на его выходах формируются сигналы управления узлами формирователя 73 адреса микрокоманды. Синхронизация узлов формирователя 73 адреса микрокоманды производится по импульсам, поступающим через его вход синхронизации с генератора 75. По этим импульсам производятся наращивание или вычитание содержимого реверсивного счетчика-указателя 87 стека, запись в стек 86, запись в регистр 84. Регистр 84 служит для временного хранения адресов микрокоманд, которые записываются в регистр 84 с выходов сумматора 85 по тактовым импульсам, поступающим на вход синхронизации регистра 84. Реверсивный счетчик-указатель 87 стека формирует сигналы адреса на входах адреса стека 86, необходимые для выбора ячеек памяти в стеке 86. Мультиплексор 88 служит для коммутации сигналов с выходов стека 86, с выходов регистра 84, с входов адреса формирователя 73 адреса микрокоманды на выходы формирователя адреса микрокоманды.
Контроллер 2 шины обеспечивает управление процессом обмена данными между ЭВМ 21 и контроллером. В режимах программного обмена, прямого доступа к памяти и в режиме прерывания сигналы на входах управления контроллера 2 шины задают режимы его работы. Контроллер 2 шины обеспечивает управление интерфейсом 1, приемником 12, передатчиком 13, селектором 10 адреса сигналами, подаваемыми с выходов управления контроллера 2 шины. Контроллер 2 шины при обмене данными с ЭВМ 21 выполняет обмен сигналами управления с ЭВМ 21 по системной шине 19 управления.
Дешифратор 59 предназначен для формирования сигналов, обеспечивающих управление процессом обмена данными между ЭВМ 21 и контроллером. Таймерное устройство 60 формирует сигналы, которые позволяют дешифратору 59 при формировании сигналов, управляющих процессом обмена данными, выдерживать требуемые на системной шине ЭВМ 21 временные соотношения. Усилители 58 предназначены для согласования цепей шины 19 управления контроллера с цепями контроллера 2 шины.
Интерфейс 1 предназначен для сопряжения шины 17 данных и шины 18 адреса контроллера с его внутренними цепями. Интерфейс 1 под управлением сигналов с выходов управления контроллера 2 шины выполняет обмен данными между шиной 17 данных и узлами контроллера. Интерфейс 1 пересылает сигналы адреса в режиме программного обмена с шины 18 адреса на адресные входы селектора 10 адреса и на первую группу входов мультиплексора 14 или пересылает в режиме прямого доступа к памяти сигналы адреса с разрядных выходов счетчика 3 адреса на шину 18 адреса контроллера.
Усилители 54 и 55 являются двунаправленными и предназначены для согласования внутренних цепей контроллера с его шиной 17 данных и шиной 18 адреса. Усилители 54 коммутируют сигналы адреса с разрядных выходов счетчика 3 адреса на шину 18 адреса или шины 18 адреса на первую группу входов мультиплексора 14. Усилители 55 коммутируют сигналы данных между шиной 17 данных контроллера и выходами регистра 56, а также второй группой входов мультиплексора 14 и входами передатчика 13. Регистр 56 предназначен для временного хранения данных, пересылаемых из контроллера на шину 17 данных. Коммутатор 57 предназначен для коммутации данных на входы регистра 56 с внутренней шины 15 контроллера или с выходов приемника 12.
Регистровое устройство 8 предназначено для хранения данных, загружаемых в его регистры 63 с выходов запоминающего устройства 7 с внутренней шины 15, а также для хранения констант, загружаемых с второй группы памяти 70 микрокоманд через мультиплексор 69, и хранения сигналов управления, загружаемых с третьей группы выходов памяти микрокоманд. Регистровое устройство 8 выдает сигналы из регистров 63 на входы адреса оперативной памяти 6, на внутреннюю шину 15 контроллера, на вторую группу адресных входов и на вход управления запоминающего устройства 7. Регистры 63 являются памятью со стековой организацией и служат для хранения данных, записываемых в регистры 63 под управлением сигналов с входов управления регистрового устройства 8 по синхроимпульсам с входа синхронизации регистрового устройства 8. Стековая организация памяти позволяет уменьшить время перехода на подпрограммы. Реверсивный счетчик 65 служит указателем стека, и его выходные сигналы, подаваемые на входы адреса регистров 63, позволяют производить выбор ячеек памяти регистров 63. Реверсивный счетчик 65 под управлением сигналов с входов управления регистрового устройства 8 позволяет наращивать или уменьшать адреса ячеек памяти регистров 63 при подаче на вход синхронизации реверсивного счетчика 65 синхроимпульсов с выхода генератора 75. Мультиплексор 62 предназначен для переключения входных, а мультиплексор 61 - для переключения выходных сигналов регистров 63 по сигналам с входов управления регистрового устройства 8. Двунаправленные усилители 64 служат для коммутации сигналов между входами-выходами регистрового устройства 8, выходами регистров 63, коммутируемыми через мультиплексор 61, или входами регистров 63, коммутируемыми через мультиплексор 62.
Оперативная память 6 служит для хранения в ее ячейках слов состояний и управления, которыми ЭВМ 21 и контроллер обмениваются в режиме программного обмена и режиме прямого доступа к памяти. Там же хранится вектор прерывания. Кроме того, оперативная память служит для хранения данных, необходимых для функционирования контроллера.
Мультиплексор 14 служит для коммутации данных на внутреннюю шину 15 контроллера, поступающих с шины 17 данных через интерфейс 1 на вторую группу входов мультиплексора 14, или коммутации сигналов адреса, поступающих с шины 18 адреса через интерфейс 1 на первую группу входов мультиплексора 14.
Счетчик 3 адреса предназначен для формирования сигналов адреса, которые в режиме прямого доступа поступают через интерфейс 1 на шину 18 адреса для адресации к памяти ЭВМ 21. Счетчик 3 адреса обеспечивает параллельную загрузку начального адреса с внутренней шины 15 контроллера и дальнейший отсчет адресов импульсов с выходов контроллера 2 шины.
Регистр 4 адреса служит для хранения конечного адреса зоны памяти ЭВМ 21, загружаемого в него с внутренней шины 15.
Схема 5 сравнения предназначена для формирования на ее выходе сигнала сравнения при равенстве содержимого счетчика 3 адреса и регистра 4 адреса, что позволяет определить момент, когда при чтении или записи в режиме прямого доступа к памяти обращение выполнено ко всем ячейкам памяти ЭВМ 21, начиная от начального адреса, загруженного по входам данных в счетчик 3 адреса, и заканчивая конечным адресом, загруженным в регистр 4 адреса.
Селектор 10 адреса предназначен для селекции адресов шины 18 адреса контроллера, с которым ЭВМ 21 обращается к контроллеру в режиме программного обмена. При этом с выходов управления контроллера 2 шины в режиме программного обмена при наличии сигналов адресов на шине 18 адреса на входы управления селектора 10 адреса поступают сигналы разрешения селекции. При распознании адреса селектора 10 адреса на своих выходах формирует сигналы запросов внутренних прерываний, поступающих на четвертую группу входов запросов контроллера 9 прерываний. Селектор 10 адреса предназначен для формирования сигналов запросов прерываний по чтению или по записи данных в режиме программного обмена в зависимости от того, производит ЭВМ 21 запись в котроллер или чтение данных.
Приемник 12 предназначен для приема с входа контроллера последовательного потока данных, представленных кодом Манчестер-11, декодирования принимаемых данных в код без возвращения к нулю, преобразования принимаемых данных в параллельный шестнадцатиразрядный код слов данных. Приемник 12 буферизирует принимаемые данные в фифо 90 приема и через свои выходы в режиме прямого доступа передает слова данных через интерфейс 1 на шину 17 данных контроллера. Он поддерживает режим прямого доступа к памяти, формируя на своих выходах управления сигналы управления контроллером 2 шины в режиме прямого доступа, и контролирует ошибки контроля в принимаемом сигнале и наличие передач в кабеле связи (контроль несущей). Приемник 21 различает в принимаемом коде ограничитель преамбулы, после которого следуют данные пакета, и формирует по числу принятых данных на своих выходах состояний сигнал требования внутренних прерываний на фильтрацию адресов назначений принимаемых пакетов, а также формирует биты состояний, определяющие качество принятого пакета, правильную его длину в битах и словах.
Декодер 96 предназначен для преобразования кода Манчестер-11 в код данных без возвращения к нулю на выходе декодера 96, сопровождаемый тактовыми синхроимпульсами на его выходе синхронизации. Сдвиговый регистр 92 служит для преобразования последовательного кода данных без возвращения к нулю в параллельный код шестнадцатиразрядных слов данных. Фифо 90 приема предназначено для временной буферизации принимаемых данных, что позволяет выполнить согласование скоростей обмена данными по каналу 24 связи и по шине 17 данных контроллера. Оно предназначено для хранения меток конца кадра, которыми метится последнее слово принятого пакета. Детектор 93 флага определяет момент приема ограничителя преамбулы в принимаемом пакете и вырабатывает при этом сигнал, который по S-входу опрокидывает RS-триггер 94, и с этого момента начинается прием данных из канала 24 связи. RS-триггер 94 формирует на своем выходе сигнал сброса счетчика 98 битов. Детектор 97 входного сигнала предназначен для формирования на его выходе сигнала несущей при наличии передач в канале 24 связи. Логика 95 циклического контроля предназначена для выявления ошибок в принимаемых пакетах. Контроль ошибок выполняется на основе полинома степени 16. При наличии ошибок в пакет на выходе контроля логики циклического контроля формируется сигнал ошибки. Счетчик 98 битов позволяет производить подсчет принимаемых битов данных по синхроимпульсам на его счетом входе и, таким образом, определять кратность принимаемых данных числу восемь для выявления байтовых границ принимаемых пакетов. Некратность числу восемь определяет ошибку приема. По счетчику 98 битов управляющая логика 100 формирует синхроимпульсы для подачи их на счетный вход счетчика 99 для подсчета числа принятых байтов в пакете. Счетчик 99 байтов предназначен для подсчета числа принимаемых байтов в пакете. Управляющая логика 100 предназначена для управления работой узлов приемника 12 и формирует на своих выходах сигналы запросов внутренних прерываний на фильтрацию пакетов по адресам назначения, которые выдаются на выходы состояний приемника. Управляющая логика 100 формирует на выходах приемника 12 сигналы состояний приема, которые подаются на третью группу входов мультиплексора 74 условий, и формирует на своих выходах, подключенных к выходам управления приемника 12, сигналы, управляющие работой контроллера 2 шины в режиме прямого доступа к памяти. Мультиплексор 91 предназначен для коммутации на внутреннюю шину 15 контроллера данных с выходов фифо 90 приема или битов состояний с шины 106, с выходов счетчика 98 битов, с выхода детектора 97 входного сигнала и с выхода логики 95 циклического контроля.
Передатчик 13 предназначен для обмена передаваемыми данными с ЭВМ 21 и внутренней шины 15 контроллера, а также для предварительной буферизации передаваемых данных в фифо 107 передачи и для последующего преобразования данных в код Манчестер-11 и передачи его в канал 24 связи. Передатчик 13 перед передачей пакета данных передает в канал 24 связи преамбулу, завершая ее ограничителем преамбулы, а завершает передачу пакета контрольной суммой, сгенерированной логикой 109 циклического контроля. Фифо 107 передачи предназначен для временного хранения передаваемых пакетов данных. Сдвиговый регистр 108 предназначен для преобразования передаваемых данных в последовательный код без возвращения к нулю. Логика 109 логического контроля предназначена для генерации контрольной суммы при делении передаваемых данных на полином степени 16. Логика циклического контроля аналогична имеющейся в прототипе. Коммутатор 110 предназначен для коммутации на вход кодера 111 данных с выхода сдвигового регистра 108 или контрольной суммы с выхода логики 109 циклического контроля, передаваемой после передачи последнего бита данных. Усилители 114 предназначены для согласования шины 116 и внутренней шины 15 контроллера при передаче на внутреннюю шину 15 битов состояний с выходов управляющей логики 113. Управляющая логика 113 предназначена для управления работой узлов передатчика 13. Она формирует и подает на вход меток фифо 107 передачи сигналы меток, которыми метится последнее слово передаваемого пакета при записи его в фифо 107 передачи. Управляющая логика 113 вырабатывает сигналы управления на входах управления фифо 107 передачи, по которым выполняется запись слов данных с входов передатчика 13 в фифо 107 передачи или чтение передаваемых слов данных на выходы фифо 107 передачи.
Управляющая логика 113 формирует при передаче пакета сигнал записи слов на входе записи сдвигового регистра 108 по состоянию выходов счетчика 112 битов, когда все биты предыдущего слова сдвинуты регистром 108, и формирует на входах управления логики 109 циклического контроля сигналы управления, по которым логика циклического контроля генерирует контрольную сумму для передаваемого пакета или выдает контрольную сумму на свой выход побитно, синхронизируя наличие каждого из битов контрольной суммы на выходе синхроимпульсами с выходам генератора 115. Управляющая логика 113 формирует сигналы управления на входе управления коммутатора 110, по которым производится коммутация сигналов или с выхода сдвигового регистра 108, или с выхода логики 109 циклического контроля на вход кодера 111. Она формирует сигнал сброса счетчика 112 битов, что позволяет последнему в отсутствие сигнала сброса производить счет синхроимпульсов с выхода генератора 115. Это необходимо для формирования управляющей логикой 113 по сигналам с выходов счетчика 112 битов сигналов управления для последовательного считывания слов из фифо 107 передачи и перезаписи их в сдвиговый регистр 108. Управляющая логика 113 формирует на выходах состояний вектор внутренних прерываний по концу передачи пакета для запроса внутренних прерываний по второй группе входов запросов внутренних прерываний контроллера 9 прерываний. Она формирует на входах управления усилителей 114 сигнал управления, по которому слова состояний передачи пересылаются через усилители 114 с выходов состояний передачи на внутреннюю шину 15 контроллера. Сигнал управления на входах управления усилитей 114 формируется при запросе слова состояния передатчика 13 по его второй группе входов управления со стороны шифратора 11 управления. Управляющая логика 113 формирует на входах управления фифо 107 передачи сигнала управления записью слов данных при наличии на выходах управления контроллера 2 шины сигналов управления записью, поступающих на первую группу входов управления передатчика 13. При этом слова данных с входов передатчика 13 записываются в фифо 107 передачи. Логика 113 управления в синхронном режиме по сигналам управления с выходов управления контроллера 2 шины, формируемых в режиме записи прямого доступа к памяти ЭВМ 21, формирует на выходах управления передатчика 13 сигналы синхронизации, поддерживающие обмен между ЭВМ 21 и передатчиком 13. Логика 113 управления прекращает обмен данными с ЭВМ 21, снимая сигнал занятости с выходов управления передатчика 13 при наличии на входе передатчика сигнала сравнения с выхода "Равно" схемы 5 сравнения. Она имеет связь с внутренней шиной 15 контроллера через пятую группу своих входов. Это позволяет уменьшить число входов управления на второй группе входов управления передатчика 13 за счет того, что сигналы управления передатчиком подаются одновременно по внутренней шине 15 контроллера и по второй группе входов управления передатчика 13. Счетчик 112 битов служит для счета числа битов принятых данных. Кодер 111 предназначен для преобразования последовательного кода данных и кода контрольной суммы в код Манчестер-11.
Схема 126 совпадений формирует на своем выходе инверсный код с возвращением к нулю передаваемых данных. Инвертор 125 и схема 127 совпадений формируют на своем выходе инверсный код с возвращением к нулю инвертированных передаваемых данных. JK-триггер 128 формирует на своем выходе код Манчестер-11. JK-триггер 129 является делителем частоты и формирует на своем выходе импульсы, подаваемые на вторые входы 126 и 127 совпадений.
Линия 130 задержки декодера 96 служит для фазовой задержки принимаемого кода Манчестер-11. Схемы ИСКЛЮЧАЮЩЕЕ ИЛИ 131, 132, инвертор 133 и D-триггер 134 служат для выделения синхронизирующей тактовой частоты из принимаемого кода Манчестер-11. D-триггер 135 служит для формирования из принимаемого сигнала кода данных без возвращения к нулю. Схема ИСКЛЮЧАЮЩЕЕ ИЛИ 137, схема 138 совпадений, сдвиговый регистр 139, схема ИСКЛЮЧАЮЩЕЕ ИЛИ 140, сдвиговый регистр 141, схема ИСКЛЮЧАЮЩЕЕ ИЛИ 142, сдвиговый регистр 143 служат для вычисления контрольной суммы при делении входного кода данных на образующий полином х15125+1.
Мультиплексор 144 служит для коммутации на выход данных входных данных, подаваемых на его первый вход, или кода контрольной суммы, подаваемого на его второй вход. Это позволяет выполнять передачу кода контрольной суммы после передачи пакета данных. Дешифратор 145 по сигналам на его входах формирует на своем выходе контроля сигнал ошибки контрольной суммы при наличии ошибки в принимаемых на вход логики циклического контроля данных.
Оперативная память 146 служит для временного хранения принимаемых или передаваемых данных, что позволяет согласовывать скорости обмена в канале 24 связи и на шине 17 данных контроллера. Оперативная память 147 служит для хранения сигналов меток, которыми размечаются слова принимаемых или передаваемых данных. Мультиплексор 148 переключает сигналы адресов с выходов счетчиков 149 и 150 на входы адреса оперативной памяти 146 и оперативной памяти 147. Счетчик 149 служит для формирования адреса при записи слов данных в оперативную память 146. Счетчик 150 служит для формирования адреса при считывании слов данных из оперативной памяти 147.
Работает контроллер следующим образом.
Перед началом работы ЭВМ 21 инициализирует контроллер. Его инициализация осуществляется или при подаче сигнала инициализации по системной шине 19 управления со стороны ЭВМ 21, или программной инициализацией. В режиме инициализации контроллер записывает в оперативную память 6 слова начальных состояний слов состояний и управления. Переход на подпрограмму инициализации осуществляется при запросе прерывания на третьей группе входов запросов прерываний контроллера 9 прерываний. Эти запросы поступают с выходов контроллера 2 шины при наличии на его входах-выходах сигнала инициализации со стороны ЭВМ 21.
Переход на подпрограмму инициализации может быть произведен при записи первого слова состояний из ЭВМ 21 в контроллер в режиме программного обмена. В процессе работы контроллер обменивается данными с ЭВМ 21 в режиме программного обмена и в режиме прямого доступа к памяти ЭВМ 21. В режиме программного обмена контроллер и ЭВМ 21 обмениваются словами состояний и словами управления. В режиме прямого доступа к памяти ЭВМ 21 контроллер обменивается с ЭВМ 21 принимаемыми из канала 24 связи или передаваемыеми в канал 24 связи пакетами, а также данными управления. Слова состояний и управления хранятся в оперативном запоминающем устройстве 7. Обмен данными в режиме прямого доступа к памяти ЭВМ 21 может производиться группами слов без возврата системной шины в пользование ЭВМ 21.
Обмен данными в режимах программного обмена и прямого доступа к памяти осуществляется при управлении узлами контроллера микрокомандами, которые выбираются из памяти 70 микрокоманд во время выполнения соответствующих подпрограмм, описанных далее. Переход на какую-либо управляющую подпрограмму возможен при формировании вектора внутренних прерываний на выходах контроллера 9 прерываний, а также при формировании кода начального адреса управляющей подпрограммы на выходах запоминающего устройства 7, а также по адресам ветвлений, подаваемых с второй группы выходов регистра 68 микрокоманд на входы адреса формирователя 73 адреса микрокоманды. По векторам внутренних прерываний выполняются переходы на управляющие подпрограммы обслуживания внутренних прерываний, в число которых входят подпрограммы, перечисляемые далее в порядке убывания их приоритетности: подпрограмма инициализация контроллера, подпрограммы чтения и записи при программном обмене данными между ЭВМ 21 и контроллер, подпрограмма прямого доступа к памяти, подпрограмма фильтрации принимаемых пакетов по адресам назначения, подпрограмма таймера-задатчика.
Код начального адреса управляющих подпрограмм формируется на выходах запоминающего устройства 7 в результате выполнения нестандартных логических операций над словами управления и состояний. Код начального адреса управляющих подпрограмм преобразуется на выходах дешифратора-преобразователя 72 начального адреса в адрес памяти 70 микрокоманд.
Обмен данными, представляющими собой пакеты информации, слова управления и слова состояний, выполняется между контроллером, ЭВМ 21, приемником 12 и передатчиком 13. Приемник 12 принимает из канала 24 связи пакеты данных. Передатчик 13 передает в канал 24 связи пакеты данных. В режиме программного обмена ЭВМ 21 обращается к контроллеру по нескольким адресам шины 18 адреса для выполнения циклов чтения или записи.
Передача пакетов (фиг. 16) начинается с передачи преамбулы - чередующейся последовательности единиц и нулей, заканчивающейся двумя единицами - ограничителем преамбулы. Преамбула необходима для синхронизации приемников 12 всех устройств, подключенных к каналу 24 связи. Ограничитель преамбулы отделяют преамбулу от поля номера устройства, ведущего передачу (поле НУП), в котором передается уникальный номер устройства в локальной вычислительной сети. Этим номером определяется порядок передач пакетов устройствами. В поле управления указывается тип передаваемого пакета. Установленный бит 15 или бит 14 указывает на то, что передается пакет устройства-монитора. Установленный бит 13 указывает, что передается пакет маркера.
Устройство-монитор предоставляет право на передачу пакетов в канал 24 связи устройствам. Пакет монитора может содержать произвольные данные. Пакет верхних уровней локальной вычислительной сети имеет в поле управления нулевые биты 15, 14 и 13, установленные в ноль.
В поле адреса назначения указывается 48-битный адрес назначения пакета. Адрес назначения может быть индивидуальный (первый бит адреса установлен в ноль), групповым (первый бит адреса установлен в единицу) или широковещательным (все биты адреса установлены в единицу). В поле адреса источника указывается адрес устройства - отправителя пакета. В поле данных содержатся данные пакета. В поле контроля суммы передается контрольная сумма для данных, содержащихся в полях, передаваемых после ограничителя преамбулы.
Установленный бит 15 в поле управления означает, что передаваемый пакет является пакетом маркера. Установленный бит 14 в поле управления означает, что станция, передающая пакет, готовится стать станцией-монитором. Установленный бит 13 в поле управления означает, что передается пакет станции-монитора.
В памяти ЭВМ 21 для общения с контроллером в режиме прямого доступа отводятся зоны, предназначенные под хранение данных, подлежащих для передачи в канал 24 связи, - буферы передачи и зоны памяти, куда должна записываться принимаемая информация, буферы приема, а также зоны памяти, отведенные под дескрипторы буферов приема и дескриптов буферов передачи. Каждый из дескрипторов представляет собой зону памяти ЭВМ 21 из нескольких ячеек (фиг. 17). Дескрипторы в памяти ЭВМ 21 располагаются в смежных зонах памяти, т. е. следуют один за другим, образуя группы дескрипторов по восемь дескрипторов в группе (цепочки дескрипторов). Для каждого из буферов приема предназначается дескриптор буфера приема. Для каждого из буферов передачи предназначен дескриптор буфера передачи. В первой ячейке дескриптора хранится флаг дескриптора. Значащими битами флага являются биты 15 и 14. Они предназначены для квитирования установленных связей между ЭВМ 21 и контроллером. Биты инициализируются программным обеспечением ЭВМ 21 и модернизируются контроллером. Если биты 15 и 14 установлены в ноль (00), то буфер используется программным обеспечением. Если бит 15 и бит 14 имеют значение "1" и "0", то контроллер еще не использовал буфер, описываемый дескриптором. Если значение бита 15 и бита 14 "1" и "1", то контроллер использует буфер.
Во второй ячейке дескриптора буфера хранятся старшие биты стартового адреса буфера, описываемого дескрптором (биты 00-05), и байт состояний (биты 08-15). В третьем слове дескриптора хранятся младшие биты стартового адреса буфера (биты 00-15). Общая длина стартового адреса буфера равна двадцати двум битам.
Состояние битов 15 и 14 байта состояний "0" и "0" говорит о том, что биты стартового адреса буфера не значимые. Состояние битов 15 и 14 "1" и "0" говорит о том, что биты стартового адреса буфера значимые. Состояние битов 15 и 14 "1" и "1" говорит о том, что биты стартового адреса являются стартовым адресом дескриптора буфера, что необходимо для перехода с одной группы дескрипторов на другую. Установленный бит 13 байта состояний показывает, что буфер, описываемый дескриптором, содержит последний сегмент пакета. Установленный бит 12 байта состояний показывает, что буфер, описываемый дескриптором, содержит управляющие данные или, другими словами, является установочным пакетом. Остальные биты третьей ячейки являются резервными.
В четвертой ячейке дескриптора хранится слово длины буфера, описываемого дескриптором. По слову длины буфера и стартовому адресу буфера можно вычислить адрес последней ячейки буфера. В пятой ячейке дескриптора содержится первое слово состояний буфера. В шестой ячейке дескриптора содержится второе слово состояний буфера. За шестой ячейкой дескриптора буфера, если он не является последним в группе дескрипторов, следует флаг следующего дескриптора.
Значение битов первого слова состояний дескриптора буфера следующее: биты 15 и 14, установленные в состояние "1" и "0", информируют о том, что данный буфер не использовался контроллером. Состояние этих битов "1" и "1" означает, что буфер использовался контроллером, но не является последним сегментом пакета. Состояние этих битов "0" и "0" означает, что буфер содержит последний сегмент пакета, принятого или переданного с ошибками.
Для дескриптора буфера передачи состояния битов 15 и 14 "0" и "0" в первом слове состояний передачи означает ошибку передачи по причине отсутствия сигнала, выявляемого детектором 97 входного сигнала в канале 24 связи при передаче пакета передатчиком 13, или по причине отсутствия подтверждения о принятом пакете от сетевого устройства, которому предназначался пакет. Одновременно при битах 15 и 14, равных "0" и "0", могут устанавливаться биты 12, 09, 03. Установленный бит 12 определяет отсутствие сигнала в канале 24 связи при передаче. Установленный бит 09 указывает, что на переданный пакет не поступило подтверждение о приеме. Биты 08, 07, 06, 05 содержат счетчик количества попыток передач пакета, на который не было подтверждения о приеме. Установленный бит 03 указывает, что произведено наибольшее допустимое количество передач одного и того же пакета без наличия подтверждения о приеме этого пакета. Биты во втором слове состояний дескриптора буфера передачи несут информацию об интервале времени между началом передачи пакета и поступлением подтверждения о его приеме.
Для дескриптора буфера приема в первом слове состояний значение битов 15 и 14 "0" и "0" означает ошибку приема по причине приема недопустимой длины пакета (например, длина более 1500 байтов) или по причине приема пакета с ошибкой циклического контроля, или по причине приема очень короткого пакета (например, менее 64 байтов), или по причине приема пакета, количество битов в котором не кратно восьми. При сбросе битов 15 и 14 в состояние "0" и "0" устанавливаются биты 11, 02, 01, 00. Установленный бит 11 означает, что принят короткий пакет менее 64 байтов длиной. Установленный бит 02 указывает, что длина принятого пакета имеет число битов, не кратных восьми. Установленный бит 01 говорит о наличии ошибки циклического контроля. Установленный бит 00 указывает, что пакет имеет недопустимо большую длину. Биты 10, 09, 08, 07, 06 обозначают номер пакета в сообщении.
Во втором слове состояний дескриптора буфера приема содержится информация о количестве байтов в принятом пакете. Установочный пакет описывается дескриптором буфера передачи, в котором бит 12 установлен в состояние "1". Установочный пакет содержит таблицу адресов назначения пакетов, которые контроллер должен принимать из канала 24 связи в свой буфер приема и транспортировать в памяти ЭВМ 21 в режиме прямого доступа
Установочный пакет может содержать до четырнадцати шестибайтовых адресов назначения пакетов, один из которых является широковещательным адресом, другой - индивидуальным адресом и остальные двенадцать адресов могут быть групповыми или индивидуальными. Широковещательный адрес предназначен для всех станций сети, подключенных к каналу 24 связи, и содержит единицы во всех своих сорока восьми битах. Индивидуальный адрес начинается с бита, установленного в ноль, - пакет с индивидуальным адресом принимает только один контроллер. Групповой адрес имеет первый бит, установленный в единицу, и служит для адресации к группе контроллеров. Групповые и индивидуальные адреса могут программно изменяться со стороны ЭВМ 21. Расположение адресов назначения в буфере установочного пакета в памяти ЭВМ 21 может быть, например, следующее: в буфере все четырнадцать адресов назначения занимают по три слова (шесть байтов) и образуют непрерывную зону в 42 слова.
Установочный пакет может содержать не двенадцать, а меньшее число групповых адресов назначения пакетов. Установочный пакет содержит в последних двух словах ( в слове числа и в слове номера контроллера) информацию о числе (NГ) контроллеров, подключенных к каналу 24 связи, и о номере (NУ) контроллера в канале 24 связи. Длина установочного пакета описывается четвертым словом дескриптора установочного пакета, в котором указывается длина буфера.
Контроллер обменивается с ЭВМ 21 дескрипторами буферов, установочными пакетами в режиме прямого доступа к памяти. Для хранения дескрипторов и установочных пакетов в оперативной памяти 6 отводятся ячейки памяти.
В оперативной памяти 6 хранятся слова состояний и управления, которыми ЭВМ 21 и контроллер обмениваются в режиме программного обмена по четырнадцати адресам шины 18 адреса. Этим адресам (адресам регистров порта) шины 18 адреса должны быть поставлены в соответствие четырнадцать адресов оперативной памяти 6, через которые выполняется программный обмен и которые содержат следующие слова: только читаемые шесть слов физического адреса назначения, в младших байтах которых содержатся шесть байтов физического адреса назначения, а в двух старших байтах двух последних слов содержится контрольный код физического адреса назначения; только записываемые четыре слова стартовых адресов дескрипторов буферов приема (два слова) и дескрипторов буферов передачи (два слова); слово вектора прерываний; первое слово состояний и управления.
Физический адрес назначения является индивидуальным адресом назначения, хранящимся в памяти 70 микрокоманд, откуда он считывается при инициализации контроллера через вторую группу выходов шифратора 11 управления, через регистровое устройство 8 в оперативную память 6. Аналогично из памяти 70 микрокоманд в оперативную память 6 записывается контрольный код физического адреса назначения, который был вычислен и занесен в память 70 микрокоманд при ее первоначальном программировании.
ЭВМ 21 в режиме программного обмена считывает слова физического адреса назначения и контрольный код физического адреса назначения из контроллера и может переназначать или записывать физический адрес назначения в установочном пакете в качестве индивидуального адреса назначения.
В режиме программного обмена ЭВМ 21 записывает в оперативную память 6 слово младших битов и слово старших битов стартового адреса дескриптора буфера передачи, слово младших битов и слово старших битов стартового адреса дескриптора буфера приема, а также слово вектора внешних прерываний и первое слово состояний и управления. Вектор прерываний, записываемый от ЭВМ 21 в контроллер, необходим для выполнения режима внешних прерываний.
Биты первого слова состояний и управления имеют следующее значение. Бит 15 - бит запроса прерываний ЭВМ 21 устанавливается контроллером после приема пакета из канала 24 связи в фифо 90 приема и транспортировки его в ЭВМ 21 и модернизации битов 15 и 14 в первом слове состояний последнего дескриптора буфера, в котором содержится последний сегмент сообщения. Программа обслуживания прерываний, выполняемая ЭВМ 21, должна очищать этот бит. Бит 15 очищается при инициализации контроллера.
Бит 14 - бит запроса прерываний устанавливается контроллером, если список дескрипторов приема исчерпан. Программа обслуживаний прерываний и сигнал инициализации контроллера сбрасывают этот бит.
Бит 13 устанавливается контроллером при чтении со стороны ЭВМ 21 слова состояний и управления в случае, если в канале 24 связи имеется сигнал передаваемых пакетов (сигнал несущей), обнаруживаемый детектором 97 входного сигнала.
Бит 12 - резерв, бит 11- резерв, бит 10 - резерв.
Бит 09 устанавливается со стороны ЭВМ 21, если контроллер переводится в режим закольцовывания. При этом контроллер транспортирует из ЭВМ 21 в фифо 107 передачи, передает в канал 24 связи, принимает из канала 24 связи в фифо 90 приема, транспортирует в ЭВМ 21 передаваемые им самим пакеты.
Бит 07 устанавливается контроллером при запросе прерываний программы, выполняемой ЭВМ 21, когда передатчик 13 передал сообщение в канал 24 связи и модернизировал биты 15 и 14 в первом слове состояний дескриптора буфера передачи. Программное обеспечение и сигнал инициализации сбрасывают этот бит.
Бит 06 устанавливается программным обеспечением, когда контроллеру разрешено генерировать сигнал прерываний ЭВМ 21. Этот бит очищается сигналом сброса и программным обеспечением.
Бит 05 устанавливается контроллером при запросе прерываний программного обеспечения ЭВМ 21, если список дескрипторов буферов приема исчерпан.
Бит 05 устанавливается в режиме инициализации и при установке бита 02. Бит 05 сбрасывается контроллером после загрузки в него слова младших и слова старших битов дескриптора буфера приема.
Бит 04 - резерв, бит 03 - резерв.
Бит 02 устанавливается контроллером при генерации сигнала запроса на прерывание ЭВМ 21, если ЭВМ 21 в режиме прямого доступа к памяти в течение времени тайм-аута таймерного устройства 60 не ответила сигналом готовности, подтверждающим чтение или запись слова.
Бит 01 устанавливается ЭВМ 21, если программное обеспечение производит инициализацию контроллера.
Бит 00 устанавливается ЭВМ и разрешает прием пакетов из канала 24 связи.
В оперативной памяти 6 хранится второе слово состояний и управления, не доступное для ЭВМ 21. Установленный бит 00 этого слова означает, что в контроллер произведена загрузка стартового адреса дескриптора буфера передачи. Установленный бит 01 означает, что в контроллер произведена загрузка стартового адреса дескриптора буфера приема. Установка бита 02 означает, что производится пересылка в режиме прямого доступа к памяти из ЭВМ 21 в кортроллер слов дескриптора буфера передачи. Установка 04 означает, что производится пересылка из ЭВМ 21 в контроллер слов дескриптора буфера приема. Установка бита 05 означает, что производится пересылка дескриптора буфера передачи из контроллера в ЭВМ 21. Установка бита 06 означает, что производится пересылка дескриптора буфера приема из контроллера в ЭВМ 21. Установка бита 08 означает, что производится пересылка из ЭВМ 21 в контроллер содержимого буфера передачи. Установка бита 09 означает, что производится пересылка из контроля в ЭВМ 21 содержимого буфера приема. Установка бита 10 означает, что производится ожидание режима прямого доступа к памяти ЭВМ 21. Установка бита 12 говорит о том, что производится пересылка из ЭВМ 21 установочного пакета.
Режимы работы контроллера 2 шины задаются сигналами на его входах управления. Если на третью группу его входов управления подан сигнал режима программного обмена, то он выдает на выходы управления сигналы управления, по которым сигналы адреса с шины 18 адреса поступают через интерфейс 1 на адресные входы селектора 10 адреса. При поступлении на системную шину 19 управления сигналов чтения или записи, сопровождающих сигналы адреса на шине 18 адреса, на выходах управления дешифратора 59 формируется сигнал, который позволяет селектору 10 адреса дешифратора адрес и в случае, если адресация в режиме программного обмена производится к контроллеру, на выходах селектора 10 адреса формируются сигналы запроса внутренних прерываний по чтению в режиме чтения или по записи в режиме записи.
Когда контроллер завершает режим чтения или записи, на третью группу входов управления контроллера 2 шины подается сигнал готовности, по которому дешифратор 59 формирует сигнал "Готовность", и этот сигнал поступает на системную шину 19 управления, что завершает циклы чтения и записи. Если на третью группу входов управления контроллера 2 шины или на первую группу его входов управления, или на вторую группу его входов управления подаются сигналы режима чтения или записи в режиме прямого доступа к памяти ЭВМ, то дешифратор 59 формирует на второй группе выходов сигнал требования прямого доступа, который подается через усилители 58 на системную шину 19 управления.
При появлении на системной шине 19 управления со стороны ЭВМ 21 сигнала подтверждения прямого доступа дешифратор 59 на второй группе выходов формирует сигналы "Занято". Эти сигналы выдаются на системную шину 19 управления как сигналы подтверждения захвата контроллером системной шины ЭВМ 21. На третьей группе выходов дешифратора 59 формируются сигналы запросов внутренних прерываний по подтверждению режима прямого доступа. На второй группе выходов дешифратора 59 формируются сигналы управления, по которым сигналы адреса с разрядных выходов счетчика 3 адреса выдаются через интерфейс 1 на шину 18 адреса контроллера. Если установлен при этом режим записи при прямом доступе к памяти, то по сигналам управления с второй группы выходов управления дешифратора 59 сигналы данных с выходов регистра 56 через усилители 55 шины данных считываются на шину 17 данных контроллера. На четвертой группе выходов дешифратора 59 формируются сигналы запуска таймерного устройства 60, по которым таймерное устройство начинает отсчет интервала времени, по окончании которого с его выходов на третью группу входов дешифратора 59 поступают сигналы. По ним на первой группе выходов дешифратора 59 формируется сигнал "Чтение" или сигнал "Запись" в зависимости от выбранного режима прямого доступа.
При установке на второй группе входов дешифратора 59 режима внешних прерываний дешифратор 59 на второй группе своих выходов формирует сигнал требования прерывания. При появлении на системной шине 19 управления со стороны ЭВМ 21 сигнала подтверждения прерываний дешифратор 59 на второй группе своих выходов формирует сигнал "Захват", на третьей группе своих выходов формирует сигналы управления, по которым вектор прерываний считывается из регистра 56 на шину 17 данных контроллера. На четвертой группе выходов дешифратора 59 формируется сигнал, по которому производится запуск таймерного устройства 60. По истечении промежутка времени, достаточного для установки сигналов вектора прерываний на шине 17 данных, по сигналам с выходов таймерного устройства на второй группе выходов дешифратора 59 формируется сигнал "Запись", подаваемый на системную шину 19 управления. При поступлении с шины 19 управления на первую группу входов дешифратора 59 со стороны ЭВМ 21 сигнала "Готовность" прекращается выдача вектора на шину 17 данных и завершается режим внешних прерываний снятием с системной шины 19 управления сигнала "Захват".
Передатчик 13 производит буферизацию передаваемого пакета в фифо 107 передачи. Данные в фифо 107 передачи записываются с внутренней шины 15 контроллера через интерфейс 1 под управлением сигналов на его второй группе входов управления. Таким образом, может записываться, например, преамбула пакета. Данные в фифо 107 передачи могут записываться с шины 17 данных контроллера через интерфейс 1 под управлением сигналов на первой группе его входов управления. Данные в фифо 107 сопровождаются метками по его входам меток.
При записи в фифо 107 передачи данных или слов преамбулы с внутренней шины 15 каждое слово данных сопровождается по второй группе входов управления передатчика 13 сигналами управления записью данных и сигналами меток. Метки дают возможность отметить слова преамбулы, которые не подвергаются делению на образующий полином на логике 109 циклического контроля в отличие от слов данных.
После загрузки в фифо 107 передачи последнего слова данных на третью группу входов управляющей логики 113 подается сигнал записи метки конца пакета. При этом на входы меток фифо 107 передачи с выходов управляющей логики 113 подается метка конца пакета, а на входы управления фифо 107 передачи подается сигнал записи, по которому метка конца пакета переписывается в фифо 107 передачи.
По сигналам начала передачи на третьей группе входов управляющей логики 113 передатчик 13 начинает передачу пакета. При этом синхронизирующие импульсы с генератора 115 подаются на управляющую логику 113, на счетный вход счетчика 112 битов, по выходным сигналам которого и по сигналам меток с выходов меток фифо 107 передачи управляющая логика 113 управляет процессом передачи данных. При этом на входы управления фифо 107 передачи поступают сигналы чтения, по которым на выходы фифо 107 передачи из ячеек памяти считываются слова преамбулы и слова данных, которые переписываются в сдвиговый регистр 108 и через коммутатор 110, через кодер 111 передаются последовательным потоком битов через выход передатчика 13 в канал 24 связи. По меткам слов данных, читаемых с выходов меток фифо 107 передачи, управляющая логика 113 формирует сигналы разрешения вычисления контрольной суммы, которые поступают на входы управления логики циклического контроля, на которой производится вычисление контрольной суммы для данных, поступающих на вход логики циклического контроля.
По сигналам метки конца пакета и сигналам с выходов счетчика 112 битов прекращается передача данных и через коммутатор 110 с выхода логики циклического контроля производится передача контрольной суммы. По окончании передачи пакета с выходов состояний передатчика 13 выдается сигнал внутренних прерываний конца передачи пакета в канал 24 связи.
Приемник 12 буферизирует принимаемые из канала 24 связи данные в фифо 90 приема. Из фифо приема слова данных считываются или на внутреннюю шину 15 контроллера, или на его шину 17 данных.
Приемник 12 начинает прием после поступления на вторую группу его входов управления сигнала разрешения приема с выходов шифратора 11 управления. С выходов управляющей логики 100 в этом случае подается сигнал сброса RS-триггера 94 на его R-вход. Принимаемый сигнал данных декодируется декодером 96, на выходе которого формируется код без возвращения к нулю, сопровождаемый тактовыми импульсами с выхода синхронизации декодера 96.
Данные сдвигаются сдвиговым регистром 92, и при наличии на выходах регистра 92 параллельного кода ограничителя преамбулы детектор 93 флага на своем выходе формирует сигнал, устанавливающий по S-входу RS-триггер 94, чем снимается сигнал сброса с входа сброса счетчика 98 битов. Счетчик 98 битов начинает подсчет тактовых импульсов с выхода синхронизации декодера 96. По значению выходных сигналов счетчика 98 битов производится перезапись слов данных с выходов сдвигового регистра 92 в фифо 90 приема по сигналам записи, подаваемым на его входы управления. На входы меток фифо 90 приема подаются метки слов данных, которые записываются в фифо приема по сигналам записи.
По сигналам, подаваемым на входы управления, логика 95 циклического контроля производит подсчет контрольной суммы. По окончании приема пакета по сигналу с выхода детектора 97 входного сигнала управляющая логика 100 выдает сигналы управления, по которым сигналы с выхода контроля логики 95 циклического контроля, с выходов счетчика 98 битов поступают на входы мультиплексора 91.
Во время приема пакетов ведется подсчет слов данных по сигналам на счетном входе счетчика 99 байтов. Когда в фифо 90 приема записаны все слова адреса назначения пакета, по сигналам с выходов счетчика 99 байтов на выходах состояния приемника 12 формируется сигнал внутренних прерываний на фильтрацию адреса назначения. По сигналу чтения данных, подаваемых на вторую группу входов управления приемника 12, управляющая логика 100 выдает на входы управления фифо 90 приема сигналы чтения, и слова адреса назначения пакета с выходов фифо 90 приема через мультиплексор 91 считываются на внутреннюю шину 15 контроллера.
Если адрес назначения пакета не различается контроллером как предназначенный ему, то на вторую группу входов управления приемника 12 подается сигнал сброса пакета, по которому на входы управления фифо 90 приема также подается сигнал сброса, производится сброс счетчиков 149 и 150 и фифо 90 приема устанавливается в исходное состояние. Слова пакета, имеющего адрес назначения, распознаваемый контроллером как свой, пересылаются в режиме прямого доступа к памяти ЭВМ из фифо 90 приема на шину 17 данных контроллера.
Приемник 12 переходит в режим поддержки прямого доступа к памяти, когда на его вторую группу входов управления подается сигнал инициализации режима прямого доступа. При этом с выходов управляющей логики 100 на выходы управления приемника 12 подается сигнал поддержки требования прямого доступа к памяти. При приходе на первую группу входов управления приемника 12 сигнала подтверждения режима прямого доступа к памяти управляющая логика 100 на выходы управления приемника 12 выдает сигнал занятости системной шины и сигнал записи слова. При приходе сигнала готовности на первую группу входов управления приемника 12, при отсутствии на второй группе входов управления приемника 12 сигнала требования окончания прямого доступа к памяти, формируемого в микропрограмме по тайм-ауту счетчика-таймера 77, при отсутствии на входе управления приемника 12 сигнала требования окончания прямого доступа к памяти, формируемого по сигналу с выхода схемы 5 сравнения, и при отсутствии на выходах меток фифо 90 приема сигнала метки конца пакета управляющая логика 100 выдает на выходы управления приемника 12 сигнал записи слова. В противном случае управляющая логика 100 снимает с выходов управления приемника 12 сигнал занятости шины и этим прекращается режим прямого доступа к памяти ЭВМ.
Вместе с выдачей сигнала записи на выходы управления приемника 12 на входы управления фифо 90 приема поступает сигнал чтения и с выходов данных фифо 90 приема считываются слова данных, а с выходов меток - метки. Если с выходов меток фифо 90 приема считана метка конца пакета, то вместе с прекращением прямого доступа к памяти на вторую группу выходов состояний приемника 12 управляющая логика 100 выдает сигнал внутренних прерываний по концу пересылки пакета. При наличии на второй группе входов управления приемника 12 сигнала сброса прерываний сигналы запросов внутренних прерываний снимаются с выходов состояний приемника 12.
Приемник 12 по сигналам запроса на второй группе входов управления через мультиплексор 91 выдает на внутреннюю шину 15 контроллера сигналы состояний с выходов счетчика 98 битов, по которым определяется кратность принятых битов числу восемь, выдает сигнал с выхода контроля логики 95 циклического контроля и с выхода детектора 97 входного сигнала.
Программный обмен словами управления и словами состояний через оперативную память 6 осуществляется следующим образом. ЭВМ 21 обращается к контроллеру с циклами чтения или записи. При этом она выставляет на шине 18 адреса контроллера один из адресов, отведенный под адресацию регистров порта. Каждому из двенадцати считываемых или записываемых в режиме программного обмена слов состояний и слов управления, хранящихся в оперативной памяти 6, соответствует единственный адрес (адрес регистра порта) на шине 18 адреса.
По системной шине 19 управления контроллера ЭВМ 21 выставляет сигналы управления чтением или записью. Контроллер 2 шины, принимая эти сигналы через входы-выходы, на выходах формирует сигналы чтения или записи, а на выходах управления вырабатывает сигналы разрешения работы селектора 10 адреса, и сигналы управления, по которым сигналы с шины 18 адреса через выходы адреса интерфейса 1 поступают на адресные входы селектора 10 адреса. Селектор адреса при распознании адресов вырабатывает на выходе сигнал запроса внутренних прерываний, по которому, а также по сигналам запросов внутренних прерываний по чтению или по записи с выходов контроллера 2 шины контроллер 9 прерываний на своих выходах формирует вектор внутренних прерываний, поступающий на третью группу входов мультиплексора 71, и сигнал управления, поступающий по линии 44 на первый вход управления мультиплексора 71. По сигналу управления на его первом входе управлния мультиплекесор 71 пропускает сигналы с третьей группы своих входов на входы адреса памяти 70 микрокоманд. Из памяти микрокоманд выбирается первая микрокоманда управляющей подпрограммы чтения или подпрограммы записи в режиме подпрограммного обмена. По синхронизирующим импульсам с выхода генератора 75 микрокоманды переписываются с первой группой выходов памяти 70 микрокоманд в регистр 68 микрокоманд, а с второй группы выходов памяти 70 микрокоманд сигналы констант, пересылаемые через мультиплексор 69, под управлением сигнала с выхода памяти 70 микрокоманд переписываются в регистры 63.
Микрокоманды с выходов регистра 68 микрокоманд поступают на шину 16 управления контроллера, принуждая его узлы, подключенные входами управления к шине 16 управления, выполнять операции, предписываемые микрокомандами. Последовательность выполнения управляющих микрокоманд в программном обмене следующая.
По первой микрокоманде производятся резервирование адреса микрокоманды предыдущей управляющей подпрограммы путем его перезаписи из регистра 84 в стек 86 и резервирование в регистрах 63 данных прерванной подпрограммы путем наращивания значения реверсивного счетчика 65 на единицу. Эти операции дают возможность возвратиться к прерванной подпрограмме по окончании текущей подпрограммы. По этой же микрокоманде по шине 16 управления контроллера на третью группу входов управления контроллера 2 шины подается сигнал сброса запросов внутренних прерываний, по которому снимаются запросы внутренних прерываний по чтению или по записи с третьей группы входов контроллера 9 прерываний, а также устанавливается на входах управления приоритетами контроллера 9 прерываний код текущего приоритета, запрещающий прерывание текущей подпрограммы. Резервирование прерываний программы возможно и без использования стековой организации регистров 63. Однако в этом случае время перехода на подпрограмму увеличивается, поскольку данные из регистрового устройства 8 должны резервироваться в оперативной памяти 6.
По второй микрокоманде по сигналам с шины 16 управления контроллер 2 шины на своих выходах управления формирует сигналы, по которым, а также по сигналам на второй группе входов управления интерфейса 1 сигналы с шины 18 адреса поступают через выходы адреса интерфейса 1, через мультиплексор 14 по внутренней шине 15 на первую группу адресных входов запоминающего устройства 7. На его вторую группу адресных входов и на входы управления через регистровое устройство 8 с второй и третьей групп выходов памяти 70 микрокоманд поступает код операции, по которому производится преобразование сигналов с первой группы адресных входов запоминающего устройства 7 в сигналы адреса оперативной памяти 6, формируемые на выходах запоминающего устройства 7 и по третьей микрокоманде переписываемые в первый из регистров регистрового устройства 8. Сигналы с первого из регистров регистрового устройства 8 подаются на входы адреса оперативной памяти 6, и производится выборка ячейки оперативной памяти 6.
Таким образом, для каждого из адресов шины 18 адреса, по которым ЭВМ 21 обращается к контроллеру в режиме программного обмена, на выходах запоминающего устройства 7 формируется адрес ячейки оперативной памяти 6, в которой хранится соответствующее слово управления или слово состояний. По этой же микрокоманде на вторую группу адресных входов и входы управления запоминающего устройства 7 подается код операции, по которому сигналы, поступающие с шины 18 адреса на первую группу адресных входов запоминающего устройства 7, преобразуются на его выходах состояний в код, определяющий безусловный переход на одну из ветвей подпрограммы. Этот код подается на первую группу входов шифратора 11 управления. Дешифратор-преобразователь 72 начального адреса по коду с выходов состояний запоминающего устройства 7 формирует начальный адрес новой ветви управляющей подпрограммы, который под управлением сигналов на входах управления мультиплексора 71 поступает через третью группу его входов на входы адреса памяти 70 микрокоманд для выработки четвертой микрокоманды. По четвертой микрокоманде выполняется подпрограмма, в которой производится обработка конкретного слова состояний и управления, к которому обратилась ЭВМ 21.
В приведенном примере контроллера возможны следующие подпрограммы: чтение из контроллера в ЭВМ 21 одного из слов физического адреса назначения или чтение слова вектора прерываний. Эти процессы выполняются однотипно, а потому образуют единую подпрограмму чтения без модификаций.
Чтение слова состояний и управления, запись слова старших битов стартового адреса дескриптора буфера приема, запись слова старших битов стартового адреса буфера передачи - все они выполняются по-разному.
Запись слова младших битов стартового адреса дескриптора буфера передачи, запись слова младших битов стартового адреса буфера приема, запись слова вектора прерываний образуют единую управляющую подпрограмму записи без модификаций.
При выполнении подпрограммы чтения без модификации по четвертой микрокоманде из оперативной памяти 6 читается соответствующая ячейка памяти и через интерфейс 1 ее содержимое выдается на шину 17 данных, для чего через шину 16 управления подаются соответствующие управляющие сигналы на узлы контроллера, в частности на контроллер 2 шины, который вырабатывает при этом на выходах управления сигналы управления для интерфейса 1, обеспечивающие чтение сигналов из интерфейса на шину 17 данных.
При выполнении записи без модификации по четвертой микрокоманде сигналы с шины 17 данных поступают на входы оперативной памяти 6 и записываются в соответствующую ячейку памяти, адрес которой читается из регистрового устройства 8.
При выполнении записи слова старших битов адреса дескриптора буфера передачи по четвертой микрокоманде производится запись этого слова в оперативную память 6.
По пятой микрокоманде в первый из регистров 63 регистрового устройства 8 из памяти 70 микрокоманд через мультиплексор 69 записывается константа, определяющая адрес ячейки оперативной памяти 6, в которой хранится второе слово состояний и управления, не доступное для ЭВМ 21. Второе слово состояний и управления считывается на первую группу адресных входов запоминающего устройства 7, на выходах которого формируется второе слово состояний и управления с установленным нулевым битом, что соответствует загрузке старших битов стартового адреса дескриптора буфера передачи оперативной памяти 6.
По шестой микрокоманде модернизированное второе слово состояний и управления записывается во второй из регистров 63 регистрового устройства 8, чтобы по этой же микрокоманде быть переписанным обратно в оперативную память 6.
По седьмой микрокоманде с второй группы выходов памяти 70 микрокоманд на входы адреса оперативной памяти 6 подается адрес первого слова состояний и управления, по которому на запоминающем устройстве 7 производится сброс бита 04.
По восьмой микрокоманде первое слово состояний и управления со сброшенным битом 04 с выходов запоминающего устройства 7 записывается обратно в оперативную память 6 по тому же адресу. Сброшенный бит 04 означает, что в ЭВМ 21 подготовлены данные для передачи, что хранятся они в буфере передачи, стартовый адрес дескриптора которого загружен в контроллер. При этом первым загружено слово младших битов стартового адреса дескриптора буфера передачи, а за ним слово старших битов дескриптора буфера передачи. Для дескриптора буфера приема также загружают в контроллер сначала слово младших, а затем слово старших битов стартового адреса дескриптора.
Аналогично выполняется запись слова старших битов стартового адреса дескриптора буфера приема, с той лишь разницей, что во втором слове состояний и управления устанавливается не нулевой, а первый бит, а в первом слове состояний и управления сбрасывается бит 05. Это означает, что в ЭВМ подготовлен буфер для приема данных из контроллера.
При выполнении чтения в программном обмене первого слова состояний и управления по пятой микрокоманде производится пересылка сигналов с входов мультиплексора 91 через входы-выходы приемника 12, через первую группу входов регистрового устройства 8 в его второй из регистров 63. Коммутация сигналов с входом мультиплексора 91 должна быть при этом такой, чтобы сигнал несущей в канале 24 связи, снимаемый с выхода детектора 97 входного сигнала, прошел на один из выходов мультиплексора 91. В этом случае один из битов (бит несущей) во втором из регистров 63 регистрового устройства 8 после выполнения четвертой микрокоманды установлен, если в канале 24 связи имеется в это время сигнал передачи пакетов. Например, это может быть второй бит. Остальные биты могут быть в произвольном состоянии.
По пятой микрокоманде на первую группу адресных входов запоминающего устройства 7 читается из оперативной памяти 6 первое слово состояний и управления, а на его вторую группу адресных входов с второй группы входов-выходов регистрового устройства 8 читается слово второго из регистров 63 с установленным или не установленным битом несущей в зависимости от состояний выхода детектора 97 входного сигнала. На выходах запоминающего устройства 7 формируется слово состояний и управления с модифицированным битом 13. При этом бит 13 устанавливается в "1" или "0" в зависимости от состояния бита несущей.
Для модификации бита 13 на входы управления запоминающего устройства 7 подается команда модификации бита 13 первого слова состояния в зависимости от состояний бита несущей на второй группе адресных входов запоминающего устройства 7. Из ячейки памяти запоминающего устройства 7, адрес которой содержится на первой и второй группах адресных входов и входах управления запоминающего устройства 7, на его выходы читается результат операции, занесенный в ячейку при изготовлении контроллера.
Реализация специальных операций над операндами, подаваемыми на первую и вторую группы адресных входов запоминающего устройства 7, таких как описанные ранее операции сложения, вычитания, умножения на константу, преобразования адресов системной шины 19 управления в адреса оперативной памяти 6, преобразования слов управления в коды и другие специальные операции, позволяет обеспечить выполнение подпрограмм в требуемых ограниченных интервалах времени, что необходимо для обеспечения процессов реального времени. При этом решается задача сокращения аппаратурных затрат, так как нет необходимости использовать в контроллере регистры для хранения слов состояний и управления, а хранение слов состояний и управления осуществляется в оперативной памяти 6, а также нет необходимости подсоединять к выходам регистров дополнительную логику, поскольку анализ состояний регистров производится на запоминающем устройстве 7 с последующим переходом на управляющие подпрограммы шифратора 11 управления.
По шестой микрокоманде выходные сигналы с входов-выходов запоминающего устройства 7 пересылаются через второй из регистров 63 регистрового устройства 8, через входы данных интерфейса 1 на шину 17 данных контроллера.
По четвертой микрокоманде подпрограммы записи первого слова состояний и управления сигналы этого слова с шины 17 данных подаются на первую группу адресных входов запоминающего устройства 7. На входы управления и вторую группу адресных входов запоминающего устройства 7 подается код операции анализа состояний битов первого слова состояний и управления. При выполнении этой операции на выходах состояний запоминающего устройства 7 формируются коды управляющей программы, которые дешифратором-преобразователем 72 начального адреса преобразуются в адрес пятой микрокоманды.
Возможны следующие подпрограммы, на которые управляющая программа переходит по результатам выполнения четвертой микрокоманды: Разрешение работы таймера живучести программного обеспечения, установка или выключение режима закольцовывания, программная инициализация, запрет или разрешение приема.
По пятой микрокоманде разрешения работы таймера живучести программного обеспечения и установки или выключения режима закольцовывания первое слово состояний и управления записывается с первой группы адресных входов запоминающего устройства 7 через его входы-выходы в оперативную память 6. По пятой микрокоманде запрета или разрешения приема на вторую группу входов управления приемника 12 подается сигнал запрета приема при сброшенном бите 00 первого слова состояний и управления или сигнал разрешения приема при установленном бите 00 этого слова. При этом управляющая логика 100 формирует сигнал сброса, подает его на R-вход RS-триггера 94 и держит сигнал сброса от момента формирования сигнала запрещения приема до момента формирования сигнала разрешения приема. При этом уровень "0" на выходе RS-триггера сбрасывает счетчик 98 битов, что делает невозможным запись принимаемых данных в фифо 90 приема.
По шестой микрокоманде первое слово состояний и управления через запоминающее устройство 7 записывается в оперативную память 6.
По пятой микрокоманде программной инициализации на входах-выходах запоминающего устройства 7 формируется константа ноль, которая записывается во второй из регистров регистрового устройства 8. По этой же микрокоманде по сигналам на третьей группе его входов контроллер 2 шины формирует сигнал готовности, подтверждающий окончание цикла записи, и по выходам шины выдает его на системную шину 19 управления. Этим контроллер оканчивает свое участие в режиме программной записи со стороны ЭВМ 21 первого слова состояния и управления. ЭВМ 21 не должна обращаться к контроллеру до конца выполнения программной инициализации. Далее контроллер производит модификацию битов ячеек памяти (установку или сброс), требуемую из условий его работы, в частности записывает константу ноль в ячейку первого слова состояний и управления и в ячейку второго слова состояний и управления, записывает из памяти 70 микрокоманд в оперативную память 6 слова физического адреса назначения, слово числа и слово номера. Адреса ячеек, в которых хранятся эти слова в оперативной памяти 6, считываются из памяти 70 микрокоманд через мультиплексор 69, через первый из регистров 63 на входы адреса оперативной памяти.
Во время инициализации контроллера на входах управления приоритетами контроллера 9 прерываний выставляется код текущего приоритета, не позволяющий прерывание подпрограммы инициализации во время ее выполнения. По окончании подпрограммы инициализации с шины 16 управления на вход инкремента сумматора 85 поступает сигнал нулевого уровня, на входы инструкций дешифратора 89 инструкций поступает код инструкций чтения адреса микрокоманды на выходы формирователя 73 адреса микрокоманды, после чего подпрограмма зацикливается на микрокоманде, поскольку ее адрес, не наращивается в сумматоре 85, по импульсам с входа синхронизации формирователя 73 адреса микрокоманды переписывается с выходов формирователя 73 адреса микрокоманды в регистр 84. Код текущего приоритета на входах управления приоритетами контроллера 9 прерываний устанавливается такой, чтобы позволить прерывания управляющей программы по сигналам входов запроса контроллера прерываний.
Все управляющие подпрограммы режима программного обмена, кроме подпрограммы инициализации, завершаются возвратом на прерванные ими подпрограммы, для чего по последней микрокоманде подпрограмм из регистров 63, имеющих стековую организацию, выталкивается их содержимое, реверсивный счетчик 65 возвращает на вершину стековых регистров 63 данные из прерванной подпрограммы. По этой же микрокоманде производится выталкивание из стекла 86 через вторую группу входов мультиплексора 88 на его выходы адреса микрокоманды прерванной подпрограммы. По последней микрокоманде на системную шину 19 управления выдается сигнал подтверждения окончания цикла записи или чтения.
Максимальное число микрокоманд в управляющих подпрограммах режима программного обмена контроллера без учета подпрограммы инициализации равно одиннадцати. При времени выполнения одной микрокоманды 200 нс максимальное время выполнения контроллером подпрограм чтения и записи в режиме программного обмена составляет 2,2 мкс. Текущие приоритеты управляющих подпрограмм программного обмена не позволяют производить их прерывание со стороны других подпрограмм.
Подпрограмма таймера-задатчика необходима для решения задач, во-первых, распределения времени доступа к системной шине между ЭВМ 21 и контроллером, во-вторых, для вычисления программных таймеров контроллера. Подпрограмма таймера-задатчика реализуется следующим образом.
Счетчик-таймер 77 производит подсчет импульсного генератора 75. Дешифратор 78 выявляет состояние выходов счетчика-таймера 77, соответствующее прошествию определенного временного интервала после сброса последнего, например времени 51,2 мкс, по истечении которого с выхода дешифратора 78 на S-вход RS-триггера 79 поступает сигнал, устанавливающий на втором выходе шифратора 11 управления сигнал запроса внутренних прерываний, который поступает на вход запроса контроллера 9 прерываний. При наличии разрешающих уровней приоритетов на его входах управления приоритетами контроллер 9 прерываний на своих выходах формирует вектор внутренних прерываний подпрограммы таймера-задатчика, который под управлением сигнала с выхода управления контроллера 9 прерываний проходит на выходы мультиплексора 71, после чего начинается выборка первой микрокоманды подпрограммы таймера-задатчика. В начале выполнения подпрограммы на вторую группу входов управления передатчика 13 и на вторую группу входов управления приемника 12 поступают сигналы прекращаения прямого доступа к памяти, по которым приемник 12 и передатчик 13 прекращают поддержку режима прямого доступа к памяти, если он до этого выполняется.
В подпрограмме таймера-задатчика вычисляются значения таймера пакета, таймера маркера, таймера монитора, таймера живучести программного обеспечения. По результатам анализа второго слова состояний и управления, выполняемого на запоминающем устройстве 7, подпрограмма может завершаться переходом на подпрограммы обмена данными в режиме прямого доступа.
При выполнении подпрограммы таймера-задатчика сигналы с выходов счетчика-таймера 77 перезаписываются через мультиплексор 69 в регистровое устройство 8, а затем поступают на вторую группу адресных входов запоминающего устройства 7, на первую группу адресных входов которого считывают поочередно из ячеек оперативной памяти 6 слова таймера живучести программного обеспечения, таймера передачи, таймера маркера, таймера монитора, из которых вычитаются числа с выходов счетчика-таймера 77, и формируют сигналы разности на выходах запоминающего устройства 7. Если разность больше числа ноль, то она записывается в ячейку оперативной памяти 6, в которой хранилось вычитаемое. Если сигналы разности определяют число, меньшее числа ноль, то из этого следует наличие тайм-аута соответствующего таймера и на выходе переноса запоминающего устройства 7 вырабатывается сигнал выходного переноса, поступающий через мультиплексор 74 условий на вход условий формирователя 73 адреса микрокоманды. По сигналу входного переноса выполняются подпрограммы передачи пакета монитора, передачи маркера, инициализации ЭВМ.
По сигналу входного переноса на входе условий и при наличии инструкции условного перехода на входах инструкций формирователя 73 адреса микрокоманды сигналы адреса программы таймера-задатчика поступают с шины 21 управления контроллера через входы адреса формирователя 73 адреса микрокоманды на его выходы. При отсутствии сигнала выходного переноса путем наращивания на сумматоре 85 на единицу адреса предыдущей микрокоманды производится переход на следующую микрокоманду, по которой выполняется анализ битов второго слова состояний и управления. Его считывают из оперативной памяти 6 на первую группу адресных входов запоминающего устройства 7, на выходах которого в зависимости от состояний битов второго слова состояний и управления формируют коды подпрограммы подготовки режима прямого доступа для чтения дескриптора буфера приема, если бит 01 второго слова состояний и управления установлен, а остальные биты сброшены, или подпрограммы чтения слова флага дескриптора буфера приема, если бит 01 и бит 04 установлены, или подпрограммы чтения других слов дескриптора буфера приема, если бит 04 установлен, а остальные биты сброшены.
Если бит 00 установлен, выполняется переход на подпрограмму подготовки режима прямого доступа для чтения дескриптора буфера передачи. Если бит 00 и бит 02 установлены, выполняется переход на подпрограмму чтения слова флага. Если бит 02 установлен, а остальные биты сброшены, производится подпрограмма пересылки из ЭВМ 21 в контроллер остальных слов дескриптора буфера передачи.
Переход на подпрограмму подготовки режима прямого доступа по пересылке буфера приема производится, если бит 04 и бит 09 установлены. Если бит 09 установлен, а остальные биты сброшены, производится переход на подпрограмму пересылки данных из фифо 90 приема в буфер приема ЭВМ 21. Если биты 09 и 05 установлены, производится переход на подпрограмму подготовки пересылки дескриптора буфера передачи из контроллера в ЭВМ 21. Эта подпрограмма выполняется после того, как завершена пересылка данных из буфера передачи ЭВМ 21 в контроллер, выполнены модификации слов дескриптора и дескриптор с модифицированными битами должен быть возвращен в ЭВМ 21.
Переход на подпрограмму подготовки режима прямого доступа по пересылке буфера передачи производится, если бит 02 и бит 08 установлены. Если бит 08 установлен, а остальные биты сброшены, производится переход на подпрограмму пересылки данных из буфера передачи ЭВМ 21 в фифо 107 передачи.
Если биты 08 и 06 установлены, то это означает, что завершена пересылка данных пакета из фифо 90 приема в буфер приема ЭВМ 21 и теперь контроллер должен переслать в ЭВМ 21 модифицированные слова дескриптора буфера приема. По анализу второго слова состояний и управления при установленных битах 08 и 06 контроллер переходит на подпрограмму подготовки режима прямого доступа по пересылке дескриптора буфера приема в ЭВМ 21.
Если бит 06 установлен, а остальные биты сброшены, контроллер переходит на выполнение подпрограммы пересылки дескриптора буфера приема в ЭВМ 21. Если бит 12 установлен, а остальные биты сброшены, производится переход на подпрограмму обработки установочного пакета.
Если все биты второго слова состояний и управления сброшены, то производится переход и зацикливание на микрокоманде, при исполнении которой на входах управления приоритетами контроллера 9 пррываний устанавливается значение сигналов текущего приоритета с наименьшим приоритетом, что позволяет выполнять внутренние прерывания по запросам на входах контроллера 9 прерываний.
Если при анализе второго слова состояний и управления переход на подпрограмму произведен по установленному биту 00, то в этом случае стартовый адрес дескриптора буфера передачи перегружается из оперативной памяти 6 в счетчик 3 адреса. Если переход произведен по установленному биту 00, то стартовый адрес дескриптора буфера приема перегружается из оперативной памяти 6 в счетчик 3 адреса. В обоих случаях в регистр 4 адреса загружаются сигналы суммы стартовых адресов и числа пять, что определяет адрес последнего слова дескриптора буфера. Операция сложения производится запоминающим устройством 7. Затем в случае пересылки буфера передачи устанавливатся бит 02 во втором слове состояний и управления, сбрасывается бит 04 в первом слове состояний и управления или устанавливается бит 04 в случае пересылки дескриптора буфера приема во втором слове состояний и управления и сбрасывается бит 05 в первом слове состояний и управления , после чего контроллер 2 шины на системной шине 19 управления выставляет сигнал требования прямого доступа к памяти ЭВМ 21, подпрограмма переходит в режим зацикливания, а на входах приоритета контроллера 9 прерываний устанавливается текущий приоритет, позволяющий прерывать программу.
Если прерывание происходит по сигналам выходов счетчика-таймера 77 и вновь осуществляется переход на подпрограмму таймера-задатчика, то вновь производится анализ второго слова состояний и управления и при установленных бите 00 и бите 02 или установленных бите 01 и бите 04, извещающих о том, что выставлен сигнал требования прямого доступа к памяти, осуществляется вновь переход на подпрограмму зацикливания с низким текущим приоритетом, позволяющим выполнение внутренних прерываний.
Наличие на системной шине 19 управления контроллера сигнала подтверждения прямого доступа, выданного ЭВМ 21, приводит к установке на системной шине 19 управления со стороны входов-выходов контроллера 2 шины сигналов занятости шины и сигналов, устанавливающих режим "чтение - модификация - запись", а также приводит к генерации на выходах контроллера 2 шины сигналов запросов прерываний, вызывающих формирование на выходах контроллера 9 прерываний кода подпрограммы чтение - модификация - запись в прямом доступе к памяти, при выполнении которой сбрасывается бит 00 второго слова состояний и управления при пересылке дескриптора буфера приема или сбрасывается бит 01 при пересылке дескриптора буфера передачи, производится цикл "чтение - модификация - запись" слова флага дескриптора. В этом цикле считывается слово флага дескриптора и, если значение битов 15 и 14 "1" и "0", то бит 14 устанавливается и слово флага с модернизированным битом 14 перезаписывается в память ЭВМ 21 по прежнему адресу. Счетчик 3 адреса наращивается на две единицы. После этого на входах управления приоритетами контроллера 9 прерываний устанавливается текущий приоритет, позволяющий производить прерывания подпрограммам таким, как инициализация контроллера, фильтрация пакетов по адресам назначения, подпрограмма таймера-задатчика. Установка низкого текущего приоритета выполняется в контроллере во всех подпрограммах, реализующих прямой доступ к памяти, после завершения каждого из циклов обмена словом.
Если подпрограмма не прерывается, на системной шине 19 управления со стороны контроллера 2 шины устанавливается сигнал "Чтение". На шину 18 адреса с разрядных выходов счетчика 3 адреса выставляется адрес следующего слова дескриптора. ЭВМ 21 выставляет данные на шину 17 данных и выдает сигнал "Готовность". На входы адреса оперативной памяти 6 через первый из регистров 63 из памяти 70 микрокоманд подается адрес ячейки оперативной памяти 6, в которую записывается слово с шины 17 данных, после чего контроллер аналогично считывает остальные слова дескриптора. Перед тем, как выставляется очередной цикл чтения слова, на входе условий формирователя 73 адреса микрокоманды проверяется сигнал с выхода "Равно" схемы 5 сравнения, устанавливающийся в единицу при совпадении кодов на разрядных выходах счетчика 3 адреса и выходах регистра 4 адреса.
Если между циклами обмена словами происходит прерывание подпрограммы, то в очередном цикле подпрограммы таймера-задатчика по анализу второго слова состояний и управления при установленном бите 04 происходит возврат на подпрограмму обмена словами в прямом доступе. При этом контроллер устанавливает бит 10 во втором слове состояний и управления и выставляет сигнал требования прямого доступа, а затем переходит к зацикливанию на микрокоманде с низким текущим приоритетом. С предоставлением прямого доступа к памяти контроллер анализирует второе слово состояний и управления и по установленным битам 04 и 10 выполняется переход на подпрограмму обмена остальными словами дескриптора, где сбрасывается бит 10.
Аналогично производятся прерывание и возвращение к прерванной подпрограмме в остальных режимах обмена в прямом доступе к памяти, возврат к установленным битам 05 и 10, битам 08 и 10, 09 и 10. Установленный бит 10 означает, что идет ожидание предоставления прямого доступа к памяти со стороны ЭВМ 21.
При наличии единицы на выходе "Равно" схемы 5 сравнения сигнал "Чтение" не генерируется, поскольку все слова дескриптора адреса перезаписаны в оперативную память 6. Во втором слове состояний и управления выполняется при этом установка бита 08, если пересылался дескриптор буфера передачи, или бита 09, если пересылался дескриптор буфера приема, после чего контроллер 2 шины снимает сигнал занятости с системной шины 19 управления. Этим завершается режим прямого доступа к памяти ЭВМ 21 по пересылке дескрипторов буферов в контроллер и программа переходит в режим зацикливания с низким текущим приоритетом. Дескриптор буфера приема и дескриптор буфера передачи хранятся в разных зонах оперативной памяти 6.
При считывании из ЭВМ 21 второго слова дескриптора во время выполнения подпрограммы пересылки дескриптора буфера передачи контроллер анализирует бит 12 байта состояний. Если этот бит установлен, то устанавливается бит 12 во втором слове состояний и управления, что говорит о наличии установочного пакета в буфере передачи. Если в подпрограмме таймера-задатчика при анализе второго слова состояний и управления обнаруживатся, что установлены биты 02 и 08, то производится переход на подпрограмму подготовки пересылки содержимого буфера передачи в передатчик 13. При выполнении этой подпрограммы из оперативной памяти 6 в счетчик 3 адреса переписываются младшие и старшие биты стартового адреса буфера передачи, которые содержатся во втором и третьем словах дескриптора буфера передачи. Затем значение стартового адреса буфера передачи суммируется со значением слова длины буфера, хранящимся в четвертом слове дескриптора буфера. Таким образом, вычисляется конечный адрес буфера передачи и его значение пересылается в регистр 4 адреса. Сбрасывается бит 02 и устанавливается бит 10 во втором слове состояний и управления.
На третью группу входов управления контроллера 2 шины подаются сигналы инициализации режима прямого доступа к памяти. При этом контроллер 2 шины выдает на системную шину 19 управления сигнал требования прямого доступа и программа переводится в режим зацикливания с низким текущим приоритетом.
Если в подпрограмме таймера-задатчика при анализе второго слова состояний и управления обнаруживается, что установлены бит 08 и бит 10, то подпрограмма переводится в режим зацикливания с низким текущим приоритетом.
При наличии на системной шине 19 управления сигнала подтверждения прямого доступа контроллер 2 шины выдает на третью группу входов запросов контроллера 9 прерываний сигнал запроса прерываний по чтению или по записи в режиме прямого доступа и производится переход на подпрограмму, при выполнении которой сбрасывается бит 10 второго слова состояний и управления. На третью группу входов управляющей логики 113 подаются сигналы перевода передатчика 13 в режим поддержки прямого доступа к памяти. Контроллером 2 шины на системной шине 19 управления устанавливаются сигнал занятости шины и сигнал "Чтение". На шину 18 адреса подаются сигналы адреса с разрядных выходов счетчика 3 адреса.
При наличии сигнала "Готовность" на системной шине 19 управления, которым ЭВМ 21 сопровождает установку данных на шину 17 данных, на выходах управления контроллера 2 шины формируются сигналы, по которым слово данных пересылается с шины 17 данных через выходы интерфейса 1 на входы передатчика 13.
Контроллер обслуживает несколько процессов реального времени. В их число входит, например, режим программного обмена между ЭВМ 21 и оперативной памятью 6. В процессе обмена ЭВМ 21 записывает в контроллер или читает из него данные, обращаясь к нему по нескольким адресам, выставляемым на шину 18 адреса. Контроллер при этом пересылает данные с шины 17 данных в оперативную память 6 в режиме записи или из оперативной памяти 6 на шину 17 данных в режиме чтения.
Процессом реального времени является обмен в режиме прямого доступа к памяти ЭВМ 21, когда контроллер, становясь активным, на системной шине ЭВМ 21 в режимах чтения и записи выполняет обмен данными между ЭВМ 21 и ним.
Процессом реального времени является процесс распознавания адресов назначений пакетов, принимаемых приемником 12, который должен с учетом других процессов реального времени быть завершен до окончания приема самого короткого пакета. В частности, при реализации стандарта IEEE802.3 время передачи наиболее короткого пакета равно 51,2 мкс.
Процессами реального времени являются процессы вычисления программных таймеров, с помощью которых распределяется время по захвату системной шины между ЭВМ 21 и контроллером (таймер-задатчик) или определяется время, когда контроллер может начинать передачу пакетов в канал 24 связи (таймер пакета, таймер манитора, таймер маркера - таймеры, определяющие множественный доступ в канал 24 связи). Перечисленные процессы выполняются с разделением времени и с учетом их приоритетности. Разделением времени выполнения процессов с учетом их приоритетности управляет контроллер 9 прерываний.
В качестве примера контроллер реализует интервально-маркерный метод множественного доступа к каналу 24 связи. Канал 24 связи может быть выполнен с использованием радиочастотного кабеля, в который через некоторые промежутки его длины подключены к линиям 23 входы данных и по линиям 22 выходы контроллера. Обмен данными по каналу 24 связи производится пакетами.
Интервально-маркерный метод доступа является детерминированным, т. е. методом доступа, гарантирующим доставку пакетов в конечные интервалы времени. Передача пакетов в канал 24 связи контроллерами 20 производится в порядке очередности. Очередность передач пакетов определяется номером контроллера 20 (НУ), заданным ЭВМ 21. Для реализации метода контроллер программно вычисляет три таймера: таймер маркера, таймер монитора и таймер передач. Для нахождения своей очереди на передачу пакета контроллер ведет программный таймер передач, по достижении времени тайм-аута (ТАП) которого контроллер имеет право начать передачу пакета в канал 24 связи в интервале времени Т. В общем случае время передачи пакета может превышать интервал времени Т, отведенный под начало передачи пакета. По окончании интервала Т контроллер не имеет права начинать передачу пакета, поскольку следующий интервал времени Т отведен под начало передачи пакета другого контроллера 20. При подключении к каналу 24 связи числа NГ контроллеров 20 для организации очереди на передачу пакетов от всех устройств сети необходимо NГ интервалов времени Т.
При передаче пакета каким-либо из контроллеров 20 остальные, обнаружив сигналы передач в канале 24 связи, должны принять из передаваемого пакета слово номера контроллера (NУП), ведущего передачу, и установить свои таймеры передач пакетов на значение
ТП= Т(NУП+1).
По окончании сигнала передачи пакета в канале 24 связи контроллеры должны продолжить отсчет времени своих таймеров передач, начиная от значения Т(NУП+1).
Тайм-ауты таймеров передач определяются выражением ТАП= ТNУ, где NУ - номер контроллера, вычисляющего тайм-аут таймера передачи.
При установке таймеров передач на значение
ТП= Т(NУП+1), контроллеры, номера которых меньше значения NУП+1, не могут начать передачу пакетов, поскольку тайм-ауты их таймеров передач уже истекли. Передачи могут начать только контроллеры с номерами NУ, расположенными на отрезке
[NУП+1, NГ] , где NГ - граничное время для таймеров передач всех устройств.
В отрезке времени
[(NГ+1)Т, (NГ+2)Т] должен быть передан пакет станции-монитора. Пакет станции-монитора содержит в поле номера контроллера число ноль. Это дет возможность за передачей пакета станции-монитора начать передачу пакета контроллеру с первым номером, поскольку таймеры передач всех контроллеров установлены на значение ТП= Т. Таким образом, все контроллеры по очереди имеют доступ в канал 24 связи. Гарантированное время доступа в канал 24 связи для конкретного контроллера определяется суммой произведения Т(NГ+2) и произведения времени передачи пакета максимальной длины на количество контроллеров, подключенных к каналу 24 связи.
Для защиты канала 24 связи от конфликтных ситуаций передачи пакетов могут быть начаты только тогда, когда контроллер засинхронизируется в канале 24 связи. Начало вхождения в режим синхронизации определяется сигналом разрешения приема, исходящим от ЭВМ 21 (бит 00 слова состояний и управления установлен). С этого момента контроллер ведет отсчет времени программным таймером маркера, установив его тайм-аут (ТАМ) на значение
ТАМ= (NГ+NУ+N)T, где N - константа, целое число больше единицы.
Всякая передача по каналу 24 связи должна обнулять таймеры маркера контроллеров. Если по истечении времени ТАМ в канале 24 связи нет сигналов передач других контроллеров 20, то контроллер в отрезке времени
[(NT+NУ+N)T, (NГ+NУ+1)T] должен начать передачу маркера, после чего он начинает отсчет времени таймера монитора, тайм-аут которого устанавливается на значение
ТАМОН= NУТ, где NУ - номер данного контроллера.
Если до истечения тайм-аута таймера монитора выполнена передача пакета монитора контроллером с меньшим номером NУ, то передача пакета монитора не выполняется. По истечении тайм-аута таймера монитора контроллер должен начать передачу пакета-монитора с установленным битом 14 в поле управления пакета.
После передачи пакета монитора контроллер начинает вновь отсчет времени таймером монитора, установив его тайм-аут на значение
ТАМОН= (NГ+1)Т.
По истечении тайм-аута монитора со значением ТАМОН= (NГ+1)Т контроллер должен передать пакет монитора с установленным битом 13 в поле управления пакета, после чего он становится монитором в локальной вычислительной сети и постоянно передает пакеты монитора по истечении тайм-аута монитора, равного (NГ+1)Т.
Если контроллер не смог передать маркер по причине того, что таймер маркера был сброшен передачей другого контроллера, то по окончании сигнала передач в канале 24 связи контроллер должен начинать отсчет времени таймером маркера, установленным на тайм-аут:
ТАМ= (NГ+NУ+N)T.
Если контроллер обнаруживает передачу пакета монитора с установленным битом в течение времени ТАП, то разрешаются передачи пакетов в канал 24 связи по истечении тайм-аута таймера передач, значение которого должно быть установлено на значение
ТАП= NУТ.
Устройство-монитор имеет право на передачу пакетов данных и должно устанавливать тайм-аут своего таймера передач на значение ТАП= NУТ.
Для уменьшения времени доступа в канал 24 связи интервал времени Т должен быть минимальным, но он не может быть меньше суммы удвоенного времени распространения сигнала по кабелю канала 24 связи и времени реакции контроллера, необходимого для организации передач "своего" пакета по окончании передачи предыдущего "чужого" пакета, плюс межкадровый интервал - время, в течение которого передачи запрещаются для обеспечения затухания сигнала в кабеле после передачи. Так, если удвоенное время распространения сигнала по кабелю равно 51,2 мкс, межкадровый интервал равен 9,6 мкс, а время реакции контроллера не превышает 53 мкс, то интервал времени Т, равный 153 мкс, может удовлетворять предъявленному требованию.
Для установки таймера монитора и таймера передач пакетов контроллер во время передач пакетов по кабелю производит операцию умножения чисел NУП+1 на интервал времени Т= 153 мкс. Полученное в результате операции произведение вычитается из значения тайм-аута монитора, а также из значения тайм-аута передачи. Результаты операции вычитания заносятся в ячейку таймера монитора и ячейку таймера передач запоминающего устройства 7.
Для вычисления таймеров из ячейки таймера монитора и ячейки таймера передач вычитают числа, равные последовательным отрезкам текущего времени, до достижения нулевого результата в одном из таймеров.
Начало отсчета первого отрезка времени производится от конца передачи очередного пакета в кабеле. Нулевой или отрицательный результат означает достижение тайм-аута соответствующего таймера.
Для обеспечения необходимого времени реакции контроллера операция умножения должна выполняться в возможно короткое время, для чего реализуется нестандартный прием выполнения операции. Для выполнения операции умножения множимое преобразуют так, как описано далее, и в виде двоичных сигналов подают на первую и вторую группы адресных входов запоминающего устройства 7, на входы управления которого подают код операции. Из ячеек запоминающего устройства 7 считывают результат операции на выходы запоминающего устройства 7. Множитель (число Т= 153) в операции умножения присутствует неявно.
Слова вычисляемых программных таймеров и слова значений тайм-аутов таймеров хранятся в оперативной памяти 6. Эти слова читаются или записываются после установки на входах управления оперативной памяти 6 сигналов управления чтением или записью и установки на входах адреса оперативной памяти 6 сигналов констант с второй группы выходов памяти 70 мирокоманд через первый из регистров 63, через первую группу выходов регистрового устройства 8.
Вычисление таймеров выполняют в подпрограмме, на которую переходят по сигналу запроса прерываний с выхода RS-триггера 79. Запрос прерываний формируется по достижении счетчиком-таймером 77 своего тайм-аута. Тайм-аут определяется дешифратором 78, с выхода которого поступает на S-вход RS-триггера 79 сигнал, устанавливающий на выходе RS-триггера 79 сигнал запроса прерываний.
По сигналу запроса прерываний контроллер 9 прерываний на своих выходах формирует вектор прерываний, а на выходе управления - сигнал управления, по которому мультиплексор 71 пропускает на входы адреса памяти 70 микрокоманд вектор прерываний. Далее по микрокомандам из памяти 70 микрокоманд выполняются операции, в ходе которых из содержимого таймеров вычитается значение времени, сформированное на выходах счетчика-таймера 77, для чего сигналы с выходов счетчика-таймера 77 пересылаются через мультиплексор 69 в регистровое устройство 8 и далее на вторую группу адресных входов запоминающего устройства 7, на первую группу адресных входов которого считываются слова таймеров из оперативной памяти 6. Запоминающим устройством 7 вычисляется разность значений сигналов на первой и второй группах его адресных входов. При получении отрицательной разности формируется сигнал переноса на выходе переноса запоминающего устройства 7, по которому определяют достижение таймеров своего тайм-аута. Сигнал переноса подается через мультиплексор 74 условий на вход условий формирователя 73 адреса микрокоманды, который с учетом сигнала на входе условий формирует начальный адрес программы, управляющей передачей маркера, передачей пакета монитора, передачей пакета данных или переустановкой таймеров.
Счетчик-таймер 77 после считывания с его выходов сигналов должен быть обнулен по входу сброса, после чего он продолжает счет импульсов с выхода генератора 75.
Номер контроллера, ведущего передачу пакета, необходимый для установки значения таймера передач так же, как и адрес назначения пакета, считывается из фифо 90 приема через мультиплексор 91, через входы-выходы приемника 12 на внутреннюю шину 15. Это происходит во время приема пакета из канала 24 связи через вход данных приемника 12.
Во время приема пакета последовательный поток данных, закодированных в манчестерский код, поступает на вход декодера 96. На выходе декодера 96 формируется последовательный код данных без возвращения к нулю, сопровождаемый тактовыми синхроимпульсами на выходе синхронизации декодера 96. Принимаемые данные преобразуются на выходах сдвигового регистра 92 в параллельный код. Детектор 93 флага, дешефрировав флаг преамбулы, формирует на своем выходе сигнал, который устанавливает в единицу выход RS-триггера 94, и при этом снимается сигнал сброса с входа сброса счетчика 98 битов. Счетчик 98 битов начинает подсчет принимаемых битов данных путем подсчета числа синхроимпульсов с выхода синхронизации декодера 96. По сигналам с выходов счетчика 98 битов управляющая логика 100 подает на счетный вход счетчика 99 импульсы для подсчета числа принимаемых слов, на входы управления фифо 90 приема сигналы записи слов, а на входы меток фифо 90 прима сигналы меток принимаемых слов. При этом принимаемые слова данных записываются в фифо 90 приема и метятся метками слов. При приеме сигнала данных с входа приемника 12 на выходе детектора 97 входного сигнала формируется сигнал наличия несущей в канале 24 связи, по окончании которого управляющая логика 100 формирует сигнал метки конца пакета, подаваемый на вход фифо 90 приема, и сигнал записи для записи метки конца принятого пакета в фифо 90 приема. По концу приема пакета счетчик 99 байтов сбрасывается по своему входу сброса сигналом с управляющей логики 100.
Установка таймеров производится при приеме пакета. После приема адреса назначения и слова номера контроллера управляющая логика 100 по выходным сигналам счетчика 99 байтов на выходах состояний приемника 12 формирует сигналы запросов прерывания на фильтрацию адреса назначения пакета. По этим сигналам контроллер 9 прерываний на своих выходах формирует вектор прерываний, по которому шифратор 11 управления переходит на подпрограмму фильтрации пакетов по адресам их назначения и на подпрограмму установки таймеров маркера, монитора и передач.
Подпрограмма установки таймеров начинается после выполнения подпрограммы фильтрации адресов назначения, когда три слова адреса назначения считаны из фифо 90 приема для их сопоставления с таблицей адресов назначения, которая задается для контроллера ЭВМ 21.
За адресами назначения из фифо 90 приема считывается слово номера контрроллера, для чего на вторую группу входов управления приемника 12 с шифратора 11 управления подается инструкция чтения слова из фифо 90 приема через мультиплексор 91 на внутреннюю шину 15, по которой шифратор 11 управления формирует сигналы управления на входы управления фифо 90 приема и входы управления мультиплексора 91. Слово номера контроллера подается на первую группу адресных входов запоминающего устройства 7. На этом завершается выполнение первой микрокоманды подпрограммы установки таймеров.
Предположим, что наибольшее количество контроллеров, подключаемых к каналу 24 связи, равно 79 (NГ= 79). Таким образом, номер контроллера (NУП) может быть размещен в первых шести битах слова номера контроллера (биты 0-5). Предположим, что запоминающее устройство 7 секционировано и содержит четыре секции 52 запоминающего устройства, первые и вторые группы адресных входов которых содержат по четыре разряда.
При выполнении второй микрокоманды слово с внутренней шины 15 записывается во второй из регистров регистрового устройства 8. На входы управления запоминающего устройства 7 подается код операции, при выполнении которой на выходах запоминающего устройства 7 формируется слово, биты 00 и 01, 04 и 05, 08 и 09, 14 и 15 которого попарно устанавливаются равными значению пары битов 04 и 05 на первой группе адресных входов запоминающего устройства 7, т. е. становятся равными битами 04 и 05 номера контроллера передаваемого пакета (NУП). Это возможно, если вторая секция 52 запоминающего устройства пересылает на свои выходы переноса неизменными два младших бита, поданных на первую группу ее входов, а схема ускоренных переносов выдает на входы переноса секции 52 запоминающего устройства 7 эти биты также неизменными, после чего на выходах младших битов секций 52 запоминающего устройства формируются попарно младшие биты, равные битам 05 и 04 слова на первой группе адресных входов запоминающего устройства 7. Результат операции записывается в третий из регистров 63 регистрового устройства 8. Этим завершается выполнение второй микрокоманды. Далее аналогично на выходах запоминающего устройства 7 в результате выполнения еще одной операции формируется слово, в которов биты группами по четыре 00, 01, 02, 03 и 04, 05, 06, 07, и 08, 09, 10, 11, и 12, 13, 14, 15 равны соответственно битам 00, 01, 02, 03 слова (NУП) номера передающего устройства. Сигналы с выходов запоминающего устройства 7 записываются во второй из регистров 63, чем завершается выполнение третьей микрокоманды.
По четвертой микрокоманде сигналы второго из регистров 63 подаются на первую группу адресных входов запоминающего устройства 7, сигналы третьего из регистров 63 подаются на вторую группу адресных входов запоминающего устройства 7, на входы управления которого подается код операции умножения на константу Т числа NУП+1. Младшие биты члена NУП подаются на вторую группу входов, а старшие биты - на первую группу входов каждой из секции 52. На вход переноса запоминающего устройства 7 подается уровень единицы, которая суммируется с числом NУП при выполнении операции. Этот уровень через запоминающее устройство 53 ускоренных переносов распространяется на входы приема секции 52. В результате выполнения операции на выходах секции 52 формируются биты результата операции
ТП= Т(NУП+1), где Т= 153 задается неявно кодом операции.
На первой и второй группах входов каждой из секций 52 присутствуют все шесть битов номера передающего устройства (NУП). Каждая секция запрограммирована индивидуально таким образом, что на ее выходах формируется группа четырех битов слова результата. На четырех секциях 52 формируются все шестнадцать битов слова результата, которое записывается во второй из регистров 63. В первый из регистроа 63 записывается константа адреса ячейки запоминающего устройства 7, в которой хранится слово тайм-аута таймера передачи. На этом завершается выполнение четвертой микрокоманды. Если время выполнения одной микрокоманды равно 200 нс, то вычисление значения ТП производится за четыре микрокоманды или 800 нс.
По пятой микрокоманде из оперативной памяти 6 считывается значение тайм-аута таймера передач на первую группу адресных входов запоминающего устройства 7, на вторую группу его адресных входов считывается из регистрового устройства 8 число ТП, которое вычитается из значения тайм-аута.
По шестой микрокоманде результат записывается в оперативную память 6 в ячейку временного хранения слова таймера передачи.
По седьмой микрокоманде из оперативной памяти 6 считывается значение тайм-аута таймера монитора, из него вычитается значение ТП. Результат по восьмой микрокоманде переписывается в ячейку временного хранения слова таймера монитора оперативной памяти 6.
По девятой и десятой микрокомандам из оперативной памяти 6 считывается из ячейки тайм-аута таймера маркера значение тайм-аута маркера, вычитается из него значение ТП и результат перезаписывается в ячейку временного хранения, на чем завершается подпрограмма установки таймеров по результатам приема из канала 24 связи пакета.
Во время приема пакета логика 95 циклического контроля осуществляет вычисление контрольной суммы для проверки принимаемых данных на наличие в них ошибок. По окончании приема пакета при отсутствии сигнала несущей в канале 24 связи, определяемого детектором 97, и по сигналам с выходов счетчика 99 байтов, когда они не равны нулю, на выходах управляющей логики 100 формируются сигналы запросов прерываний по концу приема пакета, которые подаются на выходы состояний приемника 12. По этим сигналам контроллер 9 прерываний формирует вектор и осуществляется переход на подпрограмму запуска таймеров. Для этого по сигналам по второй группе входов управления приемника 12 через мультиплексор 91 на внутреннюю шину 15 считывается сигнал с выхода контроля логики 95 циклического контроля, определяющий отсутствие или наличие ошибок в принимаемом пакете. Считываются сигналы с выходов счетчика 98 битов, определяющие кратность принятых битов числу восемь, т. е. кратность целому числу байтов, сигналы с выходов счетчика 99 байтов, определяющие длину принятого пакета, если принятый пакет имеет длину в пределах допустимой, если он заканчивается на байтовой границе и не имеет ошибок, то слова таймеров монитора, пакета и маркера пересылаются из ячеек временного хранения в соответствующие ячейки таймеров маркера, монитора и передачи в оперативной памяти 6.
Если пакет принят с ошибками, то таймер маркера устанавливается на значение
ТАМ= (NГ+NУ+N)T, а таймеры монитора и пакета на значение большее, чем ТАМ, что позволяет не выполнять передачи в кабель пакетов до проведения повторной синхронизации контроллера в канале 24 связи.
ЭВМ 21 формирует таблицу адресов назначения, которые контроллер различает как "свои", и принимает пакеты с адресами назначения, заданными в таблице адресов назначения. Контроллер считывает их в режиме прямого доступа к памяти из оперативной памяти ЭВМ 21. Делает это контроллер перед тем, как будут разрешены ЭВМ 21 прием и передача пакетов в канал 24 связи. Например, таблица адресов назначения может содержать четырнадцать 48-битных адресов назначения пакетов. Из них один адрес широковещательный, т. е. предназначенный для всех устройств в сети, другой индивидуальный, т. е. предназначенный только для данного контроллера. Такой адрес начинается с бита, установленного в ноль. Остальные адреса групповые, т. е. предназначены группам устройств, в которые входит данный конкретный контроллер. Групповой адрес начинается с бита, установленного в единицу.
Для обеспечения ускоренной фильтрации адрес назначения принимаемого пакета разбивается на двенадцать групп битов по четыре бита в каждой группе (двенадцать полубайтов). Каждым из полубайтов адресуется к одной из групп ячеек оперативной памяти 6. В каждой группе шестнадцать ячеек памяти. Из ячеек памяти, к которым адресуются полубайтами, считываются данные (слова соответствия), которые дают возможность определить является ли данный полубайт частью одного из адресов назначений, заданных в таблице адресов назначения. Если все полубайты принимаемого адреса назначения определяются как полубайты одного и того же адреса назначения, заданного в таблице адресов назначения, то пакет принимается контроллером в фифо 90 приема.
Контроллер формирует таблицу слов соответствия. Слова соответствия образуют в оперативной памяти 6 двенадцать групп по шестнадцать слов. Под эти группы отводится страница области оперативной памяти 6 величиной в 21 слово. Для адресации к словам соответствия в пределах страницы достаточно иметь восемь разрядов входов адреса оперативной памяти 6. С четвертого по седьмой разряды адреса указывают на номер группы, с нулевого по третий разряды - на одно из слов соответствия в группе. Перед составлением таблицы слов соответствия все ячейки памяти, расположенные на странице, должны быть обнулены.
Номер группы ставится в соответствие с номером полубайта в адресе назначения фильтруемого пакета. Счет полубайтов ведется от числа 0 до числа 13. С нулевого по третий разряды ставятся в соответствие с нулевого по третий разрядам полубайтов адресов назначения.
Битам 0-13 каждого из слов соответствия противопоставляется один из четырнадцати адресов, заданных в таблице адресов назначения. Если, например, бит 5 слова, расположенного на странице слов соответствия, установлен, а с нулевого по седьмой разряды адреса ячейки оперативной памяти, содержащей это слово соответствия, имеют значение 00110110, то установленный бит 5 говорит о том, что третий полубайт (третий, с четвертого по седьмой поскольку разряды адреса оперативной памяти имеют значение 0011) пятого (поскольку бит 5 слова соответствия равен единице) из адресов, заданных в таблице адресов назначений, имеет значение 0110 (с нулевого по третий разряды адреса оперативной памяти имеют значение 0110).
При формировании слов соответствия контроллер в прямом доступе считывает слова адресов назначения через шину 17 данных , через интерфейс 1 и мультиплексор 14 из таблицы адресов назначения, расположенной в оперативной памяти ЭВМ 21, на внутреннюю шину 15. Считанное слово адреса назначения записывается во втором из регистров 63 и преобразуется на выходах запоминающего устройства 7 так, что биты 0-3 остаются равными битам 0-3 слова на внутренней шине 15, биты 4-7 обнуляются, а биты 8-16 устанавливаются на значение, необходимое для адресации к странице оперативной памяти 6, на которой хранится таблица слов соответствия. Слово с выходов запоминающего устройства 7 пересылается через первый из регистров 63 на входы адреса оперативной памяти 6, из которой на внутреннюю шину читается выбранное слово соответствия и преобразуется на запоминающем устройстве 7 путем установки в нулевом бите единицы. Результат заносится в оперативную память 6 по старому адресу. Наличие единицы в нулевом бите слова соответствия, к которому адресовались четырьмя битами первого полубайта первого слова адреса назначения, говорит о том, что именно такой первый полубайт в первом слове одного из адресов назначения имеется. Далее содержимое второго из регистров 63 считывается на внутреннюю шину 15 и второй полубайт первого слова адреса назначения пересылается на выходы запоминающего устройства 7. При этом биты 0-3 на выходах запоминающего устройства 7 становятся равными битам 4-7 на его первой группе адресных входов, биты 4-7 на его выходах приобретают значения 0001, остальные биты устанавливаются, как и раньше, для адресации соответствующей страницы. Оперативная память 6 адресуется через первый из регистров 63 по новому адресу. Еще одно слово считывается на выходы оперативной памяти 6. Нулевой бит этого слова устанавливается в едицину и преобразованное слово записывается по старому адресу.
Таким же образом производится преобразование с двумя другими полубайтами первого слова адреса назначения, хранящегося в первом из регистров 63. В результате в оперативной памяти 6 сформировано четыре слова соответствия, в нулевых битах которых установлена единица. Далее из ЭВМ 21 считывается второе, а затем третье слова первого адреса назначения. С этими словами выполняются такие же преобразования, как и с первым словом адреса назначения. После этого в оперативной памяти 6 сформировано двенадцать слов соответствия, что равно числу полубайтов в адресе назначения. Во всех словах соответствия нулевые биты установлены в единицы. Эти слова соответствия расположены по одному в каждой из групп слов соответствия на странице слов соответствия оперативной памяти 6.
Аналогично производится формирование слов соответствия для остальных адресов назначения, вызываемых из ЭВМ 21, только с тем различием, что для второго адреса назначения в словах соответствия, расположенных в оперативной памяти 6, устанавливаются в единицу первые биты, а для третьего адреса назначения - третьи биты и т. д. для всех двенадцати адресов назначения.
Такая таблица соответствия в оперативной памяти 6 позволяет достаточно быстро производить фильтрацию принимаемых пакетов по адресам назначения, чтобы одновременно выполнять несколько процессов реального времени.
Фильтрация пакетов производится следующим образом. При переходе на подпрограмму фильтрации пакетов шифратор 11 управления на вторую группу входов управления приемника 12 выдает сигналы, по которым под управлением управляющей логики 100 из фифо 90 приема считывается слово адреса назначения через мультиплексор 91 на внутреннюю шину 15 и записывается во второй из регистров 63. На этом завершается первая микрокоманда подпрограммы.
Затем производится пересылка битов 0-3 на биты 0-3 выходов запоминающего устройства 7, биты 4-7 которых устанавливаются на число ноль, это соответствует первому полубайту принимаемого адреса назначения, биты 8-15 устанавливаются на страницу слов соответствия (вторая микрокоманда). Сформированное слово служит для адресации оперативной памяти 6, из которой считывается на внутреннюю шину 15 слово соответствия и заносится в третий из регистров 63. Это слово соответствия также тестируется запоминающим устройством 7 для выявления в нем бит, установленных в единицу (третья микрокоманда).
Если хотя бы один бит слова соответствия установлен в единицу, то это означает, что принятый полубайт адреса назначения имеется в адресах назначения, разрешенных для приема таблицей адресов назначения. Если, например, единица установлена в шестом бите слова соответствия, то это означает, что первый полубайт принятого адреса назначения и первый полубайт седьмого адреса назначения из таблицы адресов назначения совпадают. В этом случае подпрограмма продолжается, а в противном случае прекращается, пакет распознается как "чужой", не предназначенный данному контроллеру, и выполнение подпрограммы завершается.
При продолжении подпрограммы формируются слова адреса оперативной памяти 6, в битах 0-3 поочередно устанавливаются биты остальных полубайтов адреса назначения, в битах 4-7 устанавливается номер полубайта, а в битах 8-15 - адрес страницы слов соответствия. Слова соответствия считываются из оперативной памяти 6, выполняется каждый раз при этом операция логического умножения над словом, считанным из оперативной памяти 6, и словом, хранящимся в третьем из регистров 63. Результат заносится обратно в третий из регистров 63 и тестируется на наличие в слове результат хотя бы одного бита, установленного в единицу.
Пусть в слове соответствия второго полубайта принимаемого адреса назначения шестой бит установлен в единицу. Это означает, что второй полубайт принимаемого адреса назначения и второй полубайт седьмого адреса назначения из таблицы адресов назначений совпадают. При выполнении операции логического умножения над словом, хранящимся во втором из регистров 63 и считанных из оперативной памяти 6, результат операции содержит шестой бит, установленный в единицу. Это означает, что седьмой адрес назначения из таблицы адресов назначения и принимаемый адрес назначения имеют одинаковые первые байты. Таким образом, устанавливается принадлежность принимаемого адреса к таблице адресов назначения.
Общее число выполняемых микрокоманд в подпрограмме с учетом операции логического умножения составляет 48 микрокоманд или 9,6 мкс потребуется на ее выполнение.
Поскольку подпрограмма фильтрации достаточно длинна, а общее время работы контроллера делится между несколькими процессами реального времени, то по этой причине подпрограмма фильтрации пакетов по адресам назначения может прерываться подпрограммой, в которой выполняется программный обмен между ЭВМ 21 и контроллером.
Если программный обмен между ними может быть выполнен за время, не превышающее 2,6 мкс, а сигнал "Готовность", которым завершается программный обмен и который выдает контроллер, должен быть выдан не позднее, чем через 7,2 мкс после поступления сигнала "Чтение" или "Запись" с ЭВМ 21, то целесообразно при выполнении фильтрации адресов назначения на входы управления приоритетами контроллера 9 прерываний с шифратора 11 управления выдавать через каждые 3 мкс (15 микрокоманд) сигналы текущего приоритета, позволяющие подпрограммам более высокого приоритета прерывать выполнение подпрограммы фильтрации адресов назначения.
Предлагаемый контроллер выгодно отличается от прототипа, поскольку имеет более широкую область применения при сокращении аппаратурных затрат на его реализацию. Расширение области применения выражается в том, что контроллер может быть использован в системах, выполняющих обмен данными в реальном времени, при совместной работе ЭВМ, имеющими ограниченное адресное пространство, отведенное под адресацию к регистрам внешних устройств. Примером таких ЭВМ могут служить ЭВМ, построенные на основе микропроцессоров серии 580, где под адресацию регистров внешних устройств отводится 256 адресов.
В прототипе данные управления (слова состояний и управления) записываются в регистры контроллера в режиме программного обмена. Количество регистров определяется количеством слов данных управления, которые одновременно должен хранить контроллер. Для обеспечения работы последнего в режимах реального времени каждый из разрядов регистров подключен к шифратору управления. При этом на регистры и шифратор управления требуются аппаратурные затраты, зависящие от числа регистров, в которых хранятся данные управления.
В предлагаемом контроллере обмен данными управления выполняется как в режиме программного обмена, так и в режиме прямого доступа к памяти. Обмен данными управления, выполняемый предлагаемым контроллером в режиме прямого доступа к памяти, позволяет сократить до необходимого минимума адресное пространство, отведенное под адресацию регистров внешних устройств. Обработка данных управления на запоминающем устройстве с последующей выработкой на его выходах кодов, преобразуемых дешифратором-преобразователем начального адреса в управляющее воздействие (в адрес соответствующей подпрограммы), выполняется за цикл чтения или записи режима прямого доступа или режима программного обмена, т. е. в процессе реального времени обмена данными управления.
Уменьшение адресного пространства, отведенного под адресацию регистров внешних устройств, и выполнение обмена данными управления в режиме прямого доступа к памяти ЭВМ при сохранении требований, предъявляемых к контроллеру при работе в режимах реального времени, позволяют расширить область применения контроллера. При этом он может работать совместно с ЭВМ, имеющими ограниченное адресное пространство, отведенное под адресацию регистров внешних устройств, и выполняющими обмен данными в режимах реального времени.
Использование оперативной памяти для хранения данных управления, обмен которыми производится как в режиме прямого доступа, так и в программном обмене, позволяет произвести сокращение аппаратурных затрат за счет отсутствия регистров внешних устройств, а также за счет отсутствия логики управления, связанной с каждым из разрядов регистров внешних устройств. Такую управляющую логику заменяют в предлагаемом контроллере запоминающее устройство и контроллер прерываний. Формирование на выходах запоминающего устройства кодов управляющих сигналов в процессе реального обмена данными управления и арбитраж процессов реального времени, выполняемый контроллером прерываний, позволяют не использовать управляющую логику, связанную с каждым из разрядов регистров внешних устройств, и исключить сами эти регистры из контроллера.
Для реализации предлагаемого варианта требуются ячейки памяти в оперативной памяти под хранение данных управления. При программном обмене этих ячеек требуется десять. При обмене дескрипторами буферов (при семи дескрипторах буферов передачи и семи дескрипторах буферов приема) требуется 42 ячейки памяти. При обмене установочным пакетом требуется 256 ячеек памяти. Использование оперативной памяти при применении, например, микросхем серии 541РУ2 для шестнадцатиразрядной внутренней шины 15 позволяет иметь всего четыре корпуса таких микросхем вместо большего количества регистров.
Формула изобретения: КОНТРОЛЛЕР, содержащий контроллер шины, интерфейс, селектор адреса, счетчик адреса, регистр адреса, схему сравнения, приемник, передатчик, шифратор управления, причем входы-выходы контроллера шины подключены к системной шине управления, первая группа входов-выходов интерфейса подключена к шине данных, вторая группа входов-выходов его подключена к шине адреса, входы данных его подключены к внутренней шине, его выходы адреса подключены к адресным входам селектора адреса, разрядные выходы счетчика адреса подключены к входам адреса интерфейса и к первой группе входов схемы сравнения, к второй группе входов которой подсоединены выходы регистра адреса, входы данных счетчика адреса и информационные входы регистра адреса подсоединены к внутренней шине, вход записи счетчика адреса, вход записи регистра адреса, вторая группа входов управления интерфейса, третья группа входов управления контроллера шины, вторая группа входов управления передатчика, вторая группа входов управления приемника, первая группа выходов шифратора управления подключена к шине управления, выход контроллера шины подключен к счетному входу счетчика адреса, выход "Равно" схемы сравнения соединен с первым входом шифратора управления, вход данных приемника подключен к одноименному входу устройства, выход передатчика подключен к выходу устройства, отличающийся тем, что в него введены оперативная память, запоминающее устройство, регистровое устройство, контроллер прерываний, мультиплексор, причем выходы управления контроллера шины подключены к входам управления селектора адреса, к первой группе входов управления интерфейса, к первой группе входов управления приемника и к первой группе входов управления передатчика, первая группа входов управления контроллера шины подключена к выходам управления передатчика, вторая группа входов управления контроллера шины подключена к выходам управления приемника, входы-выходы приемника, входы-выходы передатчика, входы-выходы оперативной памяти, входы-выходы регистрового устройства, первая группа адресных входов запоминающего устройства подключены к выходам мультиплексора и к внутренней шине устройства, выходы приемника подключены к входам интерфейса, входы передатчика соединены с выходами интерфейса , входы адреса оперативной памяти соединены с первой группой выходов регистрового устройства, выходы запоминающего устройства соединены с третьей группой входов регистрового устройства, выходы состояний запоминающего устройства соединены с первой группой входов шифратора управления, вторая группа адресных входов запоминающего устройства соединена с второй группой выходов регистрового устройства, первая группа входов регистрового устройства соединена с второй группой выходов шифратора управления, вторая группа входов регистрового устройства соединена с третьей группой выходов шифратора управления, третья группа выходов регистрового устройства соединена с входами управления запоминающего устройства, управляющий вход шифратора управления соединен с выходом переноса запоминающего устройства, вход переноса которого соединен с первым выходом шифратора управления, вторая группа входов шифратора управления и первая группа входов запроса контроллера прерываний соединены с выходами состояний приемника, выходы состояний передатчика подключены к третьей группе входов шифратора управления и второй группе входов запросов контроллера прерываний, к третьей группе входов запросов которого и четвертой группе входов шифратора управления подключены выходы контроллера шины, выходы селектора адреса соединены с четвертой группой входов запросов контроллера прерываний, второй выход шифратора управления соединен с входом запроса контроллера прерываний, выход управления которого соединен с вторым входом шифратора управления, вход синхронизации контроллера прерываний и вход синхронизации регистрового устройства соединены с третьим выходом шифратора управления, к пятой группе входов которого подключены выходы контроллера прерываний, выходы адреса интерфейса подсоединены к первой группе информационных входов мультиплексора, к второй группе информационных входов которого подключены выходы данных интерфейса, выход "Равно" схемы сравнения соединен с входом управления приемника и входом передатчика, входы управления приоритетами контроллера прерываний, входы управления оперативной памяти, входы управления мультиплексора, входы управления регистрового устройства подключены к шине управления устройства.