Сделай Сам Свою Работу на 5

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





Для управления интерфейсом служит система сообщений — Message System, кото­рыми обмениваются ИУ и ЦУ. Обмен происходит в фазах Message IN/OUT (см. вы­ше), в одной фазе может передаваться несколько сообщений.

С помощью сообщений согласуются параметры синхронного режима и разряд­ность данных. Процесс согласования синхронного обмена называется Synchronous Negotiation. Устройство, запрашивающее синхронный обмен, посылает сообщение Synchronous Data Transfer Request с указанием допустимого периода цикла и отста­вания REQ/ACK. Если другой участник обмена поддерживает синхронный режим, он предложит свои параметры. Согласованными параметрами будут максималь­ный период и минимальное отставание (нулевое отставание эквивалентно асин-


5.4. Управление интерфейсом и выполнение команд



кронному режиму). Выбранный режим будет относиться только к фазам переда­чи между данной парой устройств. Отвергнутое сообщение является требовани­ем асинхронного режима. Поскольку старые хост-адаптеры не поддерживали со­гласование синхронного режима, на ЦУ запрос синхронного режима может быть заблокирован. О возможности работы в синхронном режиме хост может узнать, послав команды Request Sense и Inquiry.



Разрядность передач согласуется аналогично посредством сообщений Wide Data Transfer Request. Согласованные режимы будут действовать до сброса устройств по сообщению Bus Device Reset или «жесткого» сброса, что приведет к установке предопределенных режимов по включению. Согласование режимов не должно инициироваться в каждом процессе, поскольку затраты времени на эту процедуру сводят на нет выигрыш в производительности.

Система команд SCSI включает общие команды, применимые для устройств всех классов, и специфические для каждого класса. Любое SCSI-устройство должно поддерживать обязательные команды общего набора и своего класса, чем обеспе­чивается высокий уровень совместимости. Команда передается ИУ в ЦУ через блок дескриптора команды (command descriptor block), посылаемый в фазе Command. Некоторые команды сопровождаются блоком параметров, следующим за блоком дескриптора в фазе Data. Форматы блоков стандартизованы; длина блока, определя­емая кодом операции (первым байтом блока), может составлять б, 10 или 12 байт.



Рассмотрим процесс на шине SCSI на примере одиночной команды чтения Read. ИУ имеет активный набор указателей и несколько сохраненных наборов, по одно­му на каждый из допустимого числа одновременных конкурирующих процессов. ИУ восстанавливает указатели процесса в активный набор и, выиграв арбитраж, выбирает ЦУ. Как только ЦУ выбрано, оно берет на себя управление процессом. В фазе Selection ИУ вводит сигнал ATN#, сообщая о намерении послать сообщение Identify с указанием адресуемого ЛУ. ЦУ переходит в фазу Command и принимает блок дескриптора команды Read. ИнтеPnPетировав команду, ЦУ переходит в фазу Data IN, передает запрошенные данные, затем переводится в фазу Status и посылает состояние Good, Затем в фазе Message IN устройство посылает сообщение Command Complete, после чего освобождает шину (фаза Bus Free). Процесс завершен.

Рассмотрим тот же пример, но при условии отключения от шины (Disconnect) в процессе выполнения команды. Если устройство, получив команду Read, опре­делит, что для получения затребованных данных необходимо много времени, оно освободит шину, послав сообщение Disconnect. Как только требуемые данные го­товы в ЦУ, оно, выиграв арбитраж, выберет ИУ (в фазе Reselect) и в фазе Message IN пошлет ему сообщение Identify. ИУ вернет соответствующий набор указателей в активное состояние и продолжит выполнение процесса, как описано выше. Если ЦУ хочет отсоединиться, когда часть данных уже передана (например, головка диска дошла до конца цилиндра и требуется время на позиционирование), оно посылает сообщение Save Data Pointer, а затем — Disconnect. После повторного соединения передача данных возобновится с точки, определенной последним со­храненным значением указателя. Если произошла ошибка или исключение, ЦУ может повторить обмен данными, послав сообщение Restore Pointers или отсоеди­нившись без сообщения Save Data Pointers.




144 Глава 5. Шина 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, будет исполняться последним. ИУ может удалить процесс из очереди, сославшись на него по тегу. Изменение порядка выполнения команд ЦУ не касается порядка в цепочке команд, поскольку цепочка принадле­жит одному процессу, а в очередь ставятся именно процессы. Здесь мы не рассматриваем различные ситуации, приводящие к отклонениям от нормальной последовательности событий интерфейса. К ним относятся некоррект­ные соединения со стороны ИУ, выбор несуществующего ЛУ, неожиданные вы­борки ИУ, округление параметров, реакция на асинхронные события и т. п.


Глава 6

Шины и карты расширения

Шины расширения (Expansion Bus) являются средствами подключения систем­ного уровня: они позволяют адаптерам и контроллерам непосредственно исполь­зовать системные ресурсы PC — пространства памяти и ввода-вывода, прерыва­ния, каналы прямого доступа к памяти. Устройства, подключенные к шинам расширения, могут и сами управлять этими шинами, получая доступ к остальным ресурсам компьютера (обычно к ячейкам памяти). Такое прямое управление (bus mastering) позволяет разгружать центральный процессор и добиватьсд высоких скоростей обмена данными. Шины расширения механически реализуются в виде слотов (щелевых разъемов) или штырьковых разъемов; для них характерна малая длина проводников, что позволяет достигать высоких частот работы. Эти шины могут и не выводиться на разъемы, но использоваться для подключения устройств в интегрированных системных платах.

В современных компьютерах основной шиной расширения является PCI; ее допол­няет порт AGP. Шина ISA из настольных компьютеров уходит, но она сохраняет свои позиции в промышленных и встраиваемых компьютерах, как в традицион­ном слотовом варианте, так и в «бутербродном» варианте РС/104. В блокнотных компьютерах широко применяются слоты PCMCIA с шинами PC Card и Card Bus. Шина LPC является современным дешевым средством подключения нересурсо­емких устройств на системной плате. Все эти шины подробно рассматриваются в данной главе. Информацию по отжившим шинам MCA, EISA, VLB можно най­ти в литературе [1,2, 5].

Изготовителям карт расширения приходится точно следовать протоколам шины, включая жесткие частотные и нагрузочные параметры, а также временные диа­граммы. Отклонения приводят к несовместимости с некоторыми системными пла­тами. Если при подключении к внешним интерфейсам это ведет к неработоспо­собности только самого устройства, то некорректное подключение к системной шине может блокировать работу всего компьютера. Следует также учитывать огра­ниченность ресурсов PC. Самые дефицитные из них — линии запросов прерываний; проблема прерываний, известная по шине ISA, так и не была радикально решена с переходом на PCI. Другой дефицит — каналы прямого доступа шины ISA, исполь­зуемые и для прямого управления шиной, — в шине PCI преодолен. Доступное адресное пространство памяти и портов ввода-вывода, в котором было тесновато абонентам шины ISA, в PCI существенно расширено. Проблемы распределения ре­сурсов на шинах решаются по-разному, но чаще всего применяется технология PnP.



Глава 6. Шины и карты расширения


В табл. 6.1 дана характеристика стандартных шин расширения PC.

Таблица 6.1.Характеристики шин расширения


Шина Пропускная Каналы Bus- ACFG2 способность, DMA Master Мбайт/с1

 








Не нашли, что искали? Воспользуйтесь поиском по сайту:



©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.