Реклама на сайте | Помощь сайту   English version | Free likes 
KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Почти все о SCSI

Почти все о 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

Стандарт Вид Скорость на шине, Мбайт/сек Ширина шины, биты Максимальная длина кабеля, метров Максимальное кол-во устройств Внешние разъемы, кол-во контактов Внешние разъемы, кол-во контактов
SE LVD HVD
Narrow/Wide N/W N/W N/W N/W N/W N/W N/W N/W
SCSI-1 5/– 8/– 6/– 12/– 25/– 8/– DB-25/– CX-50/– LD50/-
SCSI-2 Fast 10/20 8 /16 3/6 12/12 25/25 16/16 HD-50/HD-68 LD50/HD68
Ultra 20/40 8/16 3(1,5)/3(1,5) –/12 25/25 4(8)/4(8) HD-50/HD-68 LD50/HD68
Ultra 2 40/80 8/16 12/12 25/25 8/16 HD-50/HD-68 LD50/HD68
SCSI-3 Ultra 160 –/160 –/16 –/12   HD-68, VHDCI-68 HD68,HD80
Ultra 320 –/320 –/16 –/12   HD-68, VHDCI-68 HD68,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,45 1,25 1,05 1,15
+Slvd, В 1,05 1,25 1,45 1,35
|–Slvd|–(+Slvd), В 0,4 0 –0,4 –0,2
Логический уровень 1 Неопр. 0 Неопр.
 

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

 
«Классический» Single-Ended SCSI LVD 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 SCSI Differential SCSI HD-68   Single-Ended SCSI Differential SCSI HD-68
Signal name Signal name Pin# Signal name Signal name Pin#
   
Ground + Data Bit 12 1 Data Bit 12 – Data Bit 12 35
Ground + Data Bit 13 2 Data Bit 13 – Data Bit 13 36
Ground + Data Bit 14 3 Data Bit 14 – Data Bit 14 37
Ground + Data Bit 15 4 Data Bit 15 – Data Bit 15 38
Ground + Parity Bit 1 5 Parity Bit 1 – Parity Bit 1 39
Ground + Data Bit 0 6 Data Bit 0 – Data Bit 0 40
Ground + Data Bit 1 7 Data Bit 1 – Data Bit 1 41
Ground + Data Bit 2 8 Data Bit 2 – Data Bit 2 42
Ground + Data Bit 3 9 Data Bit 3 – Data Bit 3 43
Ground + Data Bit 4 10 Data Bit 4 – Data Bit 4 44
Ground + Data Bit 5 11 Data Bit 5 – Data Bit 5 45
Ground + Data Bit 6 12 Data Bit 6 – Data Bit 6 46
Ground + Data Bit 7 13 Data Bit 7 – Data Bit 7 47
Ground + Parity Bit 0 14 Parity Bit 0 – Parity Bit 0 48
Ground Ground 15 Ground Ground 49
Ground Diffsens 16 Ground Ground 50
Term-n Power Term-n Power 17 Term-n Power Term-n Power 51
Term-n Power Term-n Power 18 Term-n Power Term-n Power 52
Reserved Reserved 19 Reserved Reserved 53
Ground Ground 20 Ground Ground 54
Ground + Attention 21 Attention – Attention 55
Ground Ground 22 Ground Ground 56
Ground + Busy 23 Busy – Busy 57
Ground +Acknowledge 24 Acknowledge – Acknowledge 58
Ground + Reset 25 Reset – Reset 59
Ground +Message 26 Message – Message 60
Ground + Select 27 Select – Select 61
Ground +Com./Data 28 Com./Data –Com./Data 62
Ground + Request 29 Request – Request 63
Ground +Input/Outpt 30 Input/Output – Input/Output 64
Ground + Data Bit 8 31 Data Bit 8 – Data Bit 8 65
Ground + Data Bit 9 32 Data Bit 9 – Data Bit 9 66
Ground + Data Bit 10 33 Data Bit 10 – Data Bit 10 67
Ground + Data Bit 11 34 Data Bit 11 – Data Bit 11 68
 

Таблица 3

Внешние разъемы LD50 и HD50 SCSI

Single-Ended SCSI Differential SCSI HD-50   Single-Ended SCSI Differential SCSI HD-50
Signal name Signal name Pin# Signal name Signal name Pin#
   
