48. арбитраж информационного канала

- обеспечивает однозначность выполнения процессов взаимодействия сопрягаемых элементов системы посредством приоритетного разрешения внутриорганизационных конфликтов

Если несколько мастеров запрашивают доступ к одной шине, то доступ будет предоставляться с учетом шинного приоритета в следующем порядке (от старшего приоритета к младшему)

Арбитраж шины CAN.
Быстродействие CAN сети (до 1 Mbit/s) достигается благодаря механизму недеструктивного арбитража шины посредством сравнения бит конкурирующих сообщений. Т.е. если случится так что одновременно начнут передачу несколько контроллеров, то каждый из них сравнивает бит, который собирается передать на шину с битом, который пытается передать на шину конкурирующий контроллер. Если значения этих битов равны оба контроллера пытаются передать следующий бит. И так происходит до тех пор пока значения передаваемых битов не окажутся различными. Теперь контроллер, который передавал логический ноль (более приоритетный сигнал) будет продолжать передачу, а другой(другие) контроллер прервёт свою передачу до того времени пока шина вновь не освободится. Конечно ,если шина в данный момент занята ,то контроллер не начнет передачу до момента её освобождения.
Эта спецификация CAN исходит из предположения, что все CAN контроллеры принимают сигналы с шины одновременно. Т.е. в одно и то же время один и тот же бит принимается всеми контроллерами в сети. С одной стороны такое положение вещей делает возможным побитовый арбитраж, а с другой стороны ограничивает длину CAN bus. Сигнал распространяется по CAN bus с огромной, но конечной, скоростью и для правильной работы CAN нужно , чтобы все контроллеры "услышали" его почти одновременно. Почти, потому что каждый контроллер принимает бит в течении определённого промежутка времени, отсчитываемого системным часам. Таким образом, чем выше скорость передачи данных, тем меньшая длинна CAN bus возможна.

арбитраж шины SCSI
Как осуществляется арбитраж шины и обмен данными между устройствами, мы рассмотрим на конкретном примере чтения компьютером файла с жесткого диска, в соответствии с изложением Д. Л. Миллера.

Прежде всего, ПК или, точнее, адаптер шины на ПК проверяет статус шины — «занята» или «свободна». Если шина свободна, то ПК передает по информационным линиям (data lines) свой идентификационный код. (При арбитраже шины каждое устройство передает бит по соответствующей его идентификатору линии, отсюда ограничение на число подключаемых устройств — оно не может превышать ширину шины; в случае SCSI-1 это восемь бит.)
Если одновременно с ПК еще какое-либо устройство стремится получить контроль над шиной, то приоритет получает устройство с наибольшим идентификатором. (В случае, если ширина шины больше 8 бит, в частности 16, как в SCSI-2, то устройства с идентификаторами от 0 до 7 имеют более высокий приоритет, чем устройства с номерами от 8 до 15. Это сделано для того, чтобы 8-битные устройства можно было подключать к широкой шине.) Таким образом, механизм арбитража не обеспечивает «честного» доступа к шине и не позволяет предотвратить занятие шины одним устройством. Поэтому адаптеру SCSI на главном ПК присваивается ID=7, чтобы хост всегда мог получить контроль над шиной, когда это ему необходимо; а периферийным устройствам идентификаторы присваиваются, начиная с нуля, при этом более медленным устройствам, таким, как ленточные накопители, рекомендуется предоставлять более высокий приоритет, нежели более быстрым устройствам, например жестким дискам, чтобы последние не захватывали шину.
После получения контроля над шиной инициатор (initiator) выбирает целевое устройство (target) посредством активизации одной из восьми линий. Выбранное устройство берет на себя контроль за обменом данными до его завершения. Для начала оно запрашивает у инициатора, какую команду следует выполнить. В ответ, в нашем примере, ПК просит прочитать логические блоки в указанном интервале. Хост ничего не знает и не обязан знать о физической организации диска — числе поверхностей, цилиндров и секторов. С помощью SCSI-команды для дисков Read Capacity («Узнать емкость») он может запросить диск об его емкости, выраженной в количестве логических блоков, и о размере блока, например 512 байт на блок.
Диск подтверждает получение команды и преобразует номера логических блоков в номера секторов, находит и считывает эти сектора, осуществляет исправление ошибок и передает данные байт за байтом, при этом в случае асинхронной передачи он ожидает подтверждения приема каждого байта, в результате, как уже упоминалось, реальная скорость обмена данными для SCSI-1 не превышает 2 Мбайт/с. При синхронной же передаче стороны обмениваются данными с заранее заданной скоростью, например 3,33; 4 или 5 Мбит/с, при этом вовсе не обязательно, чтобы все устройства на шине могли осуществлять синхронную передачу — достаточно, чтобы она поддерживалась двумя взаимодействующими устройствами.
После завершения передачи диск просит сообщить о статусе. Если все нормально и данные не надо передавать повторно, то диск отправляет сообщение о завершении выполнения команды.

Таким образом, шина может находиться в одном из следующих состояний (фаз):
  • BUS FREE (шина свободна)
  • SELECTION (выбор)
  • COMMAND (передача команд)
  • DATA (передача данных)
  • STATUS (передача статуса)
  • MESSAGE (передача сообщения)
  • ARBITRATION (арбитраж)
  • RESELECTION (повторный выбор).

  • Группа состояний с COMMAND по MESSAGE соответствует процедуре передачи информации. Арбитраж и повторный выбор осуществляются только в случае конкуренции за шину одновременно нескольких устройств.

    Сайт управляется системой uCoz