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 в
большинстве случаев показывают более высокую произво-
дительность.

51.jpg

Рис. 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).

52.jpg

Рис. 5.2. Разъем 8-битного устройства SCSI

53.jpg

Рис. 5.3. Разъем 16-битного устройства SCSI
80-Pin SCSI SCA Connector

54.jpg

Рис. 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). При
подсчете суммарной длины кабеля следует учитывать воз-
можность использования одного порта хост-адаптера одно-
временно для внешних и внутренних подключений и сум-
мировать длины внутренних и внешних кабелей.

Тип интерфейса

Обычный
(5МТ/С)

Fast
(ЮМТ/с)

Ultra
(20МТ/С)

Ultra 2
(40МТ/С)

Линейный
(Single ended)

Зм

1,5м

-

Дифференциальный
(HVD)

25м

12м

-

Дифференциальный
низковольтный
(LVD)

25м

25м

25м

25м
(8 устройств)
12м
(16 устройств)


Ассортимент кабелей 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) или
инициатора ЦУ (Reselect)



Сигнал

Назначение

C/D#

Control/Data - управление (низкий
уровень/данные (высокий уровень)

1/0#

Input/Output - направление передачи относительно
ИУ: вводу в ИУ соответствует низкий уровень.
Используется для различия прямой (Select)
и обратной (Reselect) выборки: фазе Selection
соответствует низкий уровень

MSG#

Message - передача сообщения

DB[0:31]#

Data Bus - инверсная шина данных

DP[0:3]#

Data Parity - инверсные биты паритета, дополняют
количество единичных бит байта до нечетного.
DPO# относится к DB[0:7],... DP3# - к DB[24:31].
В фазе арбитража не действуют

TERMPWR

Terminator Power - питание терминаторов

ATN#

Attention - внимание

REQ#

Request - запрос от ЦУ на пересылку данных

ACK#

Acknowledge - подтверждение передачи (ответ
на REQ#)

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,
I/Oft,
MSG#

ACK#,
ATN#

DBx#,
DBPxtf

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,
C/D#,
I/O",
MSG#

ACKff,
ATNff

DBx#,
DBPx#

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# (по отрицатель-


ному перепаду). ЦУ считает принимаемые данные действи-
тельными по отрицательному перепаду сигнала АСК#. Асин-
хронный обмен поддерживается всеми устройствами для всех
фаз передачи информации.

55.jpg

Рис. 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# (и данные) будет неожиданным и выглядеть как
превышение согласованного смещения.


56.jpg

Рис. 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
Complete

Процесс ввода/вывода
завершен, информация
о состоянии послана
в сообщении Status

02h

In

Save Data
Pointer

Сохранение указателя
данных



Код

Направление

Сообщение

Назначение

03h

In

Restore Pointers

Восстановление
указателей

04h

In

Disconnect

Текущее соединение
разрывается, но для
продолжения процесса
потребуется повторное
соединение (не вызывает
сохранения текущих
указателей)

04h

Out

Disconnect

Инструкция ЦУ
на разрыв соединения

05h

Out

Initiator
Detected Error

ИУ обнаружило ошибку
на шине

06h

Out

Abort

Сброс всех процессов,
связанных с данной
парой 1Т, и
освобождение шины

07h

In/Out

Message Reject

Сообщение (или его
параметры)
недействительны для
получателя

08h

Out

No Operation

ИУ нечего ответить
на запрос сообщения

09h

Out

Message Parity
Error

Последний байт
сообщения принят
с неверным паритетом

OAh

In

Linked
Command
Complete

Цепочка команд
завершена. ИУ может
инициализировать
указатели для новой
цепочки

OBh

In

Linked
Command
Complete (With
Flag)

То же, но ИУ между
цепочками команд
вызывает прерывание
в хост-системе

ОСЬ

Out

Bus Device
Reset

Аппаратный сброс ЦУ
и освобождение шины

ODh

Out

Abort Tag

Сброс текущего процесса,
связанного с данной парой
1Т, и освобождение шины



код

Направление

Сообщение

Назначение

OEh

Out

QearQueue

Сброс всех процессов
и освобождение шины
(эквивалентно серии
сообщений Abort,
принятых от всех ИУ)

OFh

In/Out

Initiate
Recovery

Сообщение
для уведомления
об асинхронных событиях
(ЦУ временно
становится ИУ)

lOh

Out

Release
Recovery

Завершение обработки
асинхронных событий

llh

Out

Terminate I/O
Process

Принудительное
завершение текущего
процесса без логического
повреждения носителя
уЦУ

12h-lFh,
30h-7Fh

Зарезервированы для 1-байтных сообщений

80h-FFh

Out

Identify

Установление связи типа
ITL или ITR

80h-FFh

In

Identify

Восстановление связи
типа ITL или ITR при
повторном соединении.
Вызывает восстановление
сохраненных указателей

2-байтные сообщения

20h

In

Simple Queue
Tag

Процесс помещен
в очередь, аргумент - тег
(OOh-FFh)

20h

Out

Simple Queue
Tag

Обращение к конкретному
процессу маркированной
очереди, аргумент - тег
(OOh-FFh)

21h

Out

Head Of Queue
Tag

Помещение процесса
в начало маркированной
очереди для данного LUN,
аргумент - тег (OOh-FFh)

22h

Out

Ordered Queue
Tag

Помещение процесса
в конец маркированной
очереди для данного LUN,
аргумент - тег (OOh-FFh)



Код

Направление

Сообщение

Назначение

23h

In

Ignorv Wide
Residue

Последние байты
последнего переданного
слова недействительны
(аргумент см. в табл. 5.11)

24h-2Fh

Зарезервированы для 2-байтных сообщений

Расширенные сообщения. Первый байт - Olh, в поле "код" первым
байтом указана длина, вторым - расширенный код

05h, OOh

In

Modify Data
Pointer

Запрос модификации
указателя данных -
суммирование текущего
указателя с 4-байтным
аргументом сообщения

03h, Olh

In/Out

Synchronous
Data Transfer
Request

Параметры синхронного
режима обмена, 1-й байт
аргумента определяет
период посылки, 2-й -
допустимое смещение
REQ/ACK

02h, 03h

In/Out

Wide Data
Transfer
Request

Разрядность передач
в фазах данных. Ар1умент
задает число байт:
0 -1 байт,
1 -2 байта,
2-4 байта


Значение
2-го байта

Игнорировать биты данных
при разрядности обмена

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 - устройства смены носителей
(jukebox)

09h

Communications device - коммуникационные устройства

OAh-OBh

Устройства класса ASC ITS (Graphic Arts Pre-Press
Devices - высококачественные устройства печати)

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)
будет вызывать прерывания между командами цепочки.

