Высокоскоростные интерфейсы: SCSI

SCSI (Small Computer Systems Interface — Системный интерфейс для малых компьютеров, по-русски произносится как «скази») — интерфейс, разработанный для объединения в единую систему устройств различного профиля: накопителей на жестких магнитных носителях, сканеров, стримеров, CD-ROM и т.п. Суть интерфейса состоит в том, чтобы обеспечить гибкий механизм управления этими устройствами и максимальную скорость их работы как единого, но делимого механизма.

Корни интерфейса SCSI уходят в далекий 1979 год, когда производитель накопителей информации М. Шугарт озадачился найти универсальный стандарт интерфейса для своих дисков, учитывая возможные потребности в будущем. В лабораториях М. Шугарта в итоге был разработан интерфейс, поддерживавший логическую и физическую (головка/цилиндр/сектор) адресацию, базирующийся на протоколах 8-битной параллельной передачи данных по интерфейсу, состоящему из нескольких линий. Этот интерфейс был назван SASI (Shugart Associates Systems Interface — Связующий системный интерфейс Шугарта). Интерфейс, кроме описания протоколов, включал также несколько 6-битных команд; минусом было то, что интерфейс разрабатывался для использования только одной пары хост — устройство.

Позже, в 1981 году, М. Шугарт передал документацию по интерфейсу SASI в комитет ANSI (American National Standarts Institute — Национальный Институт Стандартизации США, аналог ГОСТ), который принял ее за базовую для работы над проектом, который получил название SCSI. Большинство наиболее важных моментов из стандарта SASI перекочевало в SCSI, к примеру, такие важные принципы, как арбитраж устройств, механизмы освобождения шины, возможность использования на шине больше чем одного хост-адаптера и т.п. В 1984 году рабочая документация стандарта SCSI была представлена на рассмотрение ANSI, и, после многочисленных корректировок и дополнений, в 1986 году был принят документ под номером X3.131-1986 — первый официальный стандарт SCSI, который сейчас принято называть SCSI-1. В дополнение к стандарту SASI, SCSI-1 «оброс» такими важными функциональными возможностями, как 10-битные команды, протокола синхронной и асинхронной передачи данных, возможность подключения к одному хост-адаптеру до 8 различных устройств. Последовавшие за SCSI-1, стандарты развивались как в направлении расширения командного языка и в увеличении и усложнении протоколов, так и в увеличении ширины шины, увеличении скорости и количества подключаемых к одному хост-адаптеру устройств. Для текущих стандартов SCSI ширина шины составляет 16 бит, количество подключаемых устройств также равно 16.

Индустрия ПК не пропустила возникновения нового стандарта, который тут же был взят на вооружение главным образом производителями НЖМД. На рис. 1, 2 изображены одни из первых образцов SCSI-дисков.

Первые образцы накопителей SCSI

Первые образцы накопителей SCSI
Рис. 1, 2. Первые образцы накопителей SCSI — фирмы SONY (емкость 40 мегабайт)
и Quantum (емкость 120 мегабайт)

Краткая история стандарта SCSI

Самый первый стандарт — SCSI-1; в этом стандарте можно было к одной шине подключить до восьми устройств, включая контроллер. Интерфейс содержит развитые средства управления и в то же время не ориентирован на какой-либо конкретный тип устройств. Имеет 8-pазpядную шину данных, максимальная скорость передачи — до 1,5 МБ/с в асинхронном режиме (по методу «запрос-подтверждение»), и до 5 МБ/с в синхронном режиме (метод «несколько запросов — несколько подтверждений»). Может использоваться контроль четности для обнаружения ошибок. Электрически реализован в виде 24 линий (однополярных или дифференциальных), хотя в подавляющем большинстве устройств применяются однополярные сигналы.

SCSI-2 — существенное развитие базового SCSI. Увеличена скорость передачи (до 3 МБ/с в асинхронном и до 10 МБ/с в синхронном режиме) — Fast SCSI. Добавлены новые команды и сообщения, поддержка контроля четности сделана обязательной. Введена возможность расширения шины данных до 16 разрядов (Wide SCSI), что обеспечило скорость до 20 МБ/с. Введен новый 68-контактный соединительный разъем. Последующая спецификация, SCSI-3, уже не только ввела новые скорости передачи, но и значительно расширила систему команд. Кроме того, в качестве среды передачи допускается использование, наряду с традиционным параллельным шинным интерфейсом, и других параллельных и последовательных протоколов: Fibre Channel, IEEE 1394 Firewire и Serial Storage Protocol (SSP).

