5. Шина SCSI
Системный интерфейс малых компьютеров SCSI (Small
Computer System Interface, произносится "скази") был стан-
дартизован ANSI в 1986 году (ХЗ. 131-1986). Интерфейс пред-
назначен для соединения устройств различных классов - па-
мяти прямого (жесткие диски) и последовательного
(стриммеры) доступа, CD-ROM, оптических дисков одно-
кратной и многократной записи, устройств автоматической
смены носителей информации, принтеров, сканеров, комму-
никационных устройств и процессоров. Устройством SCSI -
SCSI Device - называется как хост-адаптер, связывающий
шину SCSI с какой-либо внутренней шиной компьютера, так
и контроллер -целевого устройства - target controller, с помо-
щью которого оно подключается к шине SCSI. С точки зре-
ния шины все устройства могут быть равноправными и яв-
ляться как инициаторами обмена (инициализирующими
устройствами, ИУ), так и целевыми устройствами (ЦУ), од-
нако чаще всего в роли И У выступает хост-адаптер. К одно-
му контроллеру может подключаться несколько ПУ, по от-
ношению к которым контроллер может быть как внутренним,
так и внешним. Широкое распространение получили ПУ со
встроенным контроллером SCSI (embeded SCSI controller),
к которым относятся накопители на жестких магнитных дис-
ках, CD-ROM, стриммеры. Каждое ЦУ может содержать до
8 независимо адресуемых логических устройств (ЛУ) со сво-
ими номерами LUN (Logical Unit Number), представляющи-
ми ПУ или их части.
По физической реализации интерфейс является 8-битной
параллельной шиной с тактовой частотой 5 МГц. Скорость
передачи данных достигает 5 Мбайт/с. Впоследствии по-
явилась спецификация - SCSI-2 (ХЗ. 131-1994), расширя-
ющая возможности шины. Тактовая частота шины Fast (бы-
стрый) SCSI-2достигает 10 МГц, a Ultra SCSI-2 - 20 МГц.
Разрядность данных может быть увеличена до 16 бит - эта
версия называется Wide (широкий) SCSI-2, а 8-битную вер-
сию стали называть Narrow (узкий), 16-битная шина до-
пускает 16 устройств. Стандарт SCSI-2 определяет 32-бит-
ную версию интерфейса, но такие устройства обладают нео-
правданно высокой стоимостью интерфейса. Спецификация
SCSI-2 определяет систему команд, которая включает на-
бор базовых команд CCS (Common Command Set), обяза-
тельных для всех ПУ, и специфических команд для пери-
ферии различных классов. Стандарт полностью описывает
протокол взаимодействия устройств, включая структуры
передаваемой информации. Поддержка устройствами испол-
нения цепочек команд (до 256 команд) и независимость их
работы друг от друга обусловливают высокую эффектив-
ность применения SCSI в многозадачных системах. Возмож-
ность присутствия на шине более одного контроллера (ини-
циатора обмена) позволяет обеспечить разделяемое
использование периферии несколькими компьютерами,
подключенными к одной шине.
SCSI-3 - дальнейшее развитие стандарта, направленное на
увеличение количества подключаемых устройств, расшире-
ние системы команд и поддержку Plug and Play. В качестве
альтернативы параллельному интерфейсу SPI (SCSI-3 Parallel
Interface) появляется возможность применения последова-
тельного, в том числе волоконно-оптического, интерфейса
со скоростью 100 Мбайт/с. SCSI-3 существует в виде широ-
кого спектра документов, определяющих отдельные аспек-
ты интерфейса. Архитектурная модель SAM (SCSI-3
Architecture Model) изображена на рис. 5.1. Первичный на-
бор общих команд SCP (SCSI-3 Primary Commands) для уст-
ройств различных классов дополняется набором команд со-
ответствующего класса устройств'.
^ SBC (SCSI-3 Block Commands) - для устройств памяти
прямого доступа,
it SSC (SCSI-3 Stream Commands) - для устройств памяти
последовательного доступа,
§s SGC (SCSI-3 Graphic Commands) - для принтеров и ска-
неров,
^ SMC (SCSI-3 Medium Changer Commands) - для уст-
оойств смены носителей,
sa SCC (SCSI-3 Controller Commands) - для хост-контрол-
леров.
Транспортный уровень может использовать различные про-
токолы с соответствующей поддержкой физических соедине-
ний:
^ SIP (SCSI-3 Interlocked Protocol) - протокол обмена тра-
диционного интерфейса, физически реализуемый интер-
фейсом SPL
^ FCP (Fibre Channel Protocol) - протокол оптоволоконно-
го канала с соответствующим физическим уровнем FC-PH.
^ SBP (Serial Bus Protocol) - протокол последовательной
шины, реализуемый интерфейсом 1394 (FireWire).
т GPP (Generic Packetized Protocol) - обобщенный пакет-
ный протокол, реализуемый любым пакетным интерфей-
сом.
^ SSP (Serial Storage Protocol) - последовательный прото-
кол памяти, реализованный на архитектуре последователь-
ной памяти SSA (Serial Storage Architecture).
К примеру, дисковый накопитель SCSI-3 с параллельным
интерфейсом описывает набор стандартов SPI+SIP+SAM+
SPC+SBC, а для того же устройства, но с последовательным
интерфейсом вместо SPC+SBC будет связка FCP+FC-PH.
Заявка о поддержке устройством стандарта SCSI-3 непо-
средственно на повышение производительности по сравне-
нию со SCSI-2 не указывает. Однако устройства SCSI-3 в
большинстве случаев показывают более высокую произво-
дительность.
Рис. 5.1. Архитектурная модель SCSI-3
Для параллельных шин скорость передачи данных опреде-
ляется частотой передач, измеряемой в миллионах передач
в секунду - МТ/с (Mega Transfer/sec), и разрядностью. Ком-
бинации частоты и разрядности обеспечивают широкий ди-
апазон пропускной способности (табл. 5.1), достигающей
80 Мбайт/с для версии Ultrd2 Wide SCSI. SCSI Fast означает
частоту передач 10 МТ/с, временные диаграммы для такого
режима определены в SCSI-2. Название SCSI Fast-20 указы-
вает на частоту передач 20 МТ/с. Этот режим, более извест-
ный как SCSI Ultra, определен для параллельного интерфей-
са в SCSI-3. SCST Fast-40 указывает на частоту передач
40 МТ/с. Этот режим, определенный в SCSI-3 и называе-
мый Ultra2 SCSI, в настоящее время является самым быст-
рым для параллельной шины. Он реализован только в низ-
ковольтной дифференциальной версии интерфейса - LVD.
В SCSI-3 предусмотрен режим SCSI Fast-80.
Для Narrow SCSI использовался разъем, изображенный на
рис. 5.2. Wide SCSI использует разъем, изображенный на
рис. 5.3. Для устройств с "горячей" заменой применяют ми-
ниатюрный D-образный разъем SCA-2, общий для питания
и сигнальных цепей (рис. 5.4).
Рис. 5.2. Разъем 8-битного устройства SCSI
Рис. 5.3. Разъем 16-битного устройства SCSI
80-Pin SCSI SCA Connector
Рис. 5.4. Разъем устройства SCSI с "горячей" заменой
Разрядность |
Разновидность |
|||
Обычный |
Fast |
Fast-20 (Ultra) |
Fast-40 (Ultra2) |
|
8 (Narrow) |
5 |
10 |
20 |
40 |
16 (Wide) |
10 |
20 |
40 |
80 |
32 (Wide)* |
20 |
40 |
80 |
160 |
Реализации не встречаются.
Последовательный интерфейс FCAL (Fibre Channel Arbitrated
Loop - кольцо волоконного канала с арбитражем) по реали-
зации ближе к интерфейсам локальных сетей. Этот интерфейс,
известный также как Fibre Channel SCSI, может иметь как элек-
трическую (коаксиальный кабель), так и оптоволоконную
реализацию. В обоих случаях частота 1 ГГц обеспечивает
скорость передачи данных 100 Мбайт/с. Медный кабель до-
пускает длину шины до 30 м, оптический - до 10 км. Здесь
используются иные протокольный и физический уровни ин-
терфейса и имеется возможность подключения 126 устройств.
В настоящее время наибольшее распространение имеют уст-
ройства SCSI-2, которые сохраняют совместимость с исход-
ной версией, теперь называемой SCSI-1. Однако смешивать
устройства SCSI-1 и SCSI-2 неэффективно, да и не всегда воз-
можно из-за проблем, о которых речь пойдет далее. Для крат-
кости номер версии SCSI будем опускать, по умолчанию под-
разумевая Narrow SCSI-2. На ее примере разберем работу
интерфейса, а особенности версии Wide отметим отдельно.
5.1. Физический интерфейс
Физически SCSI представляет собой шину, состоящую из
25 сигнальных цепей. Для защиты от помех каждая сигналь-
ная цепь имеет свой отдельный обратный провод. На при-
меняемых двухрядных разъемах контакты сигнальных и об-
ратных цепей располагаются друг против друга. Это
позволяет применять в качестве кабелей как витые пары про-
водов, так и плоские шлейфы, где сигнальные и обратные
провода чередуются.
По типу сигналов различают линейные (Single Ended) и диф-
ференциальные (Differential) версии SCSI. Их кабели и разъе-
мы идентичны, но электрической совместимости уст-
ройств нет. Символические обозначения для разных версий
приведены на рис. 5.5.
SCSI ^\SE SCSI /^\^ DIFF
\7 \7
Линейный Дифференциальный
(Single Ended) (Differential)
Рис. 5.5. Универсальные символические обозначения версий SCSI
Дифференциальная версия для каждой цепи задействует пару
проводников, по которым передается парафазный сигнал.
Здесь используются специальные дифференциальные приемо-
передатчики, применяемые и в интерфейсе RS-485, что по-
зволяет значительно увеличить длину кабеля, сохраняя час-
тоту обмена (табл. 5.2). Дифференциальный интерфейс
применяется в дисковых системах серверов. Традиционный
дифференциальный интерфейс получил название "высоко-
вольтный" - High Voltage Differential (HVD), поскольку в
SCSI-3 ему появилась низковольтная альтернатива - Low
Voltage Differential (LVD). Низковольтный вариант достигает
частоты 40 МТ/с в устройствах Ultra2 SCSI при длине шины
25 м (8 устройств) или 12 м (16 устройств).
В широко используемой линейной версии каждый сигнал пе-
редается потенциалом с ТТЛ-уровнями относительно обще-
го провода. Здесь общий (обратный) провод для каждого сиг-
нала тоже должен быть отдельным. В дальнейшем речь
пойдет об этой версии.
Новые устройства с интерфейсом LVD могут работать на
шине вместе с устройствами с линейным интерфейсом - для
этого их буферные схемы содержат автоматический опреде-
литель типа интерфейса. Однако совместимость относится
только к LVD - традиционные устройства с HVD могут ра-
ботать только с себе подобными.
Плоский кабель используется для соединения устройств, рас-
положенных в одном корпусе. На нем может быть наколото
несколько разъемов. При необходимости кабели могут сра-
щиваться через специальные переходные разъемы. Кабели
сращиваются только через концевые разъемы, Т-образные
ответвления недопустимы. Круглый кабель, состоящий из
витых пар, используется для соединения вне корпусов уст-
ройств. ПУ внешнего исполнения обычно имеют два разъе-
ма, что позволяет соединить их в цепочку. Длина кабеля за-
висит от версии интерфейса и частоты (см. табл. 5.2). При
подсчете суммарной длины кабеля следует учитывать воз-
можность использования одного порта хост-адаптера одно-
временно для внешних и внутренних подключений и сум-
мировать длины внутренних и внешних кабелей.
Тип интерфейса |
Обычный |
Fast |
Ultra |
Ultra 2 |
Линейный |
6м |
Зм |
1,5м |
- |
Дифференциальный |
25м |
12м |
6м |
- |
Дифференциальный |
25м |
25м |
25м |
25м |
Ассортимент кабелей SCSI довольно широк:
ш А-кабель: стандартный для 8-битного интерфейса, 25 пар
проводов. Для внутренних устройств используется плос-
кий шлейф с разъемами IDC-50, для внешних - экрани-
рованный круглый кабель с разъемами CENTRONICS-50.
^ В-кабель: малораспространенный 16/32-битный расшири-
тель SCSI-2.
ш Р-кабель: 8/16-битный кабель с 34 парами проводов,
снабжен улучшенными миниатюрными экранированны-
ми разъемами. Применяется в интерфейсах SCSI-2/3, в
8-битном варианте контакты 1-5, 31-39, 65-68 не исполь-
зуются. Разъемы для внешнего подключения выглядят как
миниатюрный вариант Centronics с плоскими контакта-
ми, внутренние имеют штырьковые контакты.
^ Q-кабель: 68-проводное расширение до 32 бит, использу-
ется в паре с Р-кабелем и имеет аналогичную конструк-
цию.
ж Кабель с разъемами DB-25P - 8-битный, стандартный для
Macintosh (см. табл. 5.5), используется на некоторых
внешних устройствах (lomega ZIP Drive). Встречается
иная раскладка цепей, если 25-контактный разъем уста-
новлен на хост-адаптере.
Возможны также различные варианты кабелей-переходников.
Назначение контактов разъемов кабелей приведено в
табл. 5.3-5.6. Неудобство вызывает система нумерации кон-
тактов, которая различна для внешних и внутренних разъе-
мов. Однако физическая раскладка проводов на разъеме и в
плоском кабеле одинакова.
Контакт разъема |
Сигнал |
Контакт разъема |
Сигнал |
||
Внутреннего |
Внешнего |
|
Внутреннего |
Внешнего |
|
1 |
1 |
GND |
2 |
26 |
DBO# |
3 |
2 |
GND |
4 |
27 |
DB1# |
5 |
3 |
GND |
6 |
28 |
DB2# |
7 |
4 |
GND |
8 |
29 |
DB3# |
9 |
5 |
GND |
10 |
30 |
DB4# |
11 |
6 |
GND |
12 |
31 |
DB5# |
13 |
7 |
GND |
14 |
32 |
DB6# |
15 |
8 |
GND |
16 |
33 |
DB7# |
17 |
9 |
GND |
18 |
34 |
DBPO# |
19 |
10 |
GND |
20 |
35 |
GND |
21 |
11 |
GND |
22 |
36 |
GND |
23 |
12 |
Reserved |
24 |
37 |
Reserved |
25 |
13 |
Open |
26 |
38 |
TERMPWR |
27 |
14 |
Reserved |
28 |
39 |
Reserved |
Контакт разъема |
Сигнал |
Контакт разъема |
Сигнал |
||
Внутреннего |
Внешнего |
|
Внутреннего |
Внешнего |
|
29 |
15 |
GND |
30 |
40 |
GND |
31 |
16 |
GND |
32 |
41 |
ATN# |
33 |
17 |
GND |
34 |
42 |
GND |
35 |
18 |
GND |
36 |
43 |
BSY# |
37 |
19 |
GND |
38 |
44 |
ACK# |
39 |
20 |
GND |
40 |
45 |
RST# |
41 |
21 |
GND |
42 |
46 |
MSG# |
43 |
22 |
GND |
44 |
47 |
SELft |
45 |
23 |
GND |
46 |
48 |
C/D# |
47 |
24 |
GND |
48 |
49 |
REQ# |
49 |
25 |
GND |
50 |
50 |
1/0# |
Контакт разъема |
Сигнал |
Контакт разъема |
Сигнал |
||
Внутреннего |
Внешнего |
|
Внутреннего |
Внешнего |
|
|
|||||
1 |
1 |
GND |
2 |
35 |
GND |
3 |
2 |
GND |
4 |
36 |
DB8# |
5 |
3 |
GND |
6 |
37 |
DB9# |
7 |
4 |
GND |
8 |
38 |
DB10# |
9 |
5 |
GND |
10 |
39 |
DB11# |
11 |
6 |
GND |
12 |
40 |
DB12# |
13 |
7 |
GND |
14 |
41 |
DB13# |
15 |
8 |
GND |
16 |
42 |
DB14# |
17 |
9 |
GND |
18 |
43 |
DB15# |
19 |
10 |
GND |
20 |
44 |
DBP1# |
21 |
11 |
GND |
22 |
45 |
ACKB# |
23 |
12 |
GND |
24 |
46 |
GND |
25 |
13 |
GND |
26 |
47 |
REQB# |
27 |
14 |
GND |
28 |
48 |
DB16# |
Контакт разъема |
Сигнал |
Контакт разъема |
Сигнал |
||
Внутреннего |
Внешнего |
|
Внутреннего |
Внешнего |
|
29 |
15 |
GND |
30 |
49 |
DB17# |
31 |
16 |
GND |
32 |
50 |
DB18# |
33 |
17 |
TERMPWR |
34 |
51 |
TERMPWR |
35 |
18 |
TERMPWR |
36 |
52 |
TERMPWR |
37 |
19 |
GND |
38 |
53 |
DB19# |
39 |
20 |
GND |
40 |
54 |
DB20# |
41 |
21 |
GND |
42 |
55 |
DB21# |
43 |
22 |
GND |
44 |
56 |
DB22# |
45 |
23 |
GND |
46 |
57 |
DB23# |
47 |
24 |
GND |
48 |
58 |
DBP2# |
49 |
25 |
GND |
50 |
59 |
DB24# |
51 |
26 |
GND |
52 |
60 |
DB25# |
53 |
27 |
GND |
54 |
61 |
DB26# |
55 |
28 |
GND |
56 |
62 |
DB27# |
57 |
29 |
GND |
58 |
63 |
DB28# |
59 |
30 |
GND |
60 |
64 |
DB29# |
61 |
31 |
GND |
62 |
65 |
DB30# |
53 |
32 |
GND |
64 |
66 |
DB31# |
65 |
33 |
GND |
66 |
67 |
DBP2# |
67 |
34 |
GND |
68 |
68 |
GND |
Контакт |
Сигнал |
Контакт |
Сигнал |
Контакт |
Сигнал |
1 |
REO# |
10 |
DB3# |
19 |
SEL# |
2 |
MSG# |
11 |
DB5# |
20 |
DBPO# |
3 |
1/0# |
12 |
DB6# |
21 |
DB1# |
4 |
RST# |
13 |
DB7# |
22 |
DB2# |
5 |
АСК# |
14 |
GND |
23 |
DB4# |
6 |
BSY# |
15 |
C/D# |
24 |
GND |
7 |
GND |
16 |
GND |
25 |
TERMPWR |
8 |
DBO# |
17 |
ATN# |
|
|
9 |
GND |
18 |
GND |
Контакт |
Р- и Q-кабели, |
Контакт |
Р-кабель, |
Q-кабель, |
1 |
GND |
35 |
DB12# |
DB28# |
2 |
GND |
36 |
DB13# |
DB29# |
3 |
GND |
37 |
DB14# |
DB30# |
4 |
GND |
38 |
DB15# |
DB31# |
5 |
GND |
39 |
DBP1# |
DBP3# |
6 |
GND |
40 |
DBO# |
DB16# |
7 |
GND |
41 |
DB1# |
DB17# |
8 |
GND |
42 |
DB2# |
DB18# |
9 |
GND |
43 |
DB3# |
DB19# |
10 |
GND |
44 |
DB4# |
DB20# |
11 |
GND |
45 |
DB5# |
DB21# |
12 |
GND |
46 |
DB6# |
DB22# |
13 |
GND |
47 |
DB7# |
DB23# |
14 |
GND |
48 |
DBPO# |
DBP2# |
15 |
GND |
49 |
GND |
GND |
16 |
GND |
50 |
GND |
GND |
17 |
TERMPWR |
51 |
TERMPWR |
TERMPWRQ |
18 |
TERMPWR |
52 |
TERMPWR |
TERMPWRQ |
19 |
Reserved |
53 |
Reserved |
Reserved |
20 |
GND |
54 |
GND |
GND |
21 |
GND |
55 |
ATN# |
Terminated |
22 |
GND |
56 |
GND |
GND |
23 |
GND |
57 |
BSY# |
Terminated |
24 |
GND |
58 |
ACK# |
ACKQ# |
25 |
GND |
59 |
RST# |
Terminated |
26 |
GND |
60 |
MSG# |
Terminated |
27 |
GND |
61 |
SEL# |
Terminated |
28 |
GND |
62 |
C#/D |
Terminated |
29 |
GND |
63 |
REQ# |
REQQ# |
Контакт |
Р-иО-кабели, |
Контакт |
Р-кабель, |
Q-кабель, |
30 |
GND |
64 |
1/0# |
Terminated |
31 |
GND |
65 |
DB8# |
DB24# |
32 |
GND |
66 |
DB9# |
DB25# |
33 |
GND |
67 |
DB10# |
DB26# |
34 |
GND |
68 |
DB11# |
DB27# |
Назначение сигналов раскрывает табл. 5.7. Все сигналы шины
являются L-активными: активному состоянию и логической
единице соответствует низкий потенциал. На концах кабель-
ных шлейфов обязательно устанавливаются терминаторы,
согласованные по импедансу с кабелем. Они предназначены
для "подтягивания" уровня сигналов линий к высокому по-
тенциалу. Терминаторы служат и для предотвращения отра-
жения сигналов от концов кабеля. По исполнению термина-
торы могут быть внутренние (размещенные на печатной плате
устройства) и внешние (устанавливаемые на разъемы кабеля
или устройства). По электрическим свойствам различают
следующие типы терминаторов:
^ Пассивные (SCSI-1) с импедансом 132 Ом, представляю-
щие собой обычные резисторы. Не пригодны для режи-
мов SCSI-2 с частотой выше 5 МГц.
т Активные с импедансом 110 Ом - специальные термина-
торы для работы на частоте 10 МГц.
^ FPT (Forced Perfect Terminator) - улучшенный вариант
активных терминаторов с ограничителями выбросов.
Активные терминаторы требуют питания, для чего в интер-
фейсе имеются специальные линии TERMPWR. Питание по-
ступает от ИУ.
Сигнал |
Назначение |
BSY# |
Busy - шина занята |
SEL# |
Select - выбор ЦУ инициатором (Select) или |
Сигнал |
Назначение |
C/D# |
Control/Data - управление (низкий |
1/0# |
Input/Output - направление передачи относительно |
MSG# |
Message - передача сообщения |
DB[0:31]# |
Data Bus - инверсная шина данных |
DP[0:3]# |
Data Parity - инверсные биты паритета, дополняют |
TERMPWR |
Terminator Power - питание терминаторов |
ATN# |
Attention - внимание |
REQ# |
Request - запрос от ЦУ на пересылку данных |
ACK# |
Acknowledge - подтверждение передачи (ответ |
RST# |
Reset - сброс |
Каждое устройство SCSI, подключенное к шине, должно
иметь свой уникальный адрес, назначаемый при конфигу-
рировании. Для 8-битной шины диапазон значений адреса
0-7, для 16-битной - 0-15. Адрес задается предварительной
установкой переключателей или джамперов. Для хост-адап-
тера возможно программное конфигурирование. Адресация
устройств на шине в фазах выборки осуществляется через
идентификатор SCSI ID, представляющий адрес в позици-
онном коде. Адрес определяет номер линии шины данных,
которой осуществляется выборка данного устройства. Уст-
ройство с нулевым адресом выбирается низким уровнем на
линии DBO# (SCSI ID=00000001), с адресом 7 - на линии
DB7# (SCSI ID=10000000). Для ИУ значение идентифика-
тора определяет приоритет устройства при использовании
шины, наибольший приоритет имеет устройство с большим
значением адреса. Адрес и идентификатор - всего лишь две
различные формы представления одного и того же параметра.
В любой момент обмен информацией по шине может про-
исходить только между парой устройств. Операцию начинает
И У, а ЦУ ее исполняет. И У выбирает ЦУ по его идентифи-
катору. Чаще всего роли устройств фиксированы: хост-адап-
тер является инициатором (ИУ), а ПУ - целевым (ЦУ).
Возможны комбинированные устройства, выступающие в
роли и И У, и ЦУ. В ряде случаев роли устройств меняются:
ЦУ может, пройдя фазу арбитража, выполнить обратную
выборку (Reselect) ИУ для продолжения прерванной опера-
ции. При выполнении команды копирования (Copy) ИУ дает
указание ведущему устройству копирована (Copy Master)
на обмен данными, который может производиться и с дру-
гим ЦУ (для которых ведущее устройство копирования вы-
ступит в роли И У).
Информация по шине данных передается побайтно асинх-
ронно, используя механизмы запросов (REQuest) и подтвер-
ждений (ACKnowledge). Каждый байт контролируется на
нечетность (кроме фазы арбитража), но контроль может быть
отключен. Интерфейс имеет возможность синхронной пере-
дачи данных, ускоряющей обмен.
5.2. Фазы шины
Шина может находиться в одной из перечисленных фаз. Роли
источников сигналов между ИУ и ЦУ описаны в табл. 5.8.
Фаза |
Сигнал |
||||
BSYft |
SELft |
REQ#,
C/Dft, |
ACK#, |
DBx#, |
|
Bus Free |
- |
- |
- |
- |
- |
Arbitration |
AA |
WA |
- |
- |
SID |
Selection |
I,T |
I |
- |
I |
I |
Reselection |
I,T |
T |
T |
I |
T |
Command |
T |
- |
T |
I |
I |
Фаза |
Сигнал |
||||
BSYff |
SEL# |
REQff, |
ACKff, |
DBx#, |
|
Data IN |
T |
- |
T |
I |
T |
Data OUT |
T |
- |
T |
I |
I |
Status |
T |
- |
T |
I |
T |
Message IN |
T |
- |
T |
I |
T |
Message OUT |
T |
- |
T |
I |
I |
I - источник сигнала - И У;
Т - источник сигнала - ЦУ;
АА - источник сигнала - устройство, активное в арбитраже;
WA - источник сигнала - устройство-победитель в арбитраже;
SID - каждое устройство управляет только битом данных, соответству-
ющим значению его SCSI ID.
В фазе Bus Free шина находится в состоянии покоя - нет
никаких процессов обмена; она готова к арбитражу. Призна-
ком является пассивное состояние линий BSY# и SEL#.
В фазе Arbitration устройство может получить право на
управление шиной. Дождавшись покоя шины (Вш Free), ус-
тройство вводит сигнал BSY# и свой идентификатор SCSI
ID. Если идентификаторы выставили несколько устройств
одновременно, то право на управление шиной получает уст-
ройство с наибольшим адресом, а остальные устройства от-
ключаются до следующего освобождения шины. Устройство,
выигравшее арбитраж, вводит сигнал SEL# и переходит в
фазу Selection или Reselection.
В фазе Selection ИУ, выигравшее арбитраж, вводит на шину
данных результат логической функции ИЛИ от пары иден-
тификаторов - своего и ЦУ, - сопровождая его битом пари-
тета. Установкой сигнала ATN# И У указывает, что следую-
щей фазой будет Message OUT. ИУ снимает сигнал BSY#.
Отсутствие сигнала 1/0# отличает данную фазу от Reselection.
Адресованное ЦУ отвечает сигналом BSY#, если паритет кор-
ректный и на шине данных присутствует только пара иден-
тификаторов (его и И У). На некорректные значения дан-
ных устройства отвечать не должны. Если за заданное вре-
мя ЦУ не ответило, срабатывает тайм-аут, И У освобождает
шину или вводит сигнал сброса RST#.
Фаза Reselection аналогична предыдущей, но ее вводит ЦУ.
Фаза появляется в том случае, когда ЦУ на время исполне-
ния команды отключалось от шины. По завершении внут-
ренней операции это устройство, выиграв арбитраж, будет
вызывать ИУ, которое ранее породило исполнение операции.
ЦУ снимает сигнал BSY#, активность сигнала 1/0# отличает
данную фазу от фазы Selection. Адресованное ИУ отвечает
сигналом BSY#, условия ответа и тайм-аут аналогичны пре-
дыдущей фазе.
В фазах Command, Data, Status и Message по шине данных
передается информация, фазы идентифицируются сигнала-
ми MSG#, C/D# и \/0# (табл. 5.9), которыми управляет ЦУ.
ИУ может потребовать посылки сообщения (фаза Message
OUT) введением сигнала ATN#, a ЦУ может освободить шину,
сняв сигналы MSG#, C/D#, 1/0# и BSY#.
Сигнал |
Фаза |
Направление |
||
MSGft |
C/D# |
I/0# |
||
0 |
о |
о |
Data OUT |
1ФТ |
0 |
о |
1 |
Data IN |
l^T |
0 |
1 |
о |
Command |
I^T |
0 |
1 |
1 |
Status |
1ФТ |
1 |
о |
о |
Зарезервировано |
|
1 |
о |
1 |
Зарезервировано |
|
1 |
1 |
о |
Message OUT |
I^T |
1 |
1 |
1 |
Message IN |
1ФТ |
Временные диаграммы асинхронного обмена приведены на
рис. 5.6. Здесь передача каждого байта сопровождается вза-
имосвязанной парой сигналов REQ#/ACK#. ИУ фиксирует
принимаемые данные, получив сигнал REQ# (по отрицатель-
ному перепаду). ЦУ считает принимаемые данные действи-
тельными по отрицательному перепаду сигнала АСК#. Асин-
хронный обмен поддерживается всеми устройствами для всех
фаз передачи информации.
Рис. 5.6. Временные диаграммы асинхронного обмена (Dl -
данные от ИУ, DT - данные от ЦУ)
Фазы передачи данных Data OUT и Data IN no предваритель-
ной "договоренности" устройств могут выполняться и в син-
хронном режиме обмена, диаграммы которого приведены на
рис. 5.7. При согласовании синхронного режима определяют-
ся минимальные длительности и периоды управляющих им-
пульсов АСК# и REQ#, а также допустимое отставание под-
тверждений от запросов (REQ/ACK offset agreement). ЦУ
передает серию данных, сопровождаемых стробами REQ#
(рис. 5.7а) в темпе, ограниченном установленными времен-
ными параметрами. ИУ фиксирует принимаемые данные по
отрицательному перепаду сигнала REQ#, но отвечать на них
сигналом АСК# может с некоторым опозданием. Как только
отставание числа принятых сигналов АСК# от числа послан-
ных REQ# достигнет оговоренного предельного значения (в
данном примере 2), ЦУ приостановит обмен до прихода оче-
редного подтверждения АСК#. Операция будет считаться за-
вершенной, когда число принятых подтверждений совпадет с
числом посланных запросов. При приеме данных ЦУ меха-
низм согласования остается тем же, но данные фиксируются
по отрицательному перепаду сигнала АСК# (рис. 5.76).
В спецификации SCSI-1 момент возобновления передачи по устранении отстава-
ния описан нечетко, в результате чего разработчики могли считать, что очередной
запрос (и данные) может последовать лишь после окончания (положительного пе-
репада) сигнала АСК#. Устройство, на это рассчитанное, может терять данные:
для него последний ситал REQ# (и данные) будет неожиданным и выглядеть как
превышение согласованного смещения.
Рис. 5.7. Временные диаграммы синхронного обмена:
а - передача, б - прием.
Обмен при разрядности 16 и 32 бит происходит аналогич-
но, но при использовании двух кабелей (В и Q) передачи по
ним управляются сигналами REQB#/ACKB# и REQQ#/ACKQ#
соответственно. По обоим кабелям передачи выполняются в
одинаковых режимах. Если в последней фазе данных исполь-
зуются не все байты, передатчик обязан снабдить их кор-
ректным битом паритета.
При описании фаз шины не говорилось о временных задерж-
ках. Они определяются спецификацией так, чтобы возмож-
ный "перекос" - неодновременный приход сигналов, выз-
ванный задержкой как в электронных схемах, так и в разных
проводах кабеля, - не влиял на устойчивость протокола. В
асинхронном режиме обмена на скорость передачи инфор-
мации влияет и длина кабеля, поскольку изменения состоя-
ний участников обмена привязываются к сигналам, распро-
страняющимся по кабелю с ограниченной скоростью. Из-за
необходимости учета задержек в случае применения пары
кабелей в каждом из них используется своя пара REQ#/ACK#.
В фазе Command ЦУ запрашивает от ИУ команду. В фазе
Status ЦУ делает запрос на передачу ИУ информации о сво-
ем состоянии. В фазах Data IN и Data OUT ЦУ делает за-
7 Зак.№530
просы на передачу данных к И У и от него соответственно.
Фазы Message IN и Message О UT служат для передачи сооб-
щений. Фазу Message OUT ЦУ вводит в ответ на условие
Attention, порождаемое ИУ сигналом ATN#, когда оно нуж-
дается в посылке сообщения ЦУ. Фазу Message IN ЦУ вво-
дит при необходимости посылки сообщения ИУ.
Между фазами передачи информации сигналы BSY#, SEL#,
REQ# и АСК# должны оставаться в неизменном состоянии,
меняться могут только значения сигналов C/D#, 1/0#, MSG#
и шины данных.
Сигналы ATN# и RST# могут порождать условия Attention и
Reset соответственно, причем асинхронно по отношению к
фазам шины. Эти условия могут привести к изменению пред-
определенного порядка фаз. Сигнал ATN# вводится ИУ во
время любой фазы, кроме арбитража и состояния покоя
шины. Сигнал RST# вводится в любой момент любым уст-
ройством, и по условию Reset все устройства должны не-
медленно освободить шину. В зависимости от настройки,
принятой для всех устройств конкретной системы, возмож-
но выполнение одного из двух вариантов сброса. "Жесткий"
сброс переводит устройства в состояние, принятое по вклю-
чению питания, сбрасывая все текущие процессы, очереди и
т. п. В случае "мягкого" сброса после освобождения шины
устройства пытаются завершить начатые операции, сохра-
няя текущие назначения настроек.
Каждый процесс ввода/вывода состоит из следующей после-
довательности фаз шины: из состояния Bus Free через фазу
Arbitration переход к фазе Selection или Reselection. Далее сле-
дуют фазы передачи информации (Command, Data, Status,
Message). Завершающей фазой является Message In, в кото-
рой передается сообщение Disconnect или Command Complete,
после чего шина переходит в состояние покоя Bus Free.
Архитектура SCSI обеспечивает для каждого процесса вво-
да/вывода сохранение набора из трех указателей - Saved
SCSI Pointers, для команды, состояния и данных. ИУ имеет
текущий набор указателей (только один), в который копи-
руется сохраненный набор для текущего процесса. Текущие
указатели указывают на очередной байт команды, состоя-
ния и данных, которые будут передаваться между памятью
ИУ и ЦУ. Сохраненные указатели команды и состояния все-
гда указывают на начала блоков дескрипторов команд и со-
стояния. Сохраненный указатель данных указывает на на-
чало блока данных до тех пор, пока ЦУ не пришлет
сообщение Save Data Pointer. По его приему будет сохранен
текущий указатель данных. Когда ЦУ отключается от шины,
информация о текущем процессе ввода/вывода содержится
в сохраненном наборе указателей. При возобновлении про-
цесса ЦУ сообщением Restore Pointers может потребовать у
И У скопировать сохраненный набор в текущий и продол-
жить выполнение команд данного процесса ввода/вывода.
Поскольку указатель данных может быть модифицирован ЦУ до завершения ввода/
вывода, использование указателя для определения реального количества передан-
ных данных дает ненадежные результаты.
5.3. Управление интерфейсом
Для управления интерфейсом служит система сообщений -
Message System, которыми обмениваются ИУ и ЦУ. Обмен
происходит в фазах Message IN/OUT (см. выше), в одной фазе
может передаваться несколько сообщений. Одно сообщение
не может расщепляться на несколько фаз. Форматы сообще-
ний стандартизованы; каждое сообщение начинается с кода.
Существуют однобайтные (коды OOh, 02h-lFh, SOh-FFh),
двухбайтные (коды 20h-2Fh) и расширенные сообщения (код
Olh). В двухбайтном сообщении второй байт является аргу-
ментом сообщения. В расширенных сообщениях второй байт
задает длину, а последующие байты несут код и аргументы
сообщения. Коды сообщений приведены в табл. 5.10.
Код |
Направление |
Сообщение |
Назначение |
OOh |
In |
Command |
Процесс ввода/вывода |
02h |
In |
Save Data |
Сохранение указателя |
Код |
Направление |
Сообщение |
Назначение |
03h |
In |
Restore Pointers |
Восстановление |
04h |
In |
Disconnect |
Текущее соединение |
04h |
Out |
Disconnect |
Инструкция ЦУ |
05h |
Out |
Initiator |
ИУ обнаружило ошибку |
06h |
Out |
Abort |
Сброс всех процессов, |
07h |
In/Out |
Message Reject |
Сообщение (или его |
08h |
Out |
No Operation |
ИУ нечего ответить |
09h |
Out |
Message Parity |
Последний байт |
OAh |
In |
Linked |
Цепочка команд |
OBh |
In |
Linked |
То же, но ИУ между |
ОСЬ |
Out |
Bus Device |
Аппаратный сброс ЦУ |
ODh |
Out |
Abort Tag |
Сброс текущего процесса, |
код |
Направление |
Сообщение |
Назначение |
OEh |
Out |
QearQueue |
Сброс всех процессов |
OFh |
In/Out |
Initiate |
Сообщение |
lOh |
Out |
Release |
Завершение обработки |
llh |
Out |
Terminate I/O |
Принудительное |
12h-lFh, |
Зарезервированы для 1-байтных сообщений |
||
80h-FFh |
Out |
Identify |
Установление связи типа |
80h-FFh |
In |
Identify |
Восстановление связи |
2-байтные сообщения |
|||
20h |
In |
Simple Queue |
Процесс помещен |
20h |
Out |
Simple Queue |
Обращение к конкретному |
21h |
Out |
Head Of Queue |
Помещение процесса |
22h |
Out |
Ordered Queue |
Помещение процесса |
Код |
Направление |
Сообщение |
Назначение |
23h |
In |
Ignorv Wide |
Последние байты |
24h-2Fh |
Зарезервированы для 2-байтных сообщений |
||
Расширенные сообщения. Первый байт - Olh, в поле "код" первым |
|||
05h, OOh |
In |
Modify Data |
Запрос модификации |
03h, Olh |
In/Out |
Synchronous |
Параметры синхронного |
02h, 03h |
In/Out |
Wide Data |
Разрядность передач |
Значение |
Игнорировать биты данных |
|
32 бит |
16 бит |
|
Olh |
DB[31:24] |
DB[15:8] |
02h |
DB[31:16] |
Зарезервировано |
03h |
DB[31:8] |
Зарезервировано |
OOh, 04h - FFh |
Зарезервировано |
Зарезервировано |
В SCSI-2 для установления связи процесса с конкретным
логическим устройством I_T_L (lnitiator_Target_LUN) или с
конкретной целевой программой I_T_R (lnitiator_Target_TRN),
а также предоставления права разрыва соединения служат
сообщения Identify. В байте их кодов биты [2:0] в зависимо-
сти от бита 5 LUNTAR задают номер LUN (LUNTAR=0) или
TRN (LUNTAR=i). Каждый процесс может быть адресован
только одному LUN или TRN. Если ЦУ во время выполне-
ния процесса обнаружит сообщение с иным адресом связи,
оно обязано освободить шину (ситуация неожиданного раз-
рыва). Единичным значением бита 6 DiscPriv при передаче
сообщения ИУ наделяет ЦУ правом разрыва соединения.
ИУ может проинструктировать ЦУ на разрыв соединения,
послав ему сообщение Disconnect. Получив сообщение, ЦУ
посылает одноименное сообщение (предварительно ЦУ мо-
жет потребовать сохранения указателя данных, послав сооб-
щение Save Data Pointer) и освобождает шину. Если ЦУ не
поддерживает эту возможность, оно отвечает сообщением
Message Reject. Когда процесс, продолжающийся в устрой-
стве, потребует передачи данных, через фазу арбитража ЦУ
обратится к ИУ за продолжением обмена.
С помощью сообщений согласуются параметры синхронно-
го режима и разрядность данных. Процесс согласования син-
хронного обмена называется Synchronous Negotiation. Уст-
ройство, запрашивающее синхронный обмен, посылает
сообщение Synchronous Data Transfer Request с указанием до-
пустимого периода цикла и отставания REQ/ACK. Если дру-
гой участник обмена поддерживает синхронный режим, он
предложит свои параметры. Согласованными параметрами
будут максимальный период и минимальное отставание (ну-
левое отставание эквивалентно асинхронному режиму). Выб-
ранный режим будет относиться только к фазам передачи
между данной парой устройств. Отвергнутое сообщение яв-
ляется требованием асинхронного режима. Поскольку ста-
рые хост-адаптеры не поддерживали согласование синхрон-
ного режима, на ЦУ запрос синхронного режима может быть
заблокирован. О возможности работы в синхронном режи-
ме хост может узнать, послав команды Request Sense и Inquiry.
Разрядность передач согласуется аналогично посредством
сообщений Wide Data Transfer Request. Согласованные режи-
мы будут действовать до сброса устройств по сообщению
Bus Device Reset или "жесткого" сброса, что приведет к ус-
тановке предопределенных режимов по включению. Согла-
сование режимов не должно инициироваться в каждом про-
цессе, поскольку затраты времени на эту процедуру сведут
на нет выигрыш в производительности.
5.4. Типы ПУ
Каждое ЛУ может представлять одно или несколько одно-
типных периферийных устройств (ПУ), перечень их стан-
дартизованных типов приведен в табл. 5.12. Сложное ПУ
может представляться несколькими ЛУ SCSI. По характеру
обмена данных устройства разделяются на 2 класса - блоч-
ные (Block Device) с типами 0, 4, 5, 7 и поточные (Stream
Device) с типами 1, 2, 3, 9.
Код типа |
Назначение |
OOh |
Direct-access device - устройства прямого доступа |
Olh |
Sequential-access device - устройства последовательного |
02h |
Printer device - принтеры |
03h |
Processor device - процессоры (устройства обработки |
04h |
Write-once device - устройства однократной записи |
05h |
CD-ROM device - приводы CD-ROM |
06h |
Scanner device - сканеры |
07h |
Optical memory device - устройства оптической памяти |
08h |
Medium Changer device - устройства смены носителей |
09h |
Communications device - коммуникационные устройства |
OAh-OBh |
Устройства класса ASC ITS (Graphic Arts Pre-Press |
OCh |
Array controller device - контроллеры массивов |
ODh-lEh |
Зарезервировано |
IFh |
Неизвестный тип или устройство отсутствует |
Устройства прямого доступа (0) позволяют сохранять блоки
данных. Каждый блок хранится по уникальному логическому
адресу LBA - Logical Block Address. Взаимное расположение
логических блоков на носителе не регламентируется. Адрес
первого логического блока - нулевой, последнего - (п-1),
где n - общее число блоков. В цепочках команд устройства-
ми может поддерживаться относительная адресация, когда ис-
полнительный адрес в команде определяется смещением от-
носительно адреса, действовавшего в предыдущей команде.
Блоки данных хранятся на носителе вместе с дополнитель-
ной информацией, используемой контроллером для управ-
ления чтением и записью, а также обеспечения надежности
хранения данных (ЕСС или CRC-коды). Формат дополни-
тельных данных не регламентируется, ЦУ скрывает эти дан-
ные от ИУ.
Для каждого блока может быть установлена своя длина, но
чаще используют единую длину блока для всего носителя.
Группа смежных блоков одинаковой длины называется эк-
стентом (extent), экстенты определяются командой MODE
SELECT, длину блока можно узнать по команде MODE SENSE.
После изменения длины блока для активизации экстента
обычно требуется форматирование.
Носитель может быть разделен на области, одна из которых
используется для хранения блоков данных, другая резерви-
руется для замены дефектных блоков, часть носителя может
использоваться контроллером для обслуживания устройства.
Дефектные блоки области данных могут быть переназначе-
ны на другую область носителя, что позволяет их скрыть.
Носитель может быть фиксированным и сменяемым
(Removable). Сменяемый носитель в картридже (или чехле)
называют томом (Volume). Для чтения/записи том должен
быть смонтирован.
Устройство может быть зарезервировано И У, при этом до-
ступ к нему других И У ограничивается. Ограничения рас-
пространяются на ЛУ или экстент.
Устройства, имеющие кэш данных, могут поддерживать по-
литику обратной записи (Write Back). При этом появляют-
ся интервалы времени, в течение которых внезапное отклю-
чение питания устройства приведет к потере данных, по-
скольку сообщение о завершении команды посылается пос-
ле записи в кэш, а не на носитель. Сообщения об ошибках
при WB поступают к ИУ с опозданием. Чтобы избежать этих
неудобств, ИУ может запретить устройству использовать
WB. Отдельные блоки в кэше можно фиксировать, не до-
пуская их замещения при последующих операциях обмена.
Типичный пример устройств прямого доступа - накопитель
на магнитном диске. Есть устройства прямого доступа на лен-
точном носителе - Floppy Tape. Именно для них эффективна
команда SEEK. Устройства прямого доступа могут не иметь
подвижных носителей, а быть основаны на памяти разной
природы: SRAM, DRAM, FRAM, EEPROM, флэш-память.
Устройства последовательного доступа (1) имеют ряд особен-
ностей, связанных с принципом их действия. Носитель пред-
ставляет собой магнитную ленту с многодорожечным, серпан-
тинным или наклонно-строчным типом записи. Носитель -
всегда сменяемый, с некоторым конструктивньш обрамлени-
ем (катушка, картридж) - также называется томом. Том име-
ет начало носителя ВОМ (beginning-of-medium) и конец но-
сителя ЕОМ (end-of-medium). При записи ИУ должен заранее
узнавать о приближении конца носителя, для чего определя-
ется позиция раннего предупреждения EW (Early Warning) с
соответствующим маркером. Это позволяет после записи блока
данных из буфера поместить на носитель соответствующий
концевой маркер. Том может иметь один или несколько раз-
делов (Partitions), нумеруемых с нуля. Разделы располагают-
ся друг за другом, без перекрытия. Каждый раздел х имеет
начало ВОР х (Begining-Of- Partition х), конец ЕОР х и ран-
нее предупреждение EW х. Между началом и концом разде-
ла помещаются блоки данных и маркеры. Блоки данных, пе-
редаваемые ИУ, называются логическими. Логический блок
может занимать один или несколько физических блоков дан-
Hbix на носителе, в последнем случае за блокирование-дебло-
кирование отвечает ЦУ. Описатели записанных физических
и/или логических блоков могут храниться на носителе
(определяется форматом записи). Буфер устройства должен
вмещать по крайней мере один логический блок.
Принтеры (2), подключаемые через интерфейс SCSI, не тре-
буют особых команд для управления, поскольку эти функ-
ции реализуются через поток передаваемых данных. Одна-
ко двунаправленная связь по шине позволяет ввести
дополнительные команды, служащие для отслеживания со-
стояния принтеров с буферной памятью, и обеспечить це-
лостность заданий. Принтеры могут иметь встроенный кон-
троллер SCSI или подключаться ЛУ к внешнему контроллеру
по интерфейсу Centronics или RS-232. Параметры подклю-
чения определяются командой MODE SELECT,
Процессорными устройствами (3) в терминологии SCSI яв-
ляются источники и потребители пакетов информации, трак-
товка которой стандартом не определена. Примерами процес-
сорных устройств являются компьютеры, обменивающиеся
сообщениями односторонним или двухсторонним образом.
Процессорным устройством является и какое-либо сложное
устройство отображения (графический дисплей), которое за-
нято выводом потока сообщений. От коммуникационных ус-
тройств процессорные отличаются тем, что они являются ис-
точниками или потребителями информации, в то время как
коммуникационные служат лишь посредниками.
Устройства оптической памяти (7) близки к устройствам
прямого доступа со сменными носителями, но имеют ряд ха-
рактерных особенностей. Большая емкость носителя вызывает
необходимость применения команд с 12-байтным дескрипто-
ром. Устройства могут обеспечивать считывание, однократную
или многократную запись. На носителе могут быть определены
зоны, недоступные для записи. Блоки носителя имеют состо-
яние "чистый" и "записанный", что отмечается соответству-
ющим атрибутом. Для устройств многократной записи перед
повторной записью блока необходимо его стереть. Стирание
может выполняться специальной командой или автоматичес-
ки по команде записи. В записи фаза стирания может отсут-
ствовать. К этим устройствам применимо понятие обновле-
ния (update) логического блока - запись новых данных по тому
же адресу логического блока, но на другое место носителя.
Прежние данные могут быть считаны специальной командой,
указывающей кроме логического адреса блока и его поколе-
ние (generation). Емкость носителя в таком случае сообщает-
ся без учета множества поколений. Оптические носители по
сравнению с магнитными имеют существенно более высокий
уровень ошибок, так что приходится использовать более слож-
ные алгоритмы восстановления информации.
Устройства однократной записи (4), обычно оптические, от-
личаются невозможностью перезаписи ранее записанного
блока. Попытка повторной записи в зависимости от реали-
зации устройства может приводить к потере записанных дан-
ных. Каждый блок имеет состояние "записан" или "не за-
писан", инициализация (форматирование) не применяется.
Приводы CD-ROM (5) предназначаются для работы с CD-
дисками. Изначально диски содержали звукозапись и при-
воды были рассчитаны не только на чтение блоков данных,
но и на потоковый вывод на внешний аудиоинтерфейс. За-
пись не предусмотрена. Данные на диске адресуются по-раз-
ному. Физический сектор имеет 2352 байт, из которых обычно
используется 2048, поле синхронизации 12 байт и поле тега
адреса сектора 4 байт. Дополнительное поле 288 байт исполь-
зуется для исправления ошибок данных, но если ошибки до-
пустимы, его тоже используют для хранения данных. Таким
образом, физический сектор данных может иметь размер
2048 байт (CD-ROM Data Mode 1) или 2336 и даже 2340
(вместе с полем тега) байт (CD-ROM Data Mode 2). В зави-
симости от размера логического блока (1024, 512 или
256 байт) сектор может вмещать 2,4 или 8 блоков.
Один сектор, или кадр (frame), аудиодиска хранит 1/75 с
звукозаписи. От этого происходит адресация MSF: 75 смеж-
ных кадров, адресуемых полем F (0-74), объединяются в бо-
лее крупную единицу, адресуемую полем S (0-59), звуча-
щую 1 с. 60 полей S соответствуют полю М (0-74),
звучащему 1 мин. Адресация MSF может использоваться как
абсолютная или относительно начала трека.
Носитель делится на треки (track), характерные однотипно-
стью записанной информации. Каждый трек (они нумеру-
ются от 1 до 99) делится на последовательно нумеруемые
(1-99) индексы (index).
Носитель CD-ROM и CD-DA кроме основного канала име-
ет субканал (sub-channel), разделенный на 8 частей, называ-
емых Р, Q, R, S, Т, U, V и W. К примеру, часть Q несет ин-
формацию для контроллера и привода - управляющие поля
и MSF-адрес. Каждая часть имеет производительность, рав-
ную 1/192 основного канала.
Сканеры. (6) передают ИУ данные, описывающие растровое
изображение сканируемого объекта. Команды позволяют за-
давать окна сканирования, определяя в них режим и разре-
шение. Для некоторых функций требуется посылка данных
в сканер (например, полутоновые маски). Для сканеров с
автоподачей имеются команды позиционирования.
Устройства смены, носителей (8) предназначены для авто-
матического манипулирования сменными носителями - дис-
ками и картриджами с магнитными лентами. В SCSI они
представляются ЛУ, отличающимися от первичных устройств
хранения, которые они обслуживают. Модель устройства
состоит из набора адресуемых элементов, каждый из кото-
рых может "держать" только одну единицу носителя:
^ Medium Transport Element - элемент транспортировки
носителя;
^ Storage Element - место хранения единицы носителя, ког-
да он не находится ни в одном из элементов трех других
типов;
^ Import Export Element - элемент, с помощью которого
устройство принимает носители извне или отдает их;
^ Data Transfer Element - позиция первичного устройства,
осуществляющего обмен данными с носителем.
Элементы адресуются 16-битными адресами; доступна ин-
формация об их состоянии. Каждый том носителя снабжа-
ется идентификатором-тегом, по которому определяется его
нахождение в элементах.
Коммуникационные устройства (9) предназначены для об-
мена информацией с устройствами через внешнюю по отно-
шению к шине SCSI среду передачи данных. Внешние про-
токолы стандартом SCSI не описываются: вся необходимая
для них информация заключена в сообщениях, передавае-
мых и принимаемых ИУ по командам SEND MESSAGE и GET"
MESSAGE.
5.5. Адресация и система команд
Как указывалось ранее, любое устройство SCSI на шине ад-
ресуется идентификатором SCSI ID, соответствующим за-
данному уникальному адресу. В ЦУ может быть определено
до 8 ЛУ со своими номерами LUN (Logical Unit Number) в
диапазоне 0-7. Понятие LUN неприменимо к ИУ, но SCSI-
устройство двойного назначения может иметь Л У.
Система команд и сообщений позволяет адресовать как ЦУ
в целом, так и любое его Л У. В ЦУ может быть определено
до 8 целевых программ TRN (Target Routine), которые не име-
ют непосредственной привязки к ЛУ. Целевые программы
появились в SCSI-2, их адресация также производится че-
рез сообщения.
Система команд SCSI включает общие команды, применимые
для устройств всех классов, и специфические для каждого
класса. Как общие, так и специфические наборы команд со-
держат обязательные (Mandatory), дополнительные (Optional)
и фирменные (Vendor Specific) команды. Любое SCSI-устрой-
ство должно поддерживать обязательные команды общего
набора и своего класса, чем обеспечивается высокий уровень
совместимости. Команда передается ИУ в ЦУ через блок дес-
криптора команды Command Descriptor Block, посылаемый в
фазе Command. Некоторые команды сопровождаются блоком
параметров, следующим за блоком дескриптора в фазе Data.
Форматы блоков стандартизованы, длина блока определяет-
ся кодом операции Operation Code, который всегда является
первым байтом блока и может составлять 6, 10 или 12 байт.
Типовой блок содержит следующие поля (рис. 5.8):
as OpCode - код операции, 1 байт (графа "Код" в табл. 5.14).
Биты [7:5] определяют группу, а биты [4:0] - код команды.
В группе 0 блок дескриптора имеет длину 6 байт, в группах
1 и 2 - 10 байт, в группе 5-12 байт. Группы 3 и 4 зарезерви-
рованы, группы б и 7 отданы на усмотрение разработчиков.
т LUN - номер ЛУ (для совместимости со SCSI-1), всегда
занимает биты [7:5] байта 1. Если для идентификации ис-
пользуются сообщения Identify, то это поле игнорируется
(рекомендуется устанавливать LUN=0).
LBA - адрес логического блока, 21 бит для 6-байтных
блоков и 32 бит - для 10- и 12-байтных. В ряде команд
поле не используется.
Lengfh - длина (количество блоков или байт) передавае-
мых данных Transfer Length, блока параметров Parameter
List Length или блока, резервируемого И У под данные
Allocation Length (один из трех вариантов в зависимости
от команды). При однобайтном задании длины 0 соответ-
ствует значению 256, в длинных формах 0 указывает на
отсутствие передач. В ряде команд поле не используется.
Control - байт управления. Биты [7:6] отданы на усмот-
рение разработчику, биты [5:2] - зарезервированы, бит 1 -
Flag, бит 0 - Link (служит признаком объединения команд
в цепочку). Flag определяет сообщение, передаваемое в
случае успешного выполнения команд цепочки, при
Flag=i сообщение Linked Command Complete (With Flag)
будет вызывать прерывания между командами цепочки.
Рис. 5.8. Форматы блоков дескрипторов команд: а-б байт,
б-10 байт, в-12 байт
Обратим внимание на порядок байт: первыми передаются
старшие байты (бит MSB - самый старший), за ними - млад-
шие (бит LSB - самый младший). Зарезервированные поля
для совместимости с будущими стандартами должны иметь
нулевые значения.
Исполнение команды завершается в фазе Status передачей
байта состояния Status Byte. Байт не передается, если ко-
манда завершена по сообщению Abort, Abort Tag, Bus Device
Reset, Clear Queue, по условию Hard Reset или в случае не-
ожиданного разъединения. В байте состояния используются
только биты [5:1], возможные состояния приведены в
табл. 5.13 (остальные зарезервированы).
Биты 76543210 |
Состояние |
Значение |
RROOOOOR |
Good |
Успешное завершение команды |
RR00001R |
Check Condition |
Указание на асинхронное событие |
R R 0 0 0 1 0 R |
Condition Met |
Запрошенная операция выполнена |
R R 0 0 1 0 0 R |
Busy |
Занято (невозможен прием команды) |
R R 0 1 0 0 0 R |
Intermediate |
Успешное выполнение команды |
RR01010R |
Intermediate |
Удовлетворение запрошенной опера- |
R R 0 1 1 0 0 R |
Reservation |
Попытка обратиться к ЛУ, зарезер- |
RR10001R |
Command |
Завершение текущего процесса |
R R 1 0 1 0 0 R |
QueueFull |
Очередь (маркированная) заполнена, |
Набор команд для устройств классов 0-9 приведен в
табл. 5.14. Любое ЦУ SCSI-2 обязано поддерживать четыре
команды: Inquiry, Request Sense, Send Diagnostic, Test Unit
Ready. Они используются для конфигурирования системы,
тестирования устройств и сообщений об ошибках и исклю-
чительных ситуаций. Команда Inquiry позволяет получить
информацию о ЛУ через стандартизованный блок данных
длиной 96 байт: тип подключенного ПУ, возможность сме-
ны носителя, поддержка 32- или 16-битного расширения, син-
хронного обмена, относительной адресации, цепочек ко-
манд, очередей и уведомления об асинхронных событиях.
Здесь же описываются уровень поддержки стандартов SCSI
(ISO, ANSI, ECMA), идентификаторы производителя, уст-
ройства и т. п. Формат блока по усмотрению производителя
может быть расширен.
В графе "Применимость" указаны номера типов ПУ, соот-
ветствующие табл. 5.12 (символ * соответствует всем ти-
пам). Команды для каждого типа устройств могут быть обя-
зательными - номер сопровождается символом m
(Mandatory) - или необязательными - номер типа сопро-
вождается символом о (Optional). Часть команд в устрой-
ствах разных классов реализуется по-разному, что отмече-
но обозначением *z.
Команда |
Код |
Применимость |
Назначение |
Change |
40h |
*0 |
Модификация определений |
Compare |
39h |
*0 |
Побайтное сравнение данных |
Copy |
18h |
*0 |
Копирование данных с одно- |
Copy And Verify |
3Ah |
*0 |
Копирование данных с одно- |
Erase |
19h |
1m |
Стирание (участка или |
Erase (10) |
2Ch |
7o |
То же с 10-байтным блоком |
Erase (12) |
ACh |
7o |
То же с 12-байтным блоком |
Exchange |
A6h |
80 |
Обмен носителями между |
Format |
04h |
2o |
Выбор шрифтов и форм |
Format Unit |
04h |
Om 7o |
Форматирование устройства |
Get Data Buffer |
34h |
60 |
Опрос состояния буфера |
Get Message |
08h |
9o |
Прием пакета из коммуни- |
Команда |
Код |
Применимость |
Назначение |
Get Message |
28h |
9o |
To же с 10-байтным блоком |
Get Message |
A8h |
9o |
То же с 12-байтным блоком |
Get Window |
25h |
60 |
Получение информации |
Initialize |
07h |
8o |
Инициализация состояния |
Inquiry |
12h |
*m |
Опрос типа устройства, уров- |
Load Unload |
IBh |
lo |
Загрузка/разгрузка носителя |
Locate |
2Bh |
lo |
Позиционирование |
Lock-Unlock |
36h |
Oo 4o 5o 7o |
Фиксация заданных логи- |
Log Select |
4Ch |
*o |
Запись статистической ин- |
Log Sense |
4Dh |
*o |
Считывание статистической |
Medium Scan |
38h |
4o7o |
Сканирование - поиск не- |
Mode Select (6) |
15h |
*z |
Запись параметров носителя, |
Mode Select |
55h |
*z |
То же с 10-байтным блоком |
Mode Sense (6) |
lAh |
*z |
Считывание параметров |
Команда |
Код |
Прииенимость |
Назначение |
Mode Sense |
5Ah |
*г |
То же с 10-байтньш блоком |
Move Medium |
A5h |
8ro |
Передача носителя |
Object Position |
31h |
6о |
Позиционирование (загруз- |
Pause/Resume |
4Bh |
5о |
Пауза/продолжение воспро- |
Play Audio (10) |
45h |
5о |
Аудиовоспроизведение ука- |
Play Audio (12) |
A5h |
5о |
То же с 12-байтньш блоком |
Play Audio MSF |
47h |
5о |
Аудиовоспроизведение с адре- |
Play Audio |
48h |
5о |
Аудиовоспроизведение с ука- |
Play Track |
49h |
5о |
Аудиовоспроизведение с адре- |
Play Track |
A9h |
5о |
То же с 12-байтным блоком |
Position To |
2Bh |
8о |
Позиционирование транс- |
Pre-Fetch |
34h |
Оо 4о 5о 7о |
Считывание блоков данных в |
Prevent Allow |
lEh |
Оо 1о 4о 5о 7о |
Запрет/разрешение смены |
|
OAh |
2т |
Печать блока данных |
Read (6) |
08h |
От 1т 4о 5о |
Чтение данных (с 6-байтным |
Read(10) |
28h |
От 4т 5т 6т |
То же с 10-байтньш блоком |
Read(12) |
A8h |
4о 5о 7о |
То же с 12-байтным блоком |
Read Block |
05h |
1т |
Запрос ограничений на дли- |
Команда |
Код |
Применимость |
Назначение |
Read Buffer |
3Ch |
*0 |
Чтение буфера |
Read Capacity |
25h |
Om 4m 7m |
Определение емкости Л У |
ReadCd-Rom |
25h |
5m |
Определение емкости |
Read Defect |
37h |
Oo7o |
Чтение списков дефектных |
Read Defect |
B7h |
7o |
То же с 12-байтным блоком |
Read Bement |
B8h |
80 |
Чтение состояния элементов |
Read |
29h |
7o |
Чтение максимально возмож- |
Read Header |
44h |
5o |
Чтение заголовка логического |
Read Long |
3Eh |
Oo 4o 5o 7o |
"Длинное" чтение - данные |
Read Position |
34h |
lo |
Запрос позиции данных, |
Read Reverse |
OFh |
lo |
Чтение блоков с текущей по- |
Read |
42h |
5o |
Чтение данных субканала |
Read Toe |
43h |
5o |
Чтение таблицы содержимого |
Read Updated |
2Dh |
7o |
Чтение определенного поко- |
Reassign Blocks |
07h |
Oo4o7o |
Переназначение дефектных |
Команда |
Код |
Применимость |
Назначение |
Receive |
08h |
3o |
Прием пакета |
Receive |
ICh |
*o |
Получение результатов диа- |
Recover |
14h |
lo2o |
Восстановление данных, по- |
Release |
17h |
Om 2m 4m 5m |
Освобождение зарезервиро- |
Request Sense |
03h |
Jj |
Опрос уточненного состояния |
Request Volume |
B5h |
80 |
Передача результатов коман- |
Reserve |
16h |
Om 1m 2m 4m |
Предотвращение использо- |
f i\y^flli^J |
Olh |
1m |
Перемотка носителя к началу |
Rezero Unit |
Olh |
Oo 4o 5o 7o 80 |
Приведение ЛУ в определен- |
Scan |
IBh |
6o |
Сканирование данных в |
Search Data |
31h |
Oo 4o 5o 7o |
Поиск данных, (не) совпа- |
Search Data |
Blh |
4o 5o 7o |
То же с 12-байтным блоком |
Search Data |
30h |
Oo 4o 5o 7o |
Поиск данных, (не) больших |
Search Data |
BOh |
4o 5o 7o |
То же с 12-байтным блоком |
Search Data |
32h |
Oo5o7o |
Поиск данных, (не) меньших |
Search Data |
B2h |
4o 5o 7o |
То же с 12-байтным блоком |
Seek(6) |
OBh |
Oo 4o 5o 7o |
Позиционирование (с 6-байт- |
Команда |
Код |
Применимость |
Назначение |
Seek(10) |
2Bh |
Oo 4o 5o 7o |
Позиционирование - поиск |
Send |
OAh |
3m |
Посылка пакета |
Send (10) |
2Ah |
60 |
Посылка данных в устройство |
Send Diagnostic |
IDh |
*m |
Запуск теста ЦУ. Ответом |
Send Message |
OAh |
9m |
Посылка пакета в коммуни- |
Send Message |
2Ah |
9o |
То же с 10-байтным блоком |
Send Message |
AAh |
9o |
То же с 12-байтным блоком |
Send Volume |
B6h |
80 |
Посылка тега тома (шаблона) |
Set Limits |
33h |
Oo 4o 5o 7o |
Определение области логи- |
Set Limits (12) |
B3h |
4o 5o 7o |
То же с 12-байтным блоком |
Set Window |
24h |
6m |
Определение окна сканиро- |
Slew And Print |
OBh |
2o |
Прогон бумаги и печать |
Space |
llh |
1m |
Относительное позициони- |
Start Stop Unit |
IBh |
Oo 4o 5o 7o |
Разрешение/запрет операций |
Stop Print |
IBh |
2o |
Останов печати с очисткой |
Конаида |
Код |
Применимость |
Назначение |
Synchronize |
lOh |
2o |
Синхронизация буфера - |
Synchronize |
35h |
Oo 4o 5o 7o |
Синхронизация кэша - |
Test Unit Ready |
OOh |
*m |
Опрос готовности ЛУ |
Update Block |
3Dh |
7o |
Обновление логического |
Verify |
2Fh |
Oo5o7o |
Верификация - проверка |
Verify |
13h |
lo |
Тоже |
Verify (10) |
2Fh |
4o5o7o |
То же или проверка чистоты |
Verify (12) |
AFh |
4o 5o 7o |
То же с 12-байтным блоком |
Write (6) |
OAh |
Oo 1m 4o 7o |
Запись блоков данных, |
Write (10) |
2Ah |
Oo4m 7m |
Запись блоков данных, |
Write (12) |
AAh |
4o7o |
То же с 10-байтным блоком |
Write And Verify |
2Eh |
Oo4o7o |
Запись блоков данных, |
Write And Verify |
AEh |
7o4o |
То же с 12-байтным блоком |
Write Buffer |
3Bh |
*o |
Запись в буфер (но не |
Команда |
Код |
Применимость |
Назначение |
Write Filemarks |
lOh |
1m |
Запись маркера файлов |
Write Long |
3Fh |
Oo4o7o |
"Длинная" запись - блока |
Write Same |
41h |
Oo |
Запись блока данных, пере- |
1 Команды копирования и сравнения данных оперируют парой Л У, ко-
торые могут принадлежать как одному ЦУ, так и разным, если эту воз-
можность поддерживает ведущее устройство копирования - Copy
Master. Копирование возможно между устройствами любых классов.
Для устройств типов 8 и 9 эти команды не применяются.
2 Данные ищутся сравнением указанного числа логических записей с
эталоном. Логические записи определяются длиной, начальным логи-
ческим блоком и смещением внутри него. Можно потребовать попада-
ния искомых данных в один логический блок.
3 Команда эффективна для ленточных устройств прямого доступа.
4 Команда STOP UNIT для устройств с кэшированием перед остановом
автоматически выполняет синхронизацию кэша.
5 Первые 4 байта в записываемых блоках могут быть заменены на физи-
ческий или логический адрес блока.
5.6. Выполнение команд
Мы не будем рассматривать различные ситуации, приводя-
щие к отклонениям от нормальной последовательности со-
бытий интерфейса. К ним относятся некорректные соедине-
ния со стороны ИУ, выбор несуществующего ЛУ,
неожиданные выборки ИУ, округление параметров, реакция
на асинхронные события и т. п.
Рассмотрим процесс на шине SCSI на примере одиночной
команды чтения Read. ИУ имеет активный набор указате-
лей и несколько сохраненных наборов, по одному на каж-
дый из допустимого числа одновременных конкурирующих
процессов. ИУ восстанавливает указатели процесса в актив-
ный набор и, выиграв арбитраж, выбирает ЦУ. Как только
ЦУ выбрано, оно берет на себя управление процессом. В фазе
Selection И У вводит сигнал ATN^, сообщая о намерении по-
слать сообщение Identify с указанием адресуемого ЛУ. Та-
ким образом устанавливается связь 1_T_L с данным процес-
сом и его набором указателей. ЦУ переходит в фазу Command
и принимает блок дескриптора команды Read. Интерпрети-
ровав команду, ЦУ переходит в фазу Data IN, передает дан-
ные, затем переводится в фазу Status и посылает состояние
Good. Затем в фазе Message IN устройство посылает сообще-
ние Command Complete, после чего освобождает шину (фаза
Bus Free). Процесс завершен.
Рассмотрим тот же пример, но с использованием отключения
от шины (Disconnect) в процессе выполнения команды. Если
устройство определит, что для получения затребованных дан-
ных потребуется много времени, получив команду Read, оно
освобождает шину, послав сообщение Disconnect. Как только
требуемые данные готовы в ЦУ, оно, выиграв арбитраж, вы-
берет ИУ (в фазе Reselect) и в фазе Message IN пошлет ему
сообщение Identify. По определенной этим сообщением свя-
зи 1_T_L ИУ восстановит соответствующий набор указате-
лей в активный и продолжит выполнение процесса, как опи-
сано выше. Если ЦУ хочет отсоединиться, когда часть данных
уже передана (например, головка дошла до конца цилиндра
и требуется время на позиционирование), оно посылает со-
общение Save Data Pointer, а затем Disconnect. После повтор-
ного соединения передача данных возобновится с точки,
определенной последним сохраненным значением указате-
ля. Если произошла ошибка или исключение, ЦУ может по-
вторить обмен данными, послав сообщение Restore Pointers
или отсоединившись без сообщения Save Data Pointers.
Теперь рассмотрим процесс с цепочкой связанных команд. По
успешному завершению каждой команды цепочки ЦУ авто-
матически переходит к исполнению следующей. Все коман-
ды цепочки адресуются к одной и той же связи 1_Т_х и яв-
ляются частью одного процесса. Команды не являются
полностью независимыми: при использовании бита относи-
тельной адресации последний блок, адресованный предыду-
щей командой, доступен для следующей. Так, например, мож-
но исполнить команду Search Data, по которой на диске будет
найден блок, содержащий информацию, совпадающую с эта-
лоном поиска. Связав с ней команду чтения Read, можно
прочитать этот блок или блок с указанным смещением от-
носительно найденного. По выполнении связанных команд
ЦУ посылает сообщения Linked Command Complete (возмож-
но, с флагом), а ИУ обновляет набор сохраненных указате-
лей так, что они указывают на очередную команду цепочки.
Команды в цепочке выполняются как одиночные, но с воз-
можностью относительной адресации.
Команды могут исполняться с использованием очередей. ЦУ
могут поддерживать немаркированные и маркированные
очереди. Поддержка немаркированных очередей, определен-
ная еще в SCSI-1, позволяет любому ЛУ (LUN) или целевой
программе (TRN), занятым процессом от одного ИУ, прини-
мать команды (начинать процесс) с другими И У. При этом
каждый процесс идентифицируется связью 1_Т_х, где х - LUN
или TRN.
Маркированные очереди (Tagged Queue) определены в SCSI-2
для ЛУ (LUN, но не TRN). Для каждой связи 1_T_L суще-
ствует своя очередь размером до 256 процессов (немаркиро-
ванные очереди можно считать вырожденным случаем мар-
кированных с одноместными очередями). Каждый процесс,
использующий маркированные очереди, идентифицируется
связью 1_T_L_Q, где Q - однобайтный тег очереди (Queue Tag).
Теги процессам назначаются ИУ, их значения на порядок
выполнения операций не влияют. Повторное использование
тега возможно лишь по завершении процесса с этим тегом.
Постановка в очередь выполняется через механизм сообще-
ний, при этом очередной процесс можно поставить в оче-
редь "по-честному", а можно пропихнуть вне очереди: про-
цесс, поставленный в очередь с сообщением Head Of Queue
Tag, будет выполняться сразу после завершения текущего
активного процесса. Процессы, поставленные в очередь с со-
общением Simple Queue Tag, исполняются ЦУ в порядке, ко-
торый оно сочтет оптимальным. Процесс, поставленный в
очередь с сообщением Ordered Queue Tag, будет исполняться
последним. ИУ может удалить процесс из очереди, сослав-
шись на него по тегу. Изменение порядка выполнения ко-
манд ЦУ не касается порядка команд в цепочке, поскольку
цепочка принадлежит одному процессу, а в очередь ставят-
ся именно процессы.
5.7. Конфигурирование устройств SCSI
Все устройства на шине должны быть согласованно скон-
фигурированы. Для них требуется программно или с помо-
щью джамперов установить следующие основные параметры:
Идентификатор устройства SCSI ID - адрес 0-7 (для Wide
SCSI 0-15), уникальный для каждого устройства на шине.
Обычно хост-адаптеру, который должен иметь высший прио-
ритет, назначается адрес 7 (15 для Wide SCSI, если все устрой-
ства 16-битные). Позиционный код, используемый для адре-
сации, обеспечивает совместимость адресации 8- и 16-битных
устройств на одной шине. Типовые заводские назначения иден-
тификаторов устройств приведены в табл. 5.15, хотя они не
являются обязательными. В настоящее время прорабатывает-
ся спецификация РпР для устройств SCSI, позволяющая ав-
томатизировать процесс назначения идентификаторов. Она
обеспечивает сосуществование традиционных (Legacy SCSI)
устройств, идентификаторы которых задаются джамперами,
с автоматически конфигурируемыми РпР-устройствами.
Контроль паритета - SCSI Parity. Если хотя бы одно уст-
ройство не поддерживает контроль паритета, он должен быть
отключен для всех устройств на шине. Контроль паритета,
особенно для дисковых устройств, является надежным сред-
ством защиты от искажения данных при передаче по шине.
Включение терминаторов - Termination. В современных уст-
ройствах применяются активные терминаторы, которые мо-
гут включаться одним джампером или программно управ-
ляемым сигналом. Терминаторы включаются только на
крайних устройствах в цепочке. Современные хост-адапте-
ры позволяют автоматически включать свой терминатор, если
они являются крайними, и отключать, если используются
внутренний и внешний разъем канала. Это позволяет под-
ключать и отключать внешние устройства, не заботясь о пе-
реключении терминаторов. Ранее приходилось открывать
корпус и переставлять джампер, а пассивные терминаторы
устанавливать в специальные гнезда (и извлекать их оттуда).
При отсутствии внутренних терминаторов пользователь .вы-
нужден был использовать внешние, устанавливаемые на ка-
бель.
Правильная установка терминаторов крайне существенна -отсутствие/избыток тер-
минаторов может привести к неустойчивости или неработоспособности интерфейса.
Питание терминаторов (Terminator Power). Когда использу-
ются активные терминаторы (для современных устройств -
всегда), питание терминаторов должно быть включено (джам-
пером или программно) хотя бы на одном устройстве.
Согласование скорости синхронного обмена (SCSI Synchronous
Negotiation). Режим синхронного обмена, обеспечивающий
высокую производительность, включается по взаимному со-
гласию устройств. Если хотя бы одно устройство на шине
его не поддерживает, рекомендуют согласование запретить
на хост-адаптере. Если обмен будет инициирован синхрон-
ным устройством, хост-адаптер поддержит этот режим.
Старт по команде (Start on Command) или задержанный
старт (Delayed Start). При включении этой опции запуск
двигателя устройства выполняется только по команде от
хост-адаптера, что позволяет снизить пик нагрузки блока
питания в момент включения. Хост будет запускать устрой-
ства последовательно.
Разрешение отключения (Enable Disconnection). Позволяет ус-
тройствам отключаться от шины при неготовности данных
во время длительных операций с носителем, что весьма эффек-
тивно в многозадачном режиме при нескольких ПУ на шине.
В случае одного устройства отключение приводит только к
дополнительным затратам времени на повторное соединение.
SCSI ID |
Устройство |
7 |
Хост-адаптер |
6 |
Накопитель на магнитных дисках |
5 |
- |
4 |
Ленточный или R/W-оптический накопитель |
3 |
CD-ROM |
SGIID |
Устройство |
2 |
Сканер, принтер |
1 |
НЖМД, поддерживаемый BIOS хост-адаптера |
0 |
НЖМД, поддерживаемый BIOS хост-адаптера |
Устройства SCSI допускают программирование - Pmgfvmmable
Operating Definition. Программированием определений опера-
ций для ЛУ можно изменить такие параметры, как иденти-
фикация производителя, типа и модели устройства, уровень
соответствия SCSI, номер спецификации, набор команд и т. д.
Однако низкоуровневые параметры интерфейса (параметры
временных диаграмм, определение паритета) сохраняются
неизменными. Текущие определения могут быть считаны ИУ
по командам Inquiry, Mode Sense и Read Capacity.
5.8. Хост-адаптер SCSI
Хост-адаптер является важнейшим узлом интерфейса, опреде-
ляющим производительность системы SCSI. Существует ши-
рокий спектр адаптеров. К простейшим можно подключать
только устройства, не критичные к производительности. Такие
адаптеры входят в комплект поставки сканеров, а подключение
к ним диска невозможно. Высокопроизводительные адаптеры
имеют собственный специализированный процессор, большой
объем буферной памяти и используют высокоэффективные
режимы прямого управления шиной для доступа к памяти
компьютера. Адаптеры SCSI существуют для всех шин: ISA
(8-16 бит), EISA, МСД PCI, VLB, PCMCIA и для параллель-
ного порта. Ряд системных плат имеют встроенный
SCSI-адаптер, подключенный к одной из локальных шин. При
выборе интерфейса, к которому подключается хост-адаптер,
учитывайте производительность - интерфейс не должен стать
узким местом при обмене с высокопроизводительными устрой-
ствами SCSI. Наибольшую эффективность имеют хост-адапте-
ры для шины PCI. Конечно, за мощный адаптер для сервера
приходится платить - его цена может превышать цену рядово-
го настольного компьютера. Еще дороже хост-адаптеры со
встроенными контроллерами RAID-массивов, которые содержат
мощный RISC-процессор и большой объем локальной памяти.
Конфигурирование хост-адаптеров с точки зрения шины
SCSI не отличается от конфигурирования других устройств.
Для современных адаптеров вместо джамперов использует-
ся программное конфигурирование. Утилита конфигуриро-
вания обычно входит в расширение BIOS, установленное на
плате адаптера, и приглашение к ее вызову выводится на
экран во время POST.
Как и всякая карта расширения, хост-адаптер должен быть
сконфигурирован и с точки зрения шины расширения, к ко-
торой он подключается. Системные ресурсы для шинного
SCSI-адаптера включают:
^ область памяти для расширения ROM BIOS, необходи-
мого для поддержки конфигурирования устройств и дис-
ковых функций. Если в системе установлено несколько
однотипных хост-адаптеров, ROM BIOS для них исполь-
зуется с одного адаптера. Разнотипные хост-адаптеры не
всегда могут работать вместе;
^ область разделяемой буферной памяти;
^ область портов ввода-вывода (I/O Port);
ш IRQ - запрос прерывания;
^ DMA - канал прямого доступа к памяти (для шин
ISA/EISA), часто используемый для захвата управления
шиной (Bus-Mastering).
Все устройства SCSI требуют специальных драйверов. Базо-
вый драйвер дисковых устройств входит в BIOS хост-адапте-
ра. Расширения, например ASPI (Advanced SCSI Programming
Interface), загружаются отдельно. От драйверов сильно зави-
сит производительность устройств SCSI. "Умное" ПО спо-
собно эффективно загружать работой устройства, а иногда и
"срезать углы" - выполнять копирование данных между
устройствами без выхода на системную шину компьютера.