Аппаратные интерфейсы ПК



              

Управление интерфейсом и выполнение команд - часть 3


Шина SCSI

Теперь рассмотрим процесс с цепочкой связанных команд. По успешному заверше­нию каждой команды цепочки ЦУ автоматически переходит к исполнению сле­дующей. Все команды цепочки являются частью одного процесса. Команды не являются полностью независимыми — при относительной адресации последний блок, адресованный предыдущей командой, доступен для следующей. Так, напри­мер, можно исполнить команду Search Data, по которой на диске будет найден блок, содержащий информацию, совпадающую с эталоном поиска. Связав с ней команду чтения Read, можно прочитать этот блок или блок с указанным смеще­нием относительно найденного. По выполнении связанных команд ЦУ посылает сообщения Linked Command Complete (возможно, с флагом), а ИУ обновляет набор сохраненных указателей, так что они указывают на очередную команду цепочки. Команды в цепочке выполняются как одиночные, но с возможностью относитель­ной адресации.

Команды могут исполняться с использованием очередей. ЦУ могут поддерживать немаркированные и маркированные очереди. Поддержка немаркированных очере­дей, определенная еще в SCSI-1, позволяет любому Л У (LUN) или целевой про­грамме, занятым процессом от одного ИУ, принимать команды (начинать процесс) с другими ИУ.

Маркированные очереди (tagged queue) определены в SCSI-2 для ЛУ. Для каждой связи I_T_L (ИУ-ЦУ-ЛУ) существует своя очередь размером до 256 процессов. Каждый процесс, использующий маркированные очереди, идентифицируется свя­зью I_T_L_Q, где Q — однобайтный тег очереди (queue tag). Теги процессам назна­чаются ИУ, их значения на порядок выполнения операций не влияют.

Постановка в очередь выполняется через механизм сообщений, при этом очеред­ной процесс можно поставить в очередь «по-честному», а можно «пропихнуть» вне очереди: процесс, поставленный в очередь с сообщением Head Of Queue Tag, будет выполняться сразу после завершения текущего активного процесса. Процессы, поставленные в очередь с сообщением Simple Queue Tag, исполняются ЦУ 'ъ по­рядке, который оно сочтет оптимальным.Процесс, поставленный в очередь с со­общением Ordered Queue Tag, будет исполняться последним. ИУ может удалить процесс из очереди, сославшись на него по тегу. Изменение порядка выполнения команд ЦУ не касается порядка в цепочке команд, поскольку цепочка принадле­жит одному процессу, а в очередь ставятся именно процессы. Здесь мы не рассматриваем различные ситуации, приводящие к отклонениям от нормальной последовательности событий интерфейса. К ним относятся некоррект­ные соединения со стороны ИУ, выбор несуществующего ЛУ, неожиданные вы­борки ИУ, округление параметров, реакция на асинхронные события и т. п.




Содержание  Назад  Вперед