например, в комплект поставки сканеров, а подключение к ним диска может оказаться невозможным. Высокопроизводительные адаптеры имеют собственный специализированный процессор, большой объем буферной памяти и используют высокоэффективные режимы прямого управления шиной для доступа к памяти компьютера. Адаптеры SCSI существуют для всех шин расширения (ISA, EISA, MCA, PCI, VLB, PCMCIA, CardBus), шин USB и FireWire и для LPT-порта. Ряд системных плат имеют встроенный SCSI-адаптер, подключенный к одной из локальных шин. При выборе интерфейса, к которому подключается хост-адаптер, учитывайте производительность — интерфейс не должен стать узким местом при обмене с высокопроизводительными устройствами SCSI. Наибольшую эффективность имеют хост-адаптеры для шины PCI. Конечно, за мощный адаптер для сервера приходится платить — его цена может превышать цену рядового настольного компьютера. Еще дороже хост-адаптеры с встроенными контроллерами RAID- массивов, которые содержат мощный RISC-процессор и большой объем локальной памяти.
Конфигурирование хост-адаптеров с точки зрения шины SCSI не отличается от конфигурирования других устройств. Для современных адаптеров вместо джамперов используется программное конфигурирование. Утилита конфигурирования обычно входит в расширение BIOS, установленное на плате адаптера, и приглашение к ее вызову выводится на экран во время теста POST.
Как и всякая карта расширения, хост-адаптер должен быть сконфигурирован с точки зрения шины расширения, к которой он подключается. Системные ресурсы для шинного SCSI-адаптера включают:
♦ область памяти для расширения ROM BIOS, необходимого для поддержки конфигурирования устройств и дисковых функций (если в системе установлено несколько однотипных хост-адаптеров, для них используется ROM BIOS с одного адаптера, а разнотипные хост-адаптеры не всегда могут работать вместе);
♦ область разделяемой буферной памяти;
♦ область портов ввода-вывода (I/O port);
♦ IRQ — запрос прерывания;
♦ DMA — канал прямого доступ к памяти (для шин ISA/EISA), часто используемый для захвата управления шиной (bus mastering).
Всем устройствам SCSI, в том числе и хост-адаптеру, требуются специальные драйверы. Базовый драйвер дисковых устройств входит в BIOS хост-адаптера; он обычно эмулирует трехмерную адресацию дискового сервиса Int 13h
. Расширения, например ASPI (Advanced SCSI Programming Interface), загружаются отдельно. От драйверов сильно зависит производительность устройств SCSI. «Умное» ПО способно эффективно загружать работой устройства, а иногда и «срезать углы» — выполнять копирование данных между устройствами без выхода на системную шину компьютера. Наиболее предпочтительны драйверы, работающие в режиме прямого управления шиной (bus mastering); их применение позволяет реализовать все преимущества SCSI в многозадачных системах.
5.4. Управление интерфейсом и выполнение команд
Для управления интерфейсом служит система сообщений —
С помощью сообщений согласуются параметры синхронного режима и разрядность данных. Процесс согласования синхронного обмена называется REQ
/ACK
. Если другой участник обмена поддерживает синхронный режим, он предложит свои параметры. Согласованными параметрами будут максимальный период и минимальное отставание (нулевое отставание эквивалентно асинхронному режиму). Выбранный режим будет относиться только к фазам передачи между данной парой устройств. Отвергнутое сообщение является требованием асинхронного режима. Поскольку старые хост-адаптеры не поддерживали согласование синхронного режима, на ЦУ запрос синхронного режима может быть заблокирован. О возможности работы в синхронном режиме хост может узнать, послав команды Request Sense
и Inquiry
.
Разрядность передач согласуется аналогично посредством сообщений
Рассмотрим процесс на шине SCSI на примере Read
. ИУ имеет активный набор указателей и несколько сохраненных наборов, по одному на каждый из допустимого числа одновременных конкурирующих процессов. ИУ восстанавливает указатели процесса в активный набор и, выиграв арбитраж, выбирает ЦУ. Как только ЦУ выбрано, оно берет на себя управление процессом. В фазе ATN#
, сообщая о намерении послать сообщение Identify с указанием адресуемого ЛУ. ЦУ переходит в фазу Read
. Интерпретировав команду, ЦУ переходит в фазу
Рассмотрим тот же пример, но при условии Read
, определит, что для получения затребованных данных необходимо много времени, оно освободит шину, послав сообщение Message IN
пошлет ему сообщение
Теперь рассмотрим процесс с Search Data
, по которой на диске будет найден блок, содержащий информацию, совпадающую с эталоном поиска. Связав с ней команду чтения Read
, можно прочитать этот блок или блок с указанным смещением относительно