Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Обучение от Mail.Ru Group.
Онлайн-университет
для программистов с
гарантией трудоустройства.
Набор открыт!
2003 г

Почти все о SCSI

Анатолий Коляденко
ООО "ЕПОС", Киев, Украина

Введение в SCSI

Small Computer Systems Interface (системный интерфейс для малых компьютеров) – интерфейс, разработанный для объединения на одной шине различных по своему назначению устройств, таких как жёсткие диски, накопители на магнитооптических дисках, стримеры, сканеры и т.д. Интерфейс предназначен для соединения устройств различных классов: памяти прямого и последовательного доступа, CD-ROM, оптических дисков однократной и многократной записи, устройств автоматической смены носителей информации, принтеров, сканеров, коммуникационных устройств и процессоров. Применяется в различных архитектурах компьютерных систем, а не только в PC. Стандарт определяет не только физический интерфейс, но и систему команд, управляющих устройствами SCSI. За время своего существования стандарт активно развивался.

Стандарты, описывающие SCSI
  1. Стандарт SCSI-1 был стандартизован ANSI ещё в 1986 г.
  2. Стандарт SCSI-2.
  3. Стандарт SCSI-3 описывается документами: SIP (SCSI Interlock Protocol), SPI (SCSI Parallel Interface).
  4. Стандарт SPI, 1995 г. Определяет Fast SCSI (Fast Wide SCSI).
  5. Стандарт SPI-2, 1999 г. Определяет Ultra2 SCSI (Wide Ultra2 SCSI).
  6. Стандарт SPI-3, 2000 г. Определяет Wide Ultra3 SCSI (Ultra 160).
  7. Стандарт SPI-4, 2001 г. Определяет Ultra320 SCSI.
  8. Стандарт EPI (Enhanced Parallel Interface). Описывает построение SCSI-систем.

Извечный спор «Что лучше, Windows или Unix?» можно перенести и на интерфейсы IDE и SCSI. Однако этот вопрос в такой постановке неразрешим. Каждый должен выбирать для себя сам. На долю SCSI-дисков приходится чуть менее 30% мирового рынка. В нашей стране процент использования SCSI-интерфейса по сравнению с IDE, по моему мнению, несколько ниже. Это объясняется тем, что установка на компьютер SCSI-адаптера обойдется минимум на 100 долларов США дороже, чем установка на тот же компьютер IDE.

Сравнивая эти два интерфейса, нетрудно прийти к выводу, что основные преимущества SCSI проявляются при работе в мультизадачных средах (многие тесты, проведённые под Windows NT, показывают несомненное преимущество SCSI; задачи, связанные с обработкой видео, тоже не могут обойтись без SCSI). И ещё один вывод: наблюдая за развитием IDE, нетрудно заметить, что он приобретает многие черты SCSI.

Существует множество вариантов классификации интерфейса SCSI. Остановимся на одном из вариантов.

Таблица 1

Классификации интерфейса SCSI
СтандартВидСкорость на шине, Мбайт/секШирина шины, битыМаксимальная длина кабеля, метровМаксимальное кол-во устройствВнешние разъемы, кол-во контактовВнешние разъемы, кол-во контактов
SELVDHVD
Narrow/WideN/WN/WN/WN/WN/WN/WN/WN/W
SCSI-15/–8/–6/–12/–25/–8/–DB-25/– CX-50/–LD50/-
SCSI-2Fast10/208 /163/612/1225/2516/16HD-50/HD-68LD50/HD68
Ultra20/408/163(1,5)/3(1,5)–/1225/254(8)/4(8)HD-50/HD-68LD50/HD68
Ultra 240/808/1612/1225/258/16HD-50/HD-68LD50/HD68
SCSI-3Ultra 160–/160–/16–/12 HD-68, VHDCI-68HD68,HD80
Ultra 320–/320–/16–/12 HD-68, VHDCI-68HD68,HD80
 

SE – Single-Ended, сигнал ТТЛ-уровня;

LVD – Low Voltage Differential, низковольтный дифференциальный;

HVD – High Voltage Differential, дифференциальный;

HD – High Density, высокая плотность контактов разъёма;

LD – Low Density, низкая плотность контактов разъёма.

SE – Single-Ended, асимметричный SCSI

Термин обозначает обычный SCSI-интерфейс, в котором для каждого сигнала на шине есть свой проводник. Этот термин часто используется для указания принадлежности к «классическому» SCSI. Сигнал передается потенциалом с ТТЛ-уровнями относительно общего провода, который должен быть отдельным для каждого сигнала для снижения уровня помех.

В LVD SCSI и последующих вариантах SCSI каждый сигнал идёт уже по 2 проводам (по одному – положительной полярности, а по другому отрицательной).

LVD – Low Voltage Differential (низковольтный дифференциальный)

Двуполярный дифференциальный сигнал, используемый для высокоскоростной передачи данных в современных вариантах SCSI-интерфейса. При использовании LVD уровень напряжения сигнала находится в пределах ±1,8 В. На LVD-интерфейсе сигналы положительной и отрицательной полярности идут по разным физическим проводам. Для поддержки SCSI LVD требуется специальный кабель, состоящий из групп витых пар.

HVD – High Voltage Differential