57.jpg

Рис. 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

Запрошенная операция выполнена
(команды Search Data и Pre-Fetch)

R R 0 0 1 0 0 R

Busy

Занято (невозможен прием команды)

R R 0 1 0 0 0 R

Intermediate

Успешное выполнение команды
в цепочке

RR01010R

Intermediate
Condition Met

Удовлетворение запрошенной опера-
ции в цепочке команд

R R 0 1 1 0 0 R

Reservation
Conflict

Попытка обратиться к ЛУ, зарезер-
вированному другим И У

RR10001R

Command
Terminated

Завершение текущего процесса
по сообщению Terminate I/O Process
или по асинхронному событию

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
Definition

40h

*0

Модификация определений
операций для ЛУ

Compare

39h

*0

Побайтное сравнение данных
двухЛУ1

Copy

18h

*0

Копирование данных с одно-
го ЛУ на другое'

Copy And Verify

3Ah

*0

Копирование данных с одно-
го ЛУ на другое с верифи-
кацией1

Erase

19h

1m

Стирание (участка или
до конца носителя)

Erase (10)

2Ch

7o

То же с 10-байтным блоком
дескриптора

Erase (12)

ACh

7o

То же с 12-байтным блоком
дескриптора

Exchange
Medium

A6h

80

Обмен носителями между
двумя элементами устройства

Format

04h

2o

Выбор шрифтов и форм

Format Unit

04h

Om 7o

Форматирование устройства

Get Data Buffer
Status

34h

60

Опрос состояния буфера
данных

Get Message

08h

9o

Прием пакета из коммуни-
кационного устройства



Команда

Код

Применимость

Назначение

Get Message
(10)

28h

9o

To же с 10-байтным блоком
дескриптора

Get Message
(12)

A8h

9o

То же с 12-байтным блоком
дескриптора

Get Window

25h

60

Получение информации
о предварительно определен-
ном окне

Initialize
Element Status

07h

8o

Инициализация состояния
элемента

Inquiry

12h

*m

Опрос типа устройства, уров-
ня стандарта, идентифика-
тора производителя, модели
и т. п.

Load Unload

IBh

lo

Загрузка/разгрузка носителя

Locate