Ground + Data Bit 0 1 Data Bit 0 – Data Bit 0 26
Ground + Data Bit 1 2 Data Bit 1 – Data Bit 1 27
Ground + Data Bit 2 3 Data Bit 2 – Data Bit 2 28
Ground + Data Bit 3 4 Data Bit 3 – Data Bit 3 29
Ground + Data Bit 4 5 Data Bit 4 – Data Bit 4 30
Ground + Data Bit 5 6 Data Bit 5 – Data Bit 5 31
Ground + Data Bit 6 7 Data Bit 6 – Data Bit 6 32
Ground + Data Bit 7 8 Data Bit 7 – Data Bit 7 33
Ground + Parity Bit 0 9 Parity Bit 0 – Parity Bit 0 34
Ground Ground 10 Ground Ground 35
Ground Ground 11 Ground Ground 36
Reserved Reserved 12 Reserved Reserved 37
Ground Ground 13 Term-n Power Term-n Power 38
Reserved Reserved 14 Reserved Reserved 39
Ground Ground 15 Ground Ground 40
Ground + Attention 16 Attention – Attention 41
Ground Ground 17 Ground Ground 42
Ground + Busy 18 Busy – Busy 43
Ground + Acknowledge 19 Acknowledge – Acknowledge 44
Ground + Reset 20 Reset – Reset 45
Ground + Message 21 Message – Message 46
Ground + Select 22 Select – Select 47
Ground + C/D 23 C/D – C/D 48
Ground + Request 24 Request – Request 49
Ground + I/O 25 I/O – I/O 50
 

Таблица 4

Разъем HE50 SCSI

Single-Ended SCSI Differential SCSI HE-50   Single-Ended SCSI Differential SCSI HE-50
Signal name Signal name Pin# Signal name Signal name Pin#
   
Ground + Data Bit 0 1 Term-n Power Term-n Power 26
Ground – Data Bit 0 2 Reserved Reserved 27
Ground + Data Bit 1 3 Reserved Reserved 28
Ground – Data Bit 1 4 Ground Ground 29
Ground + Data Bit 2 5 Ground Ground 30
Ground – Data Bit 2 6 Ground + Attention 31
Ground + Data Bit 3 7 Attention – Attention 32
Ground – Data Bit 3 8 Ground Ground 33
Ground + Data Bit 4 9 Ground Ground 34
Ground – Data Bit 4 10 Ground + Busy 35
Ground + Data Bit 5 11 Busy – Busy 36
Reserved – Data Bit 5 12 Ground + Acnowledge 37
Ground + Data Bit 6 13 Acknowledge – Acknowledge 38
Reserved – Data Bit 6 14 Ground + Reset 39
Ground + Data Bit 7 15 Reset – Reset 40
Ground – Data Bit 7 16 Ground + Message 41
Ground + Parity Bit 0 17 Message – Message 42
Ground – Parity Bit 0 18 Ground + Select 43
Ground Ground 19 – Select – Select 44
Ground Ground 20 Ground + C/D 45
Ground Ground 21 C/D – C/D 46
Ground Ground 22 Ground + Request 47
Ground Reserved 23 Request – Request 48
Ground Reserved 24 Ground + I/O 49
Ground Ground 25 I/O – I/O 50

Фазы шины

В каждый конкретный момент времени шина 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

Сигнал BSY SEL C/D I/O MSG REQ ACK RST ATN
Источник ИУ, ЦУ ИУ, ЦУ ЦУ ЦУ ЦУ ЦУ ИУ ИУ, ЦУ ИУ
 

Между фазами передачи информации сигналы 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

Сигнал Фаза Направление
MSG C/D I/O
0 0 0 Data Out ИУ -> ЦУ
0 0 1 Data In ИУ <- ЦУ
0 1 0 Command ИУ -> ЦУ
0 1 1 Status ИУ <- ЦУ
1 0 0 Зарезервировано  
1 0 1 Зарезервировано  
1 1 0 Message Out ИУ -> ЦУ
1 1 1 Message 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)

ByteBit 7 6 5 4 3 2 1 0
0 Identify DiscPriv LUNTAR LUNTRN

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
D7 D6 D5 D4 D3 D2 D1 D0
1 0 0 0 0 0 0 0

2. Wide Width
D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

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

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

Первый HDD
D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1

Второй HDD
D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Именно эта функция определяет максимальное количество устройств, которое может одновременно находится на шине 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.

ByteBit 7 6 5 4 3 2 1 0        
0 0 0 0 1 1 0 0 0 Operation Code
1   0 0 0 0   LUN Reserved Pad
2   Parameter List Length (MSB)
3   Parameter List Length
4   Parameter List Length (LSB)
5   0 0 0 0     Vendor Unique Reser Flag Link

Байт 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) и приоритетность.

ByteBit 7 6 5 4 3 2 1 0  
0 0 0 0 1 0       Copy Function Code Priority
1                 Vendor Unique
2 0 0 0 0 0 0 0 0 Reserved
3 0 0 0 0 0 0 0 0 Reserved
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).

ByteBit 7 6 5 4 3 2 1 0  
0         Source address DC Cat Source LUN
1   0 0   Destination address Reserved Destination LUN
2 0 0 0 0 0 0 0 0 Reserved
3 0 0 0 0 0 0 0 0 Reserved
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.

Электронная версия: © ЕПОС.


 © 2003—2024 «Электронный портал»Обр@тная связь