Дифференциальный – термин, указывающий, что сигнал на SCSI двуполярный, т.е. значение определяется не только уровнем, но также и полярностью используемого напряжения. Это позволяет снизить воздействие шумов на SCSI-шину. Первый вариант SCSI-интерфейса с использованием двуполярных сигналов LVD SCSI – Ultra2 SCSI.

Дифференциальная версия HVD для каждой цепи задействует пару проводников, по которым передаётся парафазный сигнал. Здесь используются специальные дифференциальные приёмопередатчики, применяемые в интерфейсе RS-485. Дифференциальный интерфейс применяется в дисковых системах серверов, но в обычных PC не распространен. Интерфейс HVD появился в SCSI-2, а в SCSI-3 упразднён, поскольку скорость 40 Мбайт/с он уже не выдерживает.

В LVD-интерфейсе уровни напряжения на шине ниже, чем в случае HVD-интерфейса.

Интерфейс LVD электрически несовместим с SE и HVD, и в первую очередь это касается HVD: попытка подключить к одной шине LVD- и HVD-устройства может привести к выходу из строя LVD-устройств, так что здесь нужно быть осторожным!

Взаимоотношения интерфейсов LVD и SE, если так можно выразиться, не такие «жёсткие».

Многие фирмы решают эту проблему следующим образом:

Рис. 1. Взаимоотношения интерфейсов LVD и SE
1 – SCSI-устройство, 2 – терминатор LVD, 3 – внешний разъем, 4 – преобразователь LVD – SE, 5 – терминатор SE ( младший байт), 6 – внешний разъем

В стандарте SCSI-2 даже предусмотрена возможность изготовления устройств со смешанным интерфейсом – LVD/SE. Что это такое и как оно работает? Очень просто. Устройства – в том числе и терминаторы – этого типа могут работать либо в режиме LVD, либо в режиме SE, а переключение между режимами происходит автоматически – для этого используется сигнал на проводнике DIFFSENS.

На одной шине можно смешивать SE- и LVD-устройства, и они будут синхронизировать интерфейсы автоматически – если обнаружится хотя бы одно SE-устройство, все LVD-устройства на этой шине переключатся в SE-режим. Эта способность называется Multimode LVD. Если необходимо соединить HVD-устройства с SE- или LVD-устройствами, нужно использовать специальные конвертеры.

Устройства LVD совместимы с устройствами SE благодаря возможности их автоматического переконфигурирования (Multimode LVD). Устройства LVD распознают напряжение на линии DIFFSENS и по низкому уровню напряжения на ней способны переключаться из режима LVD в SE. Контакт разъёма, на который выводится эта цепь, в устройствах SE заземлен, что и обеспечивает автоматическое «понижение» режима всех устройств шины до SE, если имеется хотя бы одно устройство SE.

Во время сеанса связи между инициатором обмена и получателем данных устройства «договариваются» о максимально поддерживаемой ими скорости обмена. Поэтому если обмениваются данными два Ultra2-устройства, то они посылают друг другу данные на Ultra2-скоростях, в то время как другие устройства на той же самой шине связываются в скоростях Ultra или Fast. Некоторое внимание нужно уделить электрическим интерфейсам, используемым в SCSI-устройствах. Существует три типа таких интерфейсов: Single-Ended (SE), High Voltage Differential (HVD, иногда только называемый «дифференциальным») и Low Voltage Differential (LVD). Ultra2-устройства используют только LVD-интерфейсы, и многие ошибаются, считая, что LVD и Ultra2 – это одно и тоже; однако LVD-интерфейсы имеются и на некоторых Fast SCSI-устройствах. На одной шине можно смешивать SE- и LVD-устройства, и они будут синхронизировать интерфейсы автоматически: если обнаружится хотя бы одно SE-устройство, все LVD-устройства на этой шине переключатся в SE-режим. Эта способность называется «Multimode». Если необходимо соединить HVD-устройства с SE- или LVD-устройствами, нужно использовать специальные конвертеры, например компаний Ancot или Paralan.

На рис. 2 представлена диаграмма по напряжению для сигнала SE и LVD:

SE сигнал – 0 В < Use0 < 0,4 В; 2,4 В < Use1 < 5,0 В.

LVD сигнал – 1,05 В < Ulvd < 1,45 В, где Ulvdср. = +1,25 В.

Рис. 2. Диаграмма по напряжению для сигнала SE и LVD

На рис. 3 представлено преобразование сигнала LVD.

Рис. 3. Преобразование сигнала LVD

Рассмотрим несколько вариантов преобразования сигнала |–Slvd|–(+Slvd).

 
–Slvd , В1,451,251,051,15
+Slvd, В1,051,251,451,35
|–Slvd|–(+Slvd), В0,40–0,4–0,2
Логический уровень1Неопр.0Неопр.
 

Кабели и разъёмы для SE и LVD идентичны, но электрической совместимости устройств нет. Поэтому принято обозначать их для различных версий SCSI по-разному (рис. 4).

 
«Классический» Single-Ended SCSILVD SCSI. Оборудование с такой маркировкой может работать только с LVD SCSI-контроллерамиОбозначает устройство, поддерживающее как обычный, Single-Ended SCSI, так и LVD SCSI

Рис. 4. Обозначение разъёмов SCSI различных версий

Терминаторы (Terminators)