2Bh

lo

Позиционирование
на заданный логический блок

Lock-Unlock
Cache

36h

Oo 4o 5o 7o

Фиксация заданных логи-
ческих блоков в кэше
устройства и ее отмена

Log Select

4Ch

*o

Запись статистической ин-
формации, обработка которой
поддерживается устройством,
в ЦУ или ЛУ

Log Sense

4Dh

*o

Считывание статистической
информации с ЦУ или ЛУ

Medium Scan

38h

4o7o

Сканирование - поиск не-
прерывной области чистых
или записанных блоков

Mode Select (6)

15h

*z

Запись параметров носителя,
ЦУ или ЛУ (с 6-байтным
блоком дескриптора)

Mode Select
(10)

55h

*z

То же с 10-байтным блоком
дескриптора

Mode Sense (6)

lAh

*z

Считывание параметров
носителя, ЦУ или ЛУ
(с 6-байтным блоком де-
скриптора)



Команда

Код

Прииенимость

Назначение

Mode Sense
(10)

5Ah

То же с 10-байтньш блоком
дескриптора

Move Medium

A5h

8ro

Передача носителя

Object Position

31h

Позиционирование (загруз-
ка/выгрузка) сканируемого
объекта

Pause/Resume

4Bh

Пауза/продолжение воспро-
изведения аудио

Play Audio (10)

45h

Аудиовоспроизведение ука-
занных логических блоков

Play Audio (12)

A5h

То же с 12-байтньш блоком
дескриптора

Play Audio MSF

47h

Аудиовоспроизведение с адре-
сацией MSF

Play Audio
Track/Index

48h

Аудиовоспроизведение с ука-
занием треков и индексов

Play Track
Relative (10)

49h

Аудиовоспроизведение с адре-
сацией относительно трека

Play Track
Relative (12)

A9h

То же с 12-байтным блоком
дескриптора

Position To
Bement

2Bh

Позиционирование транс-
портного элемента к указан-
ному элементу

Pre-Fetch

34h

Оо 4о 5о 7о

Считывание блоков данных в
кэш (без передачи ИУ)

Prevent Allow
Medium
Removal

lEh

Оо 1о 4о 5о 7о

Запрет/разрешение смены
носителя в ЛУ

Print

OAh

Печать блока данных

Read (6)

08h

От 1т 4о 5о

Чтение данных (с 6-байтным
блоком дескриптора)

Read(10)

28h

От 4т 5т 6т

То же с 10-байтньш блоком
дескриптора

Read(12)

A8h

4о 5о 7о

То же с 12-байтным блоком
дескриптора

Read Block
Limits

05h

Запрос ограничений на дли-
ну блока (минимальная и
максимальная длины)



Команда

Код

Применимость

Назначение

Read Buffer

3Ch

*0

Чтение буфера

Read Capacity

25h

Om 4m 7m

Определение емкости Л У

ReadCd-Rom
Capacity

25h

5m

Определение емкости
CD-ROM (возможно быстрое
определение с погрешностью)

Read Defect
Data

37h

Oo7o

Чтение списков дефектных
блоков (Plist - исходный
список от изготовителя,
Glist - список, заполняемый
при эксплуатации)

Read Defect
Data (12)

B7h

7o

То же с 12-байтным блоком
дескриптора

Read Bement
Status

B8h

80

Чтение состояния элементов

Read
Generation

29h

7o

Чтение максимально возмож-
ного поколения для указан-
ного логического блока

Read Header

44h

5o

Чтение заголовка логического
блока CD-ROM

Read Long

3Eh

Oo 4o 5o 7o

"Длинное" чтение - данные
блока и поля ЕСС

Read Position

34h

lo

Запрос позиции данных,
находящихся в буфере (адрес
начала и конца, количество
блоков и байт)

Read Reverse

OFh

lo

Чтение блоков с текущей по-
зиции в обратном направ-
лении

Read
Sub-Channel

42h

5o

Чтение данных субканала
CD-ROM

Read Toe

43h

5o

Чтение таблицы содержимого
CD-ROM

Read Updated
Block

2Dh

7o

Чтение определенного поко-
ления обновленного логичес-
кого блока

Reassign Blocks

07h

Oo4o7o

Переназначение дефектных
блоков



Команда

Код

Применимость

Назначение

Receive

08h

3o

Прием пакета

Receive
Diagnostic
Results

ICh

*o

Получение результатов диа-
гностики

Recover
Buffered Data

14h

lo2o

