Интерфейсы информационных систем, страница 11

Преимущество программного управления заключается в экономии линий связи. Основной недостаток состоит в том, что в качестве данных не могут передаваться специальные кодовые комбинации. Такой метод используется только при передаче символов ASCII, в которых специальные кодовые комбинации зарезервированы. При передаче бинарных данных программное управление не используется, поскольку данные пришлось бы перекодировать.

Качество обслуживания потока

Под качеством обслуживания потоков понимается набор технологий, определяющих, прежде всего, порядок передачи пакетов.

Решение по определению порядка передачи пакетов может приниматься как на узлах иерархических и кольцевых интерфейсов (например, во многих сетевых интерфейсах), так и в главном устройстве интерфейса (как, например, в интерфейсе USB).

Более детально данный вопрос рассматривается в курсе телекоммуникационных технологий.

Рассмотрим возможные типы потоков на примере интерфейсов USB.

Управляющие посылки.

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

Передача массивов данных.

Этот тип потоков передает большое количество данных. Он не предъявляет к интерфейсу серьезных требований ни к задержке, ни к равномерности передачи информации.

Прерывания.

Прерывания это также короткие сообщения, но передаются от ведомых устройств. Требования к передаче прерывания примерно такие же, как к управляющим посылкам.

Изохронные передачи.

Основное требование при передаче такого потока ­– равномерность передачи данных. Обычно изохронные передачи применяются для передачи потоковой мультимедийной информации – радио и телевещания.

Транзакции

Транзакции это набор атомарных операций, переводящих систему из одного корректного состояния в другое. Атомарными называются неделимые операции, которые нельзя представить в виде последовательности других операций. Например, транзакция может состоять из операций выставления адреса, выдачи команды, выставления данных, чтения данных и подтверждения чтения данных. Этот набор должен быть завершенным и  переводить интерфейс в корректное состояние. Если в приведенном примере не произойдет двух последних операций, то оба устройства, участвующие в обмене, будут ожидать чтения и не будут отвечать на другие запросы, что является некорректным состоянием.

В ранних интерфейсах чаще упоминался термин «цикл интерфейса». Не вдаваясь в детали, будем считать цикл простой формой транзакции.

Обычные транзакции

Рассмотрим простой пример транзакции для интерфейса PCI.

Как видно из рисунка, это синхронный интерфейс, все операции в котором происходят в определенные моменты, называемые тактами. В данном интерфейсе такт приходится на передний фронт синхросигнала CLK. На рисунке все такты пронумерованы цифрами и отмечены прерывистыми линиями.

Начало и конец транзакции определяются ведущим устройством с помощью выставления низкого уровня сигнала FRAME. В данном интерфейсе транзакция состоит из следующих операций: начало транзакции (2 такт, определяется по низкому уровню сигнала FRAME), передача адреса и команды (2 такт, фаза адресации), передача данных (3-8 такты, фазы данных) и окончание транзакции (8 такт, определяется по высокому уровню сигнала FRAME).

Субакции запроса и ответа

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

В некоторых интерфейсах для повышения эффективности есть возможность разбиения транзакции на субакции. Рассмотрим субакции на примере интерфейса SCI.

На рисунке показано разбиение транзакции на субакции запроса и ответа. Это позволяет освободить магистраль на время, необходимое ответчику для подготовки ответа на запрос.

Дальние транзакции

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

В данном примере запросчик и ответчик находятся в географически удаленных частях интерфейса. Для реализации идеи дальних транзакций в систему вводятся так называемые «агенты», разбивающие интерфейс на части. Агенты перехватывают запросы и ответы и посылают эхо запросов и ответов. Тем самым участок интерфейса между запросчиком (ответчиком) и агентом освобождается для других транзакций.

Команды

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

На рисунке изображена транзакция (цикл) интерфейса оперативной памяти SDRAM. Эта транзакция включает команды ACT (активизация банка памяти), WR (запись в ячейку памяти), READ (чтение ячейки памяти) и PRE (подзарядка и закрытие банка памяти). Каждая из этих команд определяется по комбинации сигналов RAS, CAS, WE и CS. Например, команде ACT соответствует комбинация RAS = 0, CAS = 1, WE = 1 и CS = 0.

Описание интерфейса в виде конечного автомата

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

На рисунке приведен пример конечного автомата для интерфейса SDRAM. Окружностями на нем обозначены состояния, а стрелками – команды, переводящие интерфейс из одного состояния в другое. Например, можно найти команды ACT, WR, READ и PRE и проследить транзакцию, рассмотренную в предыдущем вопросе.