Для согласования нагрузок на шине SCSI используют терминаторы, которые по электрическим свойствам делят на: пассивные, активные и FPT-терминаторы. Терминаторы требуют питания, для чего в интерфейсе имеются специальные линии TERMINATOR POWER.

Пассивные терминаторы – с импедансом 132 Ом, используются для SCSI-1. Представляют собой обычные резисторы.

Активные терминаторы – с импедансом 110 Ом. Представляют собой источник опорного напряжения (стабилизатор), вырабатывающий нужный потенциал, и каждая линия соединяется резистором 110 Ом с выходом этого источника.

В настоящее время, начиная с Ultra SCSI, применяются только активные терминаторы. При активном согласовании используются источники вспомогательного напряжения. Разумно было бы использовать согласования с принудительным ограничением сигнала. Для реализации данного метода в активном терминаторе устанавливаются фиксирующие диоды, которые ограничивают максимальное и минимальное напряжение входных сигналов на определённом уровне.

FPT (Forced Perfect Terminator) – улучшенный вариант активных терминаторов с ограничителями выбросов. Применяется в высокочастотных версиях SCSI.

Активный терминатор, применяемый для устройств LVD, тоже должен отслеживать линию DIFFSENS и при напряжении ниже 0,7 В переходить в режим SE, а при напряжении 0,85...1,85 В переходить в режим LVD (см. рис. 3). При напряжении на линии DIFFSENS выше 2,4 В терминатор должен «отпускать» шину, поскольку это соответствует режиму HVD.

По исполнению терминаторы могут быть внутренними и внешними.

В большинстве случаев как контроллер, так и все приборы SCSI имеют встроенные активные терминаторы, которые можно как включить, так и отключить. Терминаторы должны быть включены на контроллере и последнем подключённом внешнем приборе (цена активного внешнего терминатора для Ultra Wide SCSI составляет 10...15 долларов США).

В настоящее время выпускаются универсальные SE/LVD-терминаторы, которые автоматически определяют тип интерфейса и выполняют согласование для данного типа интерфейса:

  • DS21T07S фирмы Dallas, 9-канальный;
  • VCC5672 фирмы Texas Instruments, 9-канальный;
  • семейство микросхем фирмы ON Semiconductor, в т.ч. MCCS142235;
  • семейство микросхем фирмы Rohm, в т.ч. BH9595FP-Y, BH9596FP-Y;
  • семейство микросхем фирмы LinFinity Microelectronics Inc., в т.ч. LX5202.

Для питания терминаторов в шине предусмотрены специальные линии TERMPWR.

Активные терминаторы на каждом устройстве могут быть включены или выключены, это реализуется перестановкой одного джампера или программно, при конфигурировании устройства.

Внутренние терминаторы (или панелька для их установки) имеются во всех устройствах с не LVD-интерфейсом. В устройствах с LVD-интерфейсом внутренние терминаторы, как правило, отсутствуют.

Если используется внутреннее подключение, а внешние устройства подключаются не всё время, то необходимо переключать терминатор контроллера в соответствии с текущей конфигурацией.

Варианты подключения устройств к шине SCSI

Рассмотрим несколько вариантов подключения на одну шину устройств LVD, LVD/SE, SE, т.к. HVD-устройства могут работать только с себе подобными, да и к тому же данный тип передачи применяется в основном в серверах. В стандарте SCSI-3 этот тип передачи уже упразднён.

Возможно несколько ситуаций в зависимости от подключения к шине устройств и терминаторов разного типа – SE, LVD и LVD/SE.

 
Вариант подключения к шинеРезультат
Устройства SE и LVD с двумя SE- или LVD/SE-терминаторамиSE-устройства будут работать, а LVD – автоматически отключатся
Устройства SE и LVD с двумя LVD-терминаторамиНичего работать не будет
SE- и LVD/SE-устройства с двумя SE- или LVD/SE-терминаторамиВсе устройства будут работать в режиме SE
SE- и LVD/SE-устройства с двумя LVD-терминаторамиНичего работать не будет
SE-, LVD- и LVD/SE-устройства с двумя SE- или LVD/SE-терминаторамиLVD-устройства не работают, а SE и LVD/SE работают в режиме SE
SE-, LVD- и LVD/SE-устройства с двумя LVD-терминаторамиНичего работать не будет
LVD- и LVD/SE-устройства с двумя SE-терминаторамиLVD-устройства не работают, а LVD/SE – работают в режиме SE
LVD- и LVD/SE-устройства с двумя LVD- или LVD/SE-терминаторамиВсе устройства работают в режиме LVD

Экспериментируя с подключением SE-, LVD- и LVD/SE-устройств к одной шине, нужно также помнить, что LVD- и SE-интерфейсы имеют разные ограничения на длину шины в зависимости от скорости передачи данных (Fast-5...40) и количества подключаемых устройств.

Но может возникнуть конфликтная ситуация, когда к хост-адаптеру (с режимом LVD/SE) будет подключено два устройства: первое – LVD, а второе – SE. В этом случае все устройства должны перейти в режим SE. Для второго устройства это очевидно, а для первого – нереально, т.к. оно может работать только в режиме LVD. Возникает патовая ситуация. Решить ее можно двумя способами:

1-й способ. Необходима установка Multimode LVD SCSI Expander, который бы преобразовывал LVD в SE и обратно. Среди существующих следует отметить:

  • готовые платы RTLVD-SE и RTLVD-3SE фирмы Rancho;
  • микросхемы семейства ...53C141 (SYM53C141, LSI53C141) фирмы LSI Logic – конвертор LVD<=>SE, повторитель SE<=>SE.

Данный метод может быть реализован только аппаратно в процессе разработки SCSI-устройств.

2-й способ. С использованием внешнего преобразователя LVD/SE.

Шина SCSI

В SCSI-системах принято делить все устройства на Инициаторы (ИУ, Initiator) и Исполнители (ЦУ, Target).

Существуют следующие варианты шины SCSI:

  • Wide Wirth (широкая шина) – соответственно 16-битная шина данных (D0-D15, 27 каналов [54 линии] для LVD и 36 линий для SE),
  • Narrow Wirth (узкая шина) – соответственно 8-битная шина данных (D0-D7, 18 каналов [36 линий] для LVD и 18 линий для SE).

Narrow шина не поддерживается последними версиями SCSI, начиная с Ultra 160.

При этом возникают два варианта проблем при подключении ЦУ (Target) на шину.

Для варианта 1:

1.1. Wide Target – Wide Width,
1.2. Narrow Target – Wide Width.

Для варианта 2:

2.1. Narrow Target – Narrow Width,
2.2. Wide Target – Narrow Width.

Рассмотрим подробнее все эти случаи подробнее.

1.1. Могут возникнуть сложности с подключением терминаторов, т.к. в LVD-устройствах внутренние терминаторы встречаются редко.

Самая простая задача (не должно быть никаких проблем).

1.2. Переходник (адаптер с 68- на 50-контактный разъём) должен терминировать High Byte, если Narrow Target крайнее на шине.

На Wide Target следует установить джампер Disable Wide, терминация High Byte.

Wide Width состоит из старшего байта (High Byte) и младшего байта (Low Byte).

Narrow Width (контроллер всегда SE) представляет Low Byte's Wide Width. Narrow Width можно рассматривать как подмножество Wide Width, у которого используется только Low Byte's Data Bus. В простых одноканальных контроллерах контакты Narrow Width запараллелены с частью контактов Wide Width. При этом можно использовать смесь широких и узких устройств, для чего терминаторы на контроллере разделены на две половины: терминаторы младшего байта (TrmL) и старшего байта (TrmH) – и должны управляться независимо.

Т.е. должны быть соответствующие переключатели: либо на Target, либо на переходниках (TrmH в положении ON, а TrmL в положении OFF, старшие разряды всегда должны быть затерминированы). Если LVD/SE Target имеет переключатель режимов, то для согласования режимов необходимо переключить в режим SE Mode.

В обоих этих вариантах придется столкнуться с разнообразием разъёмов, применяемых для интерфейсов SCSI, из-за этого может возникнуть потребность в применении переходных адаптеров от одного типа разъёма к другому. Подробно о типах разъёмов, применяемых в SCSI-устройствах, см. «Типы применяемых в SCSI разъемов».

Подключение периферии

Рис. 5. Структурная схема подключения периферии

Рис. 6. Структурная схема кабеля для двух периферийных устройств

1, 2, 3 – разъём (розетка);

4 – кабель SCSI LVD, состоящий из витых пар;

5, 6 – разъём (вилка) целевого устройства (ЦУ, target);

7 – разъём (вилка) инициатора (ИУ, initiator).

Типы применяемых в SCSI разъёмов

На рис. 7 представлены типы применяемых в SCSI разъёмов.

Рис. 7. Типы применяемых в SCSI разъёмов

Иногда ещё используют внешний разъём VHDCI-68.

Возможен вариант, когда для подключения Wide Width используют два разъёма HD50.

Внешние разъёмы

В большинстве случаев используется пять (5) видов внешних разъёмов: HD-68, HD-50, CX-50, DB-25, VHDCI-68. Иногда необходимо применение переходников, если подключаемые к внешней шине устройства SCSI имеют различные внешние разъёмы.

Такие переходники существуют. Цена одного колеблется от 10 до 35 долларов США.

Самый распространенный внешний разъём, применяемый в устройствах SCSI, – HE68Female (см. рис. 8 и табл. 2)

Рис. 8. Внешний вид разъёма HD-68

Контакты разъёма HD68 приведены в табл. 2.

В стандарте SPI (SCSI Parallel Interface, 1995 г.) определен Р-кабель и коннекторы для организации широкой (16 бит) шины на одном кабеле. Этот кабель с 68-контактными разъёмами HD-68M (рис. 8) называют кабелем SCSI-3.

Разъёмы Р-кабеля SCSI для цепи SE приведены в табл. 2.

Внутренние разъёмы

Самый распространенный внутренний разъём, применяемый в устройствах SCSI, – HE68Male (табл. 2) и HE50Male (табл. 4).

Таблица 2

Внешний и внутренний разъем HD68. Применяется в интерфейсах SCSI-2,3. Определен стандартом SPI (1995г.)
Single-Ended SCSIDifferential SCSIHD-68 Single-Ended SCSIDifferential SCSIHD-68
Signal nameSignal namePin#Signal nameSignal namePin#
  