Интерфейс Ultra SCSI, использует частоту шины 20 МГц. Интерфейс Ultra/Wide SCSI поддерживает 16 устройств и обеспечивает скорость передачи данных до 40 МБ/с. Более скоростной Ultra-2 Wide SCSI, обеспечивающим скорость передачи до 80 МБ/с. Следующие интерфейсы — Ultra-3 SCSI, Ultra 320 SCSI, Ultra 640 SCSI — не привнесли ничего принципиально нового в стандарт, кроме скорости. Они остаются также с шириной шины 16 бит, и также к интерфейсу можно подключить до 16 устройств. Сравнительная характеристика стандартов SCSI приведена в таблице 1.

Таблица 1. Сравнительная характеристика стандартов SCSI
Стандарт
Максимальная скорость шины, Мбайт/сек.
Разрядность шины
 
Максимальная длина кабеля, м
Максимальное число устройств
Единственное уст-во
LVD
HVD
SCSI-1
5
8
6
(3)
25
8
SCSI-2
10
8
3
(3)
25
8
Wide SCSI-2
20
16
3
(3)
25
16
SCSI-3
20
8
1.5
(3)
25
8
Wide SCSI-3
40
16
-
(3)
25
16
Ultra-2 SCSI
40
8
(4)
12
25
8
Wide Ultra-2 SCSI
80
16
(4)
12
25
16
Ultra-3 SCSI, или Ultra-160 SCSI
160
16
(4)
12
(5)
16
Ultra 320 SCSI
320
16
(4)
12
(5)
16
Ultra 640 SCSI
640
16
(4)
(7)
(5)
16

Что такое хост-адаптер?

Хост-адаптер — это устройство, подключаемое к шине ПК, обеспечивающее хосту (значение слова «хост» применительно к стандартам, описывающим интерфейсы передачи данных (англ. host), наиболее полно описывает словосочетание «хозяин шины») связь с устройствами SCSI. Наименование «адаптер» выбрано не случайно — этим указывается, что вся логика работы устройств расположена в периферийных устройствах на шине; для устройств называемых «контроллер» логика расположена в них самих.

Следующие производители выпускают или выпускали в прошлом хост-адаптеры для SCSI-устройств:

Adaptec: http://www.adaptec.com/
Arrow Enterprise Storage Solutions: http://www.arrownacp.com/
Atto Technology: http://www.attotech.com/
Document Imaging Solution Products: http://www.disusa.com/
Info X Fibre Channel Solutions: http://www.info-x.com/
Ingram Micro: http://www.ingrammicro.com/
Inito Corporation: http://www.initio.com/
LSI Logic: http://storageio.lsilogic.com/
MSI: http://www.msiinet.com/
Pacific Data: http://www.pacificdata.com/
SBE Inc.: http://www.sbei.net/
SCSI Stuff: http://www.scsistuff.com/
Techexport: http://www.techexport.com/
Tekram: http://www.tekram.com

Примером хост-адаптера может служить устройство, изображенное на рис. 3.

SCSI хост-адаптер фирмы Adaptec
Рис. 3. SCSI хост-адаптер фирмы Adaptec

Современные производители НЖМД SCSI

В настоящее время рынок НЖМД переживает бурную эволюцию — новые, высокоскоростные стандарты Serial ATA приходят на смену Parallel АТА. И, хотя новые устройства SATA уже вплотную приблизились по скорости работы к устройствам SCSI, а где-то и обгоняют их, SCSI-устройства остаются всё так же популярны в High-End компьютерах — серверах и информационных массивах. Связано это, прежде всего, с высокой надежностью SCSI-накопителей — как в силу относительной простоты стандартов SCSI и продуманным электрическим интерфейсом, так и в связи с традиционно более тщательной конструкторской и производственной проработкой устройств. На долю SCSI приходится приблизительно 30 процентов всего рынка НЖМД, и вряд ли он когда-нибудь перешагнет этот рубеж: оборудование ПК всеми необходимыми кабелями, переходниками, а также покупка самого хост-адаптора обойдется приблизительно в $100, накопители же будут стоить в несколько раз больше их IDE-собратьев. Современными производителями дисков SCSI являются:

Western Digital: http://www.wdc.com
Seagate: http://www.seagate.com
Hitachi: http://www.hgst.com
Fujitsu: http://www.fujitsu.com
Maxtor: http://www.maxtor.com

Конкуренция на рынке SCSI-дисков невелика — скорее всего, оттого, что рынок имеет достаточную наполненность и не развивается так бурно, как рынок IDE-устройств — и связано это, прежде всего, с тем, что SCSI-устройства используются чаще всего в серверах, спрос на которые не так велик. Удобство SCSI-устройств состоит в том, что они могут быть легко заменяемы по ходу работы, без отключения и потери работоспособности сервера. Это очень важно для серверов, и совершенно не обязательно для рабочих станций. Как правило, сервера (рис. 4) оборудованы специальными салазками (рис. 5), в которые диск в специальном креплении (рис. 6) вставляется очень легко.

Серевер, оборудованный дисками SCSI
Рис. 4. Серевер, оборудованный дисками SCSI

Отсек для дисков SCSI
Рис. 5. Отсек для дисков SCSI

Крепление для дисков SCSI, применяемое в серверах с поддержкой функции «горячая замена»
Рис. 6. Крепление для дисков SCSI, применяемое в серверах с поддержкой функции «горячая замена»

Стоить заметить, что очень часто производители серверов перемаркировывают накопители, давая им свои бренды. Как пример приведу накопители, изъятые из серверов Hewlett Packard и IBM e-Server (рис. 7, 8), на которых реального производителя НЖМД можно узнать только по названию модели; автор видел также диски, извлеченные из серверов Dell, на которых даже эта информация отсутствовала.

Современные SCSI-диски, используемые в серверах

Современные SCSI-диски, используемые в серверах
Рис. 7, 8. Современные SCSI-диски, используемые в серверах

Типы разъемов SCSI

Используемые в настоящее время типы разъемов SCSI
Рис. 9. Используемые в настоящее время типы разъемов SCSI

Устройства SCSI могут иметь различные типы разъемов для их подключения к хост-адаптеру (см. рис. 9) — прежде всего это связано с конструктивными особенностями самого устройства. Наиболее часто для HDD применяется разъем HD68 (рис. 10), немного менее часто — SCA80 (рис. 11). В далеком прошлом, в конце 80-х — начале 90-х годов, практически все накопители SCSI соединялись с хостом посредством разъема НЕ50 (рис. 12). В настоящее время этот разъем практически не встречается.

Разъем HD68

Разъем SCA80

Разъем НE50
Рис. 10. Разъем HD68.
Рис. 11. Разъем SCA80.
Рис. 12. Разъем НE50.

