Иллюстрированный самоучитель по теории операционных систем

Шины

Современные спецификации SCSI по структуре аналогичны спецификациям сетевых протоколов и состоят из трех уровней: команд, протокола и соединений. Уровень команд определяет формат и семантику команд и ответов на них, т. е. приблизительно соответствует тому, что в сетевых протоколах называется прикладным уровнем. Уровень протокола определяет способ передачи команд и ответов и соответствует канальному уровню сетевых протоколов.

И, наконец, уровень соединений определяет физическую реализацию линий передачи данных (способ кодирования данных, допустимые токи и напряжения, конструкцию разъемов и т. д.), т. е. соответствует физическому уровню [www.t10.org architecture, Friedhelm/Shmidt 1997]. Сетевой (в данном случае описывающий способ адресации устройств) и транспортный уровни в спецификациях SCSI также присутствуют, хотя и в рудиментарном виде.

Таблица 9.3. Типы устройств SCSI, возвращаемые командой INQUIRY, цит. по [www.t10.org commands].

Код Описание
00h Устройство прямого доступа (например, магнитный диск)
01h Устройство последовательного доступа (например, магнитная лента)
02h Печатающее устройство
03h Процессорное устройство
04h Устройство однократной записи (например, некоторые оптические диски)
05h CD-ROM
06h Сканер
07h Оптическое запоминающее устройство (например, некоторые оптические диски)
08h Устройство с автоматической заменой носителя (например, jukebox)
09h Коммуникационное устройство
0Ah-0Bh Определено ASC IT8
0Ch Контроллер массива запоминающих устройств (например, RAID)
0Dh Устройство enclosure services (мост к шине другого типа)
0Eh-1Eh Зарезервировано
1Fh Неизвестный или неопределенный тип устройства

На физическом уровне SCSI представляет собой параллельную шину с 8-ю или 16-ю (так называемая Wide SCSI) линиями передачи данных. Современные реализации стандарта обеспечивают скорости передачи данных до 160 Мбит/с. Стандартом SCSI III предусмотрены также реализации в виде последовательной шины IEEE 1394 или волоконно-оптических колец FC-AL (Fiber Channel Arbitrated Loop – волоконно-оптический канал [в виде] арбитрируемого кольца). Fiber Channel допускает объединение нескольких колец коммутаторами, подключение до 127 устройств, общую длину сети, измеряемую несколькими сотнями метров и скорости передачи до 1Гбит/с.

Обмен данными по шине происходит не байтами и даже не словами, а кадрами, которые могут содержать команды, информацию о состоянии устройства (sense data) или собственно данные. Формат кадров и способ разрешения коллизий зависит от используемого типа соединений – в этом смысле разделение уровня соединений и уровня протокола не реализовано в полной мере. Каждый кадр содержит адреса отправителя и получателя. Каждое устройство имеет собственный адрес, называемый SCSI target ID. У старых версий протокола этот адрес был 3-битным, допуская адресацию восьми устройств, у современной версии (Ultra-SCSI или SCSI III) адрес 4 – или 5-битный. Адаптер, через который шина SCSI подключается к системной или периферийной шине компьютера – НВА (Host Bus Adapter– адаптер системной шины) – также считается устройством и обычно имеет ID, равный, в зависимости от разрядности адреса, 7, 15 или 127.

Устройство, имеющее один target ID, может содержать несколько логически устройств, идентифицируемых номерами логических устройств (LUNLogjc Unit Number). Спецификации протокола предусматривают два байта для код рования LUN, но реальное число логических устройств, поддерживаемых практике, обычно невелико.

Устройства SCSI делятся на два типа: инициаторы (initiator) и целевые устройства (target). Инициатор посылает команды, а целевое устройство их полняет. Спецификация допускает, что в разных актах обмена данными инициатор может становиться целевым устройством и наоборот, но в пределах одной операции эти роли заданы однозначно. Как правило, НВА может выступать только в роли инициатора, а периферийные устройства – только в роли целевых.

Блоки командCDB (Command Descriptor Block – блок описания команды) – невелики по размеру и могут содержать 6, 8, 10, 12 или 16 байт. Различие в длине обусловлено размером используемых в команде адресов: 6-байтовая команда использует 21-битный адрес блока на устройстве и 8-битное поле для длины требуемого блока данных, 8-байтовая – 32-разрядный адрес и 16-битное поле длины, а более длинные команды– 32-разрядные адрес и длину. 16-байтовая форма команды содержит, кроме 32-разрядных адреса и длины, также и 32-битное поле параметра. Кроме того, команда обязательно содержит код операции и поле управления. Под код операции отводится байт. Старшие три бита этого байта кодируют формат SCB. Некоторые команды используют только один формат SCB, другие допускают применение различных форматов (обычно с адресами и полем длины различной разрядности). Кроме перечисленных в табл. 9.4, различные типы устройств имеют собственные команды.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.