Восстановление данных, по-
сланных в буфер, но не запи-
санных (не напечатанных)
из-за ошибки

Release

17h

Om 2m 4m 5m
6m 7m 80

Освобождение зарезервиро-
ванного ЛУ, экстента или
элемента

Request Sense

03h

Jj

Опрос уточненного состояния

Request Volume
Element
Address

B5h

80

Передача результатов коман-
ды SEND VOLUME TAG

Reserve

16h

Om 1m 2m 4m
5m 6m 7m 80

Предотвращение использо-
вания Л У (его экстента или
элемента) другим ИУ

f i\y^flli^J

Olh

1m

Перемотка носителя к началу
раздела

Rezero Unit

Olh

Oo 4o 5o 7o 80

Приведение ЛУ в определен-
ное состояние

Scan

IBh

6o

Сканирование данных в
определенном окне

Search Data
Equal

31h

Oo 4o 5o 7o

Поиск данных, (не) совпа-
дающих с эталоном2

Search Data
Equal (12)

Blh

4o 5o 7o

То же с 12-байтным блоком
дескриптора2

Search Data
High

30h

Oo 4o 5o 7o

Поиск данных, (не) больших
эталона2

Search Data
High (12)

BOh

4o 5o 7o

То же с 12-байтным блоком
дескриптора2

Search Data
Low

32h

Oo5o7o

Поиск данных, (не) меньших
эталона2

Search Data
Low (12)

B2h

4o 5o 7o

То же с 12-байтным блоком
дескриптора2

Seek(6)

OBh

Oo 4o 5o 7o

Позиционирование (с 6-байт-
ным блоком дескриптора)3



Команда

Код

Применимость

Назначение

Seek(10)

2Bh

Oo 4o 5o 7o

Позиционирование - поиск
логического адреса (с 10-байт-
ным блоком дескриптора)3

Send

OAh

3m

Посылка пакета

Send (10)

2Ah

60

Посылка данных в устройство

Send Diagnostic

IDh

*m

Запуск теста ЦУ. Ответом
будет состояние Good, если
тест прошел успешно, или
Check Condition в случае
ошибки

Send Message

OAh

9m

Посылка пакета в коммуни-
кационное устройство

Send Message
(10)

2Ah

9o

То же с 10-байтным блоком
дескриптора

Send Message
(12)

AAh

9o

То же с 12-байтным блоком
дескриптора

Send Volume
Tag

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
Buffer

lOh

2o

Синхронизация буфера -
печать всего содержимого,
при невозможности - сооб-
щение об ошибке

Synchronize
Cache

35h

Oo 4o 5o 7o

Синхронизация кэша -
запись несохраненных дан-
ных заданного диапазона ад-
ресов на носитель

Test Unit Ready

OOh

*m

Опрос готовности ЛУ

Update Block

3Dh

7o

Обновление логического
блока

Verify

2Fh

Oo5o7o

Верификация - проверка
возможности безошибочного
считывания блоков данных с
носителя

Verify

13h

lo

Тоже

Verify (10)

2Fh

4o5o7o

То же или проверка чистоты
блоков (с 10-байтным блоком
дескриптора)

Verify (12)

AFh

4o 5o 7o

То же с 12-байтным блоком
дескриптора

Write (6)

OAh

Oo 1m 4o 7o

Запись блоков данных,
переданных ИУ (с 6-байт-
ным блоком дескриптора)

Write (10)

2Ah

Oo4m 7m

Запись блоков данных,
переданных ИУ (с 10-байт-
ным блоком дескриптора)

Write (12)

AAh

4o7o

То же с 10-байтным блоком
дескриптора

Write And Verify

2Eh

Oo4o7o

Запись блоков данных,
переданных ИУ, с верифика-
цией записи

Write And Verify
(12)

AEh

7o4o

То же с 12-байтным блоком
дескриптора

Write Buffer

3Bh

*o

Запись в буфер (но не
на носитель) или загрузка
микрокода



Команда

Код

Применимость

Назначение

Write Filemarks

lOh

1m

Запись маркера файлов

Write Long

3Fh

Oo4o7o

"Длинная" запись - блока
данных и поля ЕСС

Write Same

41h

Oo

Запись блока данных, пере-
данных ИУ, в группу смеж-
ных блоков или до конца
носителя5


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. "Умное" ПО спо-
собно эффективно загружать работой устройства, а иногда и
"срезать углы" - выполнять копирование данных между
устройствами без выхода на системную шину компьютера.