Для подключения различных по конфигурации разъема устройств к шине часто могут потребоваться специализированные переходники. Такие переходники, например, выпускает компания SCS (http://www.scaadapters.com), их стоимость колеблется от $10 до $35 за штуку. Полный набор для работы с любым SCSI-устройством изображен на рис. 13, на рис. 14 — 18 каждый переходник изображен отдельно

Необходимые для подключения SCSI-устройств переходники
Рис. 13. Необходимые для подключения SCSI-устройств переходники

Необходимые для подключения SCSI-устройств переходники

Необходимые для подключения SCSI-устройств переходники

Необходимые для подключения SCSI-устройств переходники

Необходимые для подключения SCSI-устройств переходники

Необходимые для подключения SCSI-устройств переходники
Рис. 14 — 18. То же, что рис. 13, по отдельности.

Как работает SCSI

Для согласования нагрузок на шине SCSI используют терминаторы, которые по электрическим свойствам делятся на пассивные, активные и FPT-терминаторы. Терминаторы должны запитываться, поэтому в интерфейсе имеются линии питания терминаторов (Terminator Power). Пассивные терминаторы использовались в устройствах SCSI-1, представляют собой обычные резисторы сопротивлением 132 Ом. Активные терминаторы представляют собой стабилизатор, вырабатывающий нужный сигнал — при этом каждая линия соединяется с этим стабилизатором через резистор сопротивлением 110 Ом. В настоящее время применяются только активные терминаторы, при этом используются источники вспомогательного напряжения — для этих целей обычно используют вспомогательные диоды, которые фиксируют напряжение входных сигналов на необходимом уровне. Наконец, терминаторы FPT (Forced Perfect Terminator — Ускоренный улучшенный терминатор) суть улучшение активных терминаторов, оборудование их ограничителями выбросов. Их применение — в высокочастотных версиях SCSI.

Все устройства SCSI принято делить на инициаторы и исполнители. При этом следует учитывать, что шина может быть стандартной (8 бит) или расширенной (16 бит) разрядности. Учитывая все это, все количество возможных комбинаций подключения устройств можно свести к четырем:

1. Стандартный инициатор — стандартный исполнитель
2. Расширенный инициатор — расширенный исполнитель
3. Стандартный инициатор — расширенный исполнитель
4. Расширенный инициатор — стандартный исполнитель

При подключении стандартных исполнителей к расширенным инициаторам проблем возникнуть не может — расширенный стандарт поддерживает все функции стандартного, однако при обратном подключении могут возникнуть сложности с подключением терминаторов. В реале эти проблемы легко решаются использованием переходников (см. выше).

Состояния шины SCSI принято делить на фазы. Таких фаз существует всего пять: шина свободна, арбитраж (при этом инициатор может получить управление шиной), выбор (при этом инициатор, вошедший в фазу арбитража первым, выбирает исполнителя для дальнейшей работы), перевыбор (исполнитель подтверждает инициатору, что он им выбран для работы и готов к работе) и информационная фаза (запрос-передача команд, данных, сообщений). Блок-схема последовательности фаз одного цикла работы по шине SCSI представлена на рис. 19.

После фазы выбора инициатор может произвести таймаут, для чего может использовать два способа — выполнить аппаратный сброс либо перейти в фазу «шина свободна». В любом случае, окончанием цикла работы по шине SCSI будет выставление статуса «команда выполнена» либо передача соответствующего сообщения с освобождением шины. Аналогично стандарту АТА, в системах SCSI может применяться сброс устройства по двум протоколам — по протоколу аппаратного сброса (hard reset) и по протоколу программного сброса (soft reset). В обоих случаях на линии Reset (сброс) будет выставлен бит единица, различия типов сбросов заключаются в их механизме и целях — как правило, аппаратный сброс осуществляется для сбрасывания операций по всей системе SCSI-устройств, программный же применяется для сбрасывания только одного устройства, не мешая работе остальных.

Блок-схема фазовой последовательности работы шины SCSI
Рис. 19. Блок-схема фазовой последовательности работы шины SCSI
На шине SCSI используется девять сигналов управления: BSY (Busy, Занят), SEL (Selection, Выбор), C/D (Command/Data, Управление/Данные), I/O (Input/Output, Ввод/Вывод), MSG (Message, Сообщение), REQ (Request, Запрос), ACK (Acknowledge, Подтверждение), RST (Reset, Сброс), ATN (Attention, Внимание). Источниками сигналов Занят, Выбор и Сброс могут быть и инициатор, и исполнитель; только исполнитель может быть источником сигнала Подтверждение; остальные сигналы являются прерогативой инициатора. Типы передачи информации кодируются комбинациями бит, выставляемыми для сигналов Сообщение, Управление/Данные, Ввод/Вывод, как показано в табл. 2.

Таблица 2. Типы передачи информации по шине SCSI
Сигнал
Фаза
Направление
Сообщение
Команда/Данные
Ввод/Вывод
0
0
0
Исходящие данные
Исполнитель —> Инициатор
0
0
1
Входящие данные
Исполнитель <— Инициатор
0
1
0
Команда
Исполнитель —> Инициатор
0
1
1
Состояние
Исполнитель <— Инициатор
1
0
0
Зарезервировано
 
1
0
1
Зарезервировано
 
1
1
0
Исходящее сообщение
Исполнитель —> Инициатор
1
1
1
Message In
Исполнитель <— Инициатор

Интерфейс управляется системой сообщений. Всего их существует 28, они могут быть однобайтовыми, двухбайтовыми (одно слово) и расширенными. Система сообщений подробно описана в любом стандарте SCSI.

Для выбора конкретного устройства на шине SCSI существует бит-идентификатор. Как правило, SCSI-устройства имеют аппаратное конфигурирование, то есть система идентифицирует устройство по установленным на нем перемычкам. Ограничение на количество подключаемых устройств в стандартном (8 бит) и расширенном (16 бит) исполнении SCSI накладывается именно существованием бита-идентификатора — в 8 или 16 разрядной шине невозможно выставить больше соответственно 8 или 16 битов идентификации, причем сюда же входит и бит-идентификатор хост-адаптера — то есть, другими словами, кроме хост-адаптера на шине могут существовать для стандартного SCSI — еще 7 устройств, для расширенного — 15.

Команды SCSI
Команда
Код команды
Сменить определение (CHANGE DEFINITION)
Сравнить (COMPARE)
Копировать (COPY)
Копировать и верифицировать (COPY AND VERIFY)
Форматировать (FORMAT UNIT)
Запрос (INQUIRY)
Запереть-Открыть кэш (LOCK-UNLOCK CACHE)
Выбор журнала (LOG SELECT)
Чувствительность журнала (LOG SENSE)
Выбор режима (MODE SELECT)
Чувствительность режима (MODE SENSE)
Предусиление (PRE-FETCH)
Запретить разрешение на смену носителя (PREVENT-ALLOW MEDIUM REMOVAL)
Чтение (READ)
Читать буфер (READ BUFFER)
Показать емкость (READ CAPACITY)
Читать дефективные данные (READ DEFECT DATA)
Долгое чтение (READ LONG)
Переназначить блок (REASSIGN BLOCK)
Принять результаты диагностики (RECEIVE DIAGNOSTIC RESULTS)
Освободить (RELEASE)
Чувствительность запроса (REQUEST SENSE)
Зарезервировать (RESERVE)
Переобнулить устройство (REZERO UNIT)
Найти одинаковые данные (SEARCH DATA EQUAL)
Найти старшие данные (SEARCH DATA HIGH)
Найти младшие данные (SEARCH DATA LOW)
Позиционироваться (SEEK)
Запрос диагностики (SEND DIAGNOSTIC)
Установить ограничение (SET LIMIT)
Запустить-остановить устройство (START STOP UNIT)
Синхронизировать кэш (SYNCHRONIZE CACHE)
Запрос готовности устройства (TEST UNIT READY)
Верификация (VERIFY)
Запись (WRITE)
Запись с проверкой (WRITE AND VERIFY)
Запись в буфер (WRITE BUFFER)
Долгая запись (WRITE LONG)
Записать то же самое (WRITE SAME)
40h
39h
18h
3Ah
04h
12h
36h
4Ch
4Dh
15h, 55h
1Ah, 5Ah
34h
1Eh
08h
28h, 3Ch
25h
37h
3Eh
07h
1Ch
17h
03h
16h
01h
31h
30h
32h
0Bh
2Bh, 1Dh
33h
1Bh
35h
00h
2Fh
0Ah
2Ah
2Eh
3Bh
3Fh
41h

В приведенной выше таблице перечислены основные команды SCSI-стандарта, применимые к НЖМД. Как и в стандарте АТА, для стандарта SCSI существуют как команды обязательные, то есть те, которые должны поддерживаться любым SCSI-устройством, так и команды опциональные, необязательные, поддержка которых устройством может и не обеспечиваться. Кроме них, существуют неописанные в стандарте, специфичные для каждого производителя и часто для каждой конкретной линейки устройств так называемые вендор-команды — команды, которые использует производитель для целей ремонта или диагностики устройства. Эти команды составляют, как правило, коммерческую тайну производителя и нигде не публикуются.

SE, LVD, HVD

Обычно на устройстве SCSI можно обнаружить маркировку, подобную изображенной на рис. 20. Эта маркировка обозначает тип передачи данных на электрическом уровне. Первая — SCSI SE (Single Ended), обозначает такой тип передачи данных, когда каждый сигнал на шине обеспечивается одним проводником. SCSI LVD (Low Voltage Differential) и SCSI HVD (High Voltage Differential) — низковольтный и высоковольтный дифференциальный тип — физически организованы одинаково: для каждого сигнала существует два проводника, по одному проходит сигнал положительной полярности, по другому — отрицательной. Различия HVD и LVD — в напряжении в проводниках, для LVD оно ниже, чем для HVD.

Обозначения на устройствах SCSI, несущие информацию об электрическом  типе передачи данных
Рис. 20. Обозначения на устройствах SCSI, несущие информацию об электрическом типе передачи данных

Логично, что устройства HVD и LVD несовместимы — если подключить LVD устройство на шину устройства HVD, первое неминуемо погибнет из-за превышения напряжения сигнала. То же самое можно сказать и об устройствах SE и LVD — кабели для них одинаковы, но в силу электрических характеристик не совместимы. Однако устройства LVD могут подключаться на проводники SE, так как распознают напряжения по шине и если получают двуполярный сигнал в одной паре проводников, то могут переключиться на его использование. Как правило, устройства, которые могут работать в обоих режимах, обозначаются специальным значком LVD/SE.

Совместимость всех типов устройств на одной шине обычно не требуется, однако если возникает такая необходимость, использование специализированных переходников решает эту проблему достаточно легко (см. выше).

Непрерывное повышение тактовой частоты шины привело к необходимости ограничить максимальную длину соединительного кабеля в интерфейсе Ultra SCSI до полутора метров. Это достаточно неудобно при использовании внешних высокоскоростных SCSI-устройств, однако более чем достаточно для обеспечения соединения устройств внутри корпуса ПК.

Synopsis. Перспективы и возможности

SCSI интерфейс весьма производителен и надежен, однако у него есть и немалое число недостатков. Прежде всего, это высокая стоимость самих устройств — как накопителей, так и контроллеров. Следующий недостаток — это сложность конфигурирования и управления, с которыми могут справиться только подготовленные люди. Наконец, последний недостаток интерфейса, который делает его еще менее привлекательным для пользователя — это невозможность переноски носителя на другой ПК, если он не оборудован специализированным SCSI-адаптером…

Использование SCSI-устройств нецелесообразно для рынка стандартных ПК по весьма простой причине: высокая цена. Однако производители и не ставят перед собой цель завоевать рядового потребителя: так уж сложилось исторически, что SCSI-накопители — это главным образом серверный стандарт, а IDE-стандарт рабочих станций.

Между тем, накопителям SCSI наступает на пятки новейший стандарт IDE-устройств: SATA. Скорость работы и производительность SATA устройств весьма высоки, и их использование в серверах становится все более популярным. Единственным минусом SATA является довольно хлипкий разъем, с чем связаны довольно частые отказы работы этих устройств. Думаю, что битву с SATA на поприще серверных накопителей интерфейс SCSI выиграет бесспорно.

Развитие стандарта SCSI обещает нам в будущем более скоростные устройства традиционной для SCSI надежности; прогнозировать скорый уход SCSI-устройств с рынка не приходится.

Serial Attached SCSI (SAS)

Последнее веяние в мире SCSI-устройств — это Serial Attached SCSI, интерфейс, использующий три протокола передачи данных (SSP — Serial SCSI Protocol, STP — Serial ATA Tunneled Protocol, SMP — Serial Management Protocol). Как видно из названий протоколов, первые два предназначены собственно для передачи данных, последний предназначен для управления интерфейсом. Накопители с этим интерфейсом сейчас производят компании Seagate, Samsung и Fujitsu.

Особенностью этого интерфейса является то, что сигнал передается не по двум (как в SATA), а по четырем проводникам (одна пара — для получения сигнала, другая — для его отправки). Заявленные скорости передачи данных составляют 1,5 и 3,0 Гбайт/сек.

Для построения систем SCSI-устройств в этом стандарте предусмотрена совершенно новая, высокопроизводительная архитектура. Плата расширения оборудована высокоскоростными разъемами, на которые крепятся платы расширения второго уровня — распределители, аналог стандартных кабелей, но выполненный на текстолите. Такого рода распределители значительно надежнее их кабельных собратьев, да и паразитные токи можно исключить, используя более действенные средства для экранирования. Дочерние устройства, а именно HDD, присоединяются уже к последней плате.

Автор: Станислав К. Корб
Опубликовано 21 ноября 2005г.
© 2005 HDDGURU.COM, iHDD.RU