Ground+ Data Bit 121Data Bit 12– Data Bit 1235
Ground+ Data Bit 132Data Bit 13– Data Bit 1336
Ground+ Data Bit 143Data Bit 14– Data Bit 1437
Ground+ Data Bit 154Data Bit 15– Data Bit 1538
Ground+ Parity Bit 15Parity Bit 1– Parity Bit 139
Ground+ Data Bit 06Data Bit 0– Data Bit 040
Ground+ Data Bit 17Data Bit 1– Data Bit 141
Ground+ Data Bit 28Data Bit 2– Data Bit 242
Ground+ Data Bit 39Data Bit 3– Data Bit 343
Ground+ Data Bit 410Data Bit 4– Data Bit 444
Ground+ Data Bit 511Data Bit 5– Data Bit 545
Ground+ Data Bit 612Data Bit 6– Data Bit 646
Ground+ Data Bit 713Data Bit 7– Data Bit 747
Ground+ Parity Bit 014Parity Bit 0– Parity Bit 048
GroundGround15GroundGround49
GroundDiffsens16GroundGround50
Term-n PowerTerm-n Power17Term-n PowerTerm-n Power51
Term-n PowerTerm-n Power18Term-n PowerTerm-n Power52
ReservedReserved19ReservedReserved53
GroundGround20GroundGround54
Ground+ Attention21Attention– Attention55
GroundGround22GroundGround56
Ground+ Busy23Busy– Busy57
Ground+Acknowledge24Acknowledge– Acknowledge58
Ground+ Reset25Reset– Reset59
Ground+Message26Message– Message60
Ground+ Select27Select– Select61
Ground+Com./Data28Com./Data–Com./Data62
Ground+ Request29Request– Request63
Ground+Input/Outpt30Input/Output– Input/Output64
Ground+ Data Bit 831Data Bit 8– Data Bit 865
Ground+ Data Bit 932Data Bit 9– Data Bit 966
Ground+ Data Bit 1033Data Bit 10– Data Bit 1067
Ground+ Data Bit 1134Data Bit 11– Data Bit 1168
 

Таблица 3

Внешние разъемы LD50 и HD50 SCSI
Single-Ended SCSIDifferential SCSIHD-50 Single-Ended SCSIDifferential SCSIHD-50
Signal nameSignal namePin#Signal nameSignal namePin#
  
Ground+ Data Bit 01Data Bit 0– Data Bit 026
Ground+ Data Bit 12Data Bit 1– Data Bit 127
Ground+ Data Bit 23Data Bit 2– Data Bit 228
Ground+ Data Bit 34Data Bit 3– Data Bit 329
Ground+ Data Bit 45Data Bit 4– Data Bit 430
Ground+ Data Bit 56Data Bit 5– Data Bit 531
Ground+ Data Bit 67Data Bit 6– Data Bit 632
Ground+ Data Bit 78Data Bit 7– Data Bit 733
Ground+ Parity Bit 09Parity Bit 0– Parity Bit 034
GroundGround10GroundGround35
GroundGround11GroundGround36
ReservedReserved12ReservedReserved37
GroundGround13Term-n PowerTerm-n Power38
ReservedReserved14ReservedReserved39
GroundGround15GroundGround40
Ground+ Attention16Attention– Attention41
GroundGround17GroundGround42
Ground+ Busy18Busy– Busy43
Ground+ Acknowledge19Acknowledge– Acknowledge44
Ground+ Reset20Reset– Reset45
Ground+ Message21Message– Message46
Ground+ Select22Select– Select47
Ground+ C/D23C/D– C/D48
Ground+ Request24Request– Request49
Ground+ I/O25I/O– I/O50
 

Таблица 4

Разъем HE50 SCSI
Single-Ended SCSIDifferential SCSIHE-50 Single-Ended SCSIDifferential SCSIHE-50
Signal nameSignal namePin#Signal nameSignal namePin#
  
Ground+ Data Bit 01Term-n PowerTerm-n Power26
Ground– Data Bit 02ReservedReserved27
Ground+ Data Bit 13ReservedReserved28
Ground– Data Bit 14GroundGround29
Ground+ Data Bit 25GroundGround30
Ground– Data Bit 26Ground+ Attention31
Ground+ Data Bit 37Attention– Attention32
Ground– Data Bit 38GroundGround33
Ground+ Data Bit 49GroundGround34
Ground– Data Bit 410Ground+ Busy35
Ground+ Data Bit 511Busy– Busy36
Reserved– Data Bit 512Ground+ Acnowledge37
Ground+ Data Bit 613Acknowledge– Acknowledge38
Reserved– Data Bit 614Ground+ Reset39
Ground+ Data Bit 715Reset– Reset40
Ground– Data Bit 716Ground+ Message41
Ground+ Parity Bit 017Message– Message42
Ground– Parity Bit 018Ground+ Select43
GroundGround19– Select– Select44
GroundGround20Ground+ C/D45
GroundGround21C/D– C/D46
GroundGround22Ground+ Request47
GroundReserved23Request– Request48
GroundReserved24Ground+ I/O49
GroundGround25I/O– I/O50

Фазы шины

В каждый конкретный момент времени шина SCSI может находиться только в одной из перечисленных фаз:

1. Bus Free – шина находится в состоянии покоя.

2. Arbitration – устройство (ИУ) может получить право на управление шиной.

3. 

3.1. Selection – инициатор, выигравший арбитраж, выбирает ЦУ (только одно), с которым он будет работать.

3.2. Reselection – аналогична предыдущей, но её вводит целевое устройство. Т.е. ИУ и ЦУ меняются ролями – ЦУ вызывает ИУ.

4. Command In (Out), Data In (Out), Status, Message In (Out) – информационные фазы (по шине данных передается информация).

Последовательность фаз представлена на рис. 9.

Рис. 9. Последовательность фаз шины SCSI

После фазы Selection ИУ может проводить процедуру тайм-аута выбора (Selection Time-Out), которая может быть реализована двумя методами:

1. Hard Reset.

2. Переход в фазу Bus Free.

Для реализации фазы Reselection во всех вышеприведенных фазах Initiator и Target меняются местами в вопросах выполнения действий.

В любом случае завершающей фазой является фаза Message In, в которой передается сообщение Disconnect или Command Complete, после чего шина переходит в состояние Bus Free.

В любой системе SCSI предусмотрена возможность сброса системы (Reset), для чего имеется линия Reset, на которую может быть выставлен сигнал сброса в любое время и любым устройством. Обработка сигнала Reset может быть реализована двумя методами:

1. Жёсткий сброс (Hard Reset) – аналогичен отключению питания для всех устройств системы SCSI.

2. Мягкий сброс (Soft Reset) – позволяет одному инициатору выполнить сброс шины SCSI, не нарушая работы других инициаторов в системе, где таких инициаторов несколько.

Сигналы управления шины SCSI

В шине SCSI используются девять сигналов управления, активным уровнем которых является низкий уровень сигнала: BSY (Занят), SEL (Выбор), C/D (Управление/Данные), I/O (Ввод/Вывод), MSG (Сообщение), REQ (Запрос), ACK (Подтверждение), RST (Сброс), ATN (Внимание).

Источники вышеприведённых сигналов приведены в табл. 5.

Таблица 5

Источники сигналов управления шины SCSI
СигналBSYSELC/DI/OMSGREQACKRSTATN
ИсточникИУ, ЦУИУ, ЦУЦУЦУЦУЦУИУИУ, ЦУИУ
 

Между фазами передачи информации сигналы Busy, Select, REQ, ACK должны оставаться в неизменном состоянии, меняться могут только значения сигналов Msg, C/D, I/O.

Информационные фазы передачи информации Data Out (In), Command, Status, Message Out (In)

Target управляет сигналами Msg, C/D, I/O, в зависимости от комбинации которых идентифицируются фазы шины Data Out (In), Command, Status, Message Out (In).

Таблица 6

Информационные фазы SCSI
СигналФазаНаправление
MSGC/DI/O
000Data OutИУ -> ЦУ
001Data InИУ <- ЦУ
010CommandИУ -> ЦУ
011StatusИУ <- ЦУ
100Зарезервировано 
101Зарезервировано 
110Message OutИУ -> ЦУ
111Message InИУ <- ЦУ

Асинхронная передача данных

Является обязательной для всех устройств SCSI и всех фаз передачи информации. Target управляет направлением передачи информации с помощью сигнала I/O:

I/O = «0» – передача Initiator => Target,

I/O = «1» – передача Initiator <= Target.

Передача каждого байта сопровождается взаимосвязанной парой сигналов REQ/ACK. Initiator фиксирует принимаемые данные по отрицательному перепаду сигнала REQ, Target считает принимаемые данные действительными по отрицательному перепаду сигнала ACK.

Рис. 10. Временные диаграммы асинхронной передачи данных
Т – источник данных Target, I – источник данных Initiator

Синхронная передача данных

Является опцией и может использоваться в фазах Data Out и Data In и только по результатам предварительной договорённости, которая реализуется посредством сообщений «Synchronous Data Transfer Request».

Рис. 11. Временные диаграммы синхронной передачи данных
Т – источник данных Target, I – источник данных Initiator

Управление интерфейсом

Для управления интерфейсом служит система сообщений. Всего сообщений – 28. Форматы сообщений стандартизированы, существуют однобайтные, двухбайтные и расширенные сообщения. В двухбайтном сообщении второй байт является аргументом сообщения, в расширенных сообщениях второй байт задаёт длину сообщения, а последующие байты несут код и аргументы сообщения.

Рассмотрим внутреннюю структуру сообщения на примере однобайтного сообщения «Identify».

Identify Message (80h-FFh)

Byte\Bit76543210
0IdentifyDiscPrivLUNTARLUNTRN

Identify – Бит идентификации, должен быть установлен в единицу – признак Identify Message.

DiscPriv – Disconnect Privilege Bit, если равен 0, то Target не будет отсоединяться от Initiator до конца выполнения задачи. Если равен 1, то Initiator предоставляет Target привилегию отключения от шины. DiscPriv используется совместно с опциональным битом Dimm (Disconnect Immediate), который описан в Disconnect/Reconnect Mode Page (см. 8.12.3. Disconnect/Reconnect Control Page). Если Initiator выбирает Target, использующее SCSI-1 с опцией одного инициатора, то Target не будет пытаться отключится от шины до конца выполнения задачи и соответственно не будет обращать внимания на DiscPriv, который в этом случае всегда должен быть равен нулю.

LUNTAR – Logical Unit Target Bit. Если равен 0, то Identify Message адресовано логическому устройству (ЛУ). Если равен 1, то Identify Message адресовано обычному Target, который не включает в себя ЛУ. LUNTAR=0 всегда при работе с HDD.

LUNTRN – Logical Unit Number Target Routine Number описывает Logical Unit Number, если LUNTAR=0. При LUNTAR=1 описывает Target Routine Number (номер ЛУ).

Адресация и система команд

SCSI ID (бит идентификатора)

Бит идентификатора является единственным битом на шине данных, который соответствует уникальному адресу устройства на шине SCSI. Каждое устройство SCSI должно иметь свой уникальный адрес, назначаемый при конфигурировании. Бит идентификатора (адрес) задаётся при конфигурировании предварительной установкой переключателей или джамперов. Для хост-адаптера возможно программное конфигурирование.

Для хост-адаптера:

1. Narrow Width
D7D6D5D4D3D2D1D0
10000000

2. Wide Width
D15D14D13D12D11D10D9D8D7D6D5D4D3D2D1D0
1000000000000000

Заводская установка ID для HDD SCSI всегда устанавливается на 0h или 1h.

Для двух подключаемых HDD:

Первый HDD
D15D14D13D12D11D10D9D8D7D6D5D4D3D2D1D0
0000000000000001

Второй HDD
D15D14D13D12D11D10D9D8D7D6D5D4D3D2D1D0
0000000000000000

Именно эта функция определяет максимальное количество устройств, которое может одновременно находится на шине SCSI: 16 на Wide Width и 8 на Narrow Width, включая хост-адаптер.

SCSI pointers (указатели SCSI)

SCSI-архитектура предлагает устанавливать для каждого процесса ввода/вывода сохранение в Initiator Path Control Area два набора из трех указателей, которые состоят из:

  1. Указатель команды (Command Pointer) – 1 байт. Указывает на начало дескриптора блока команды (т.е. на код команды).
  2. Указатель статуса (Status Pointer) – 1 байт. Указывает на начало Status Area.
  3. Указатель данных (Data Pointer) – макс. 4 байта. Указывает на начало области данных (т.е. LBA).

Первый набор указателей называется Current (Active) Pointers и хранится в регистре текущих указателей (Current Pointer Register) ИУ. Текущие указатели указывают на очередной байт команды, состояния и данных, которые будут передаваться между памятью ИУ и ЦУ. Current Pointers заносятся в регистр до начала фазы шины Arbitration и хранятся там до завершения команды (прием от ИУ сообщения Good Status), либо до получения сообщения Save Data Pointer, после чего записываются в «сохранение указателей» (Saved Pointers).

Второй набор указателей называется Saved Pointers (до 15 [7] наборов для широкой [узкой] шины, по одному на каждое устройство).

Минимальная задержка на освобождение SCSI-шины (Bus Clear Delay) – 800 нс. За это время ИУ должен восстановить указатели из памяти в регистр текущих указателей.

Биты чётности (DPB0, DPB1)

Использование битов чётности – системная опция. Но устройство всегда проверяет биты чётности на шине и если имеет возможность, то сообщает об ошибке бита чётности хост-адаптеру. Эта возможность определяется устройством для каждого конкретного устройства отдельно.

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

Во время фазы Arbitration (см. рис. 9) чётность не используется (DPB0, DPB1 не должны устанавливаться в состояние логического нуля).

Система команд SCSI

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

  • обязательные (mandatory);
  • дополнительные (optional);
  • фирменные (vendor specific).

Любое SCSI-устройство должно поддерживать обязательные команды общего набора и своего класса, чем обеспечивается высокий уровень совместимости. Команды SCSI для устройств прямого доступа (Direct-Access Devices) приведены в табл. 7.

Таблица 7

Команды SCSI для устройств прямого доступа
КомандаКод командыТип команды
1
2
3
4
5
6
7
8
9
10

11

12
13
14

15
16
17
18
19
20
21
22
23
24
25
26
27
28

29
30
31
32
33
34
35

36
37
38
39
CHANGE DEFINITION
COMPARE
COPY
COPY AND VERIFY
FORMAT UNIT
INQUIRY
LOCK-UNLOCK CACHE
LOG SELECT
LOG SENSE
MODE SELECT (6)
MODE SELECT (10)
MODE SENSE (6)
MODE SENSE (10)
PRE-FETCH
PREVENT-ALLOW MEDIUM REMOVAL
READ (6)
READ (10)
READ BUFFER
READ CAPACITY
READ DEFECT DATA
READ LONG
REASSIGN BLOCKS
RECEIVE DIAGNOSTIC RESULTS
RELEASE
REQUEST SENSE
RESERVE
REZERO UNIT
SEARCH DATA EQUAL
SEARCH DATA HIGH
SEARCH DATA LOW
SEEK (6)
SEEK (10)
SEND DIAGNOSTIC
SET LIMITS
START STOP UNIT
SYNCHRONIZE CACHE
TEST UNIT READY
VERIFY
WRITE (6)
WRITE (10)
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
O
O
O
O
M
M
O
O
O
O
O
O
O
O
O
M
M
O
M
O
O
O
O
M
M
M
O
O
O
O
O
O
M
O
O
O
M
O
O
O
O
O
O
O
Примечание: M – обязательные команды, O – опциональные команды.

Некоторые команды сопровождаются блоком параметров, следующим за блоком дескриптора команды. Форматы блоков стандартизированы, длина блока определяется кодом операции, который всегда является первым байтом блока и может составлять 6, 10 или 12 байтов.

Любое ЦУ SCSI должно поддерживать четыре команды: Inquiry, Request Sense, Send Diagnostic, Test Unit Ready.

Рассмотрим структуру команды SCSI на примере 6-байтной команды Copy.

Byte\Bit76543210    
000011000Operation Code
1 0000 LUNReservedPad
2 Parameter List Length (MSB)
3 Parameter List Length
4 Parameter List Length (LSB)
5 0000  Vendor UniqueReserFlagLink

Байт 5 является контрольным (Control byte);

Operation Code – код операции 18h;

LUN – Logical Unit Number, номер логического блока;

Reserved – зарезервировано для последующих стандартов, должны быть записаны нули;

Parameter List Length – длина списка параметров (MSB – старший байт, LSB – младший байт);

Vendor Unique – определяется разработчиком (изготовителем);

Flag – определяет сообщение, передаваемое в случае успешного выполнения команд цепочки;

Link – признак объединения команд в цепочку;

Pad – используется в связке с Cat bit, определяет, какое действие будет следующим, если сегмент копирования не соответствует точному числу блоков назначения.

Команда копирования обеспечивает возможность копирования данных с одного логического блока на другой или на тот же логический блок. Логические блоки могут располагаться на разных устройствах SCSI либо на одном и том же. Некоторые устройства SCSI могут не поддерживать операцию копирования для «третьей стороны», где копирующее устройство не является исходным устройством или устройством назначения. Некоторые устройства SCSI поддерживают только операции копирования в рамках одного устройства SCSI, но без участия других устройств SCSI.

Parameter List Length указывает число байтов параметров, которые должны быть переданы во время выполнения фазы Data Out команды.

Parameter List (список параметров)

Parameter List (список параметров) начинается с четырёх байтов заголовка, который указывает функциональный код команды Copy (для устройств прямого доступа = 02h) и приоритетность.

Byte\Bit76543210 
000010   Copy Function CodePriority
1        Vendor Unique
200000000Reserved
300000000Reserved
Segment Descriptor(one or more)
0
n
 Segment Descriptor 0
0
n
 Segment Descriptor 1
 ... 
0
n
 Segment Descriptor X

Copy Function Code – функциональный код команды Copy (для устройств прямого доступа = 02h);

Priority – приоритетность;

Vendor Unique – определяется разработчиком (изготовителем);

Reserved – зарезервировано для последующих стандартов, должны быть записаны нули;

Segment Descriptor – дескриптор сегмента, максимальное их количество не должно превышать 256, т.е. Xmax=255 (FFh);

Segment Descriptor (дескриптор сегмента) для команды Copy для устройств прямого доступа (функциональный код = 02h).

Byte\Bit76543210 
0    Source addressDCCatSource LUN
1 00 Destination addressReservedDestination LUN
200000000Reserved
300000000Reserved
4 Number of Blocks (MSB)
5 Number of Blocks
6 Number of Blocks
7 Number of Blocks (LSB)
8 Source Logical Block Address (MSB)
9 Source Logical Block Address
10 Source Logical Block Address
11 Source Logical Block Address (LSB)
12 Destination Logical Block Address (MSB)
13 Destination Logical Block Address
14 Destination Logical Block Address
15 Destination Logical Block Address (LSB)

Source address – исходный адрес;

DC* (Destination Count) – удалённый индекс;

Cat** (catenate bit [optional]) – связывающий бит;

Source LUN – номер исходного логического блока;

Destination address – адрес назначения;

Reserved – зарезервировано для последующих стандартов, должны быть записаны нули;

Destination LUN – номер логического блока назначения;

Number of Blocks – число блоков;

Source Logical Block Address – адрес исходного логического блока;

Destination Logical Block Address – адрес логического блока назначения;

MSB – старший байт;

LSB – младший байт.

* Если DC = 1, то поле числа блоков (Number of Blocks) относится к логической единице источника (Source Logical Unit). Если DC = 0, то поле числа блоков (Number of Blocks) относится к логической единице назначения (Destination Logical Unit).

** Если Cat = 1, то устройство, управляющее копированием, будет связывать последний блок сегмента источника с первым блоком следующего сегмента источника, если последний блок источника не заканчивается точно в конце блока назначения. Cat = 0 зависит от установки pad bit в блоке дескриптора команды.

 

Список литературы
  1. Гук М. Дисковая подсистема ПК. – Санкт-Петербург, 2001.
  2. Интерфейс малой компьютерной системы (ИМКС) / Всесоюзный центр переводов научно-технической литературы и документации (ВЦП). Северо-Кавказский филиал. – Ростов-н/Д, 1989.
  3. SCSI Interface: Product Manual. Vol. 1, 2 / Seagate.
  4. SCSI-2 Specification.

Новости мира IT:

Архив новостей

Последние комментарии:

Релиз ядра Linux 4.14  (9)
Среда 22.11, 19:04
Loading

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 985 1945361
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2015 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...