Асинхронная передача данных
Является обязательной для всех устройств SCSI и всех фаз передачи информации. Target управляет направлением передачи информации с помощью сигнала I/O:
I/O = «0» ? передача Initiator => Target,
I/O = «1» ? передача Initiator <= Target.
Передача каждого байта сопровождается взаимосвязанной парой сигналов REQ/ACK. Initiator фиксирует принимаемые данные по отрицательному перепаду сигнала REQ, Target считает принимаемые данные действительными по отрицательному перепаду сигнала ACK.
Рис. 10. Временные диаграммы асинхронной передачи данных
Т ? источник данных Target, I ? источник данных Initiator
Биты чётности (DPB0, DPB1)
Использование битов чётности ? системная опция. Но устройство всегда проверяет биты чётности на шине и если имеет возможность, то сообщает об ошибке бита чётности хост-адаптеру. Эта возможность определяется устройством для каждого конкретного устройства отдельно.
SCSI-система может иметь такую конфигурацию, когда все подключённые к интерфейсу устройства генерируют бит чётности и регистрация чётности для всех устройств включена. Система может также иметь конфигурацию, когда регистрация чётности отсутствует и проверка по чётности вообще не осуществляется.
Во время фазы Arbitration (см. рис. 9) чётность не используется (DPB0, DPB1 не должны устанавливаться в состояние логического нуля).
Фазы шины
В каждый конкретный момент времени шина 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, не нарушая работы других инициаторов в системе, где таких инициаторов несколько.
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 | Неопр. |
«Классический» Single-Ended SCSI | LVD SCSI. Оборудование с такой маркировкой может работать только с LVD SCSI-контроллерами | Обозначает устройство, поддерживающее как обычный, Single-Ended SCSI, так и LVD SCSI |
Информационные фазы передачи информации 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 | ИУ <- ЦУ |
LVD ? Low Voltage Differential (низковольтный дифференциальный)
Двуполярный дифференциальный сигнал, используемый для высокоскоростной передачи данных в современных вариантах SCSI-интерфейса. При использовании LVD уровень напряжения сигнала находится в пределах ±1,8В. На LVD-интерфейсе сигналы положительной и отрицательной полярности идут по разным физическим проводам. Для поддержки SCSI LVD требуется специальный кабель, состоящий из групп витых пар.
Parameter List (список параметров)
Parameter List (список параметров) начинается с четырёх байтов заголовка, который указывает функциональный код команды Copy (для устройств прямого доступа = 02h) и приоритетность.
Byte\Bit | 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).
Byte\Bit | 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 в блоке дескриптора команды.
Подключение периферии
Рис. 5. Структурная схема подключения периферии
Рис. 6. Структурная схема кабеля для двух периферийных устройств
1, 2, 3 ? разъём (розетка);
4 ? кабель SCSI LVD, состоящий из витых пар;
5, 6 ? разъём (вилка) целевого устройства (ЦУ, target);
7 ? разъём (вилка) инициатора (ИУ, initiator).
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 два набора из трех указателей, которые состоят из:
Указатель команды (Command Pointer) ? 1байт. Указывает на начало дескриптора блока команды (т.е. на код команды).
Указатель статуса (Status Pointer) ? 1 байт. Указывает на начало Status Area.
Указатель данных (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 нс. За это время ИУ должен восстановить указатели из памяти в регистр текущих указателей.
SE ? Single-Ended, асимметричный SCSI
Термин обозначает обычный SCSI-интерфейс, в котором для каждого сигнала на шине есть свой проводник. Этот термин часто используется для указания принадлежности к «классическому» SCSI. Сигнал передается потенциалом с ТТЛ-уровнями относительно общего провода, который должен быть отдельным для каждого сигнала для снижения уровня помех.
В LVD SCSI и последующих вариантах SCSI каждый сигнал идёт уже по 2 проводам (по одному ? положительной полярности, а по другому отрицательной).
Шина 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 разъемов».
Сигналы управления шины 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 и Data In и только по результатам предварительной договорённости, которая реализуется посредством сообщений «Synchronous Data Transfer Request».
Рис. 11. Временные диаграммы синхронной передачи данных
Т ? источник данных Target, I ? источник данных Initiator
Система команд 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\Bit | 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 | ||||
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 команды.
Список литературы
Гук М. Дисковая подсистема ПК. ? Санкт-Петербург, 2001.
Интерфейс малой компьютерной системы (ИМКС) / Всесоюзный центр переводов научно-технической литературы и документации (ВЦП). Северо-Кавказский филиал. ? Ростов-н/Д, 1989.
SCSI Interface: Product Manual. Vol. 1, 2 / Seagate.
SCSI-2 Specification.
Стандарты, описывающие SCSI
Стандарт SCSI-1 был стандартизован ANSI ещё в 1986 г.
Стандарт SCSI-2.
Стандарт SCSI-3 описывается документами: SIP (SCSI Interlock Protocol), SPI (SCSI Parallel Interface).
Стандарт SPI, 1995 г. Определяет Fast SCSI (Fast Wide SCSI).
Стандарт SPI-2, 1999 г. Определяет Ultra2 SCSI (Wide Ultra2 SCSI).
Стандарт SPI-3, 2000 г. Определяет Wide Ultra3 SCSI (Ultra 160).
Стандарт SPI-4, 2001 г. Определяет Ultra320 SCSI.
Стандарт 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, низкая плотность контактов разъёма.
Терминаторы (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 разъёмов
На рис. 7 представлены типы применяемых в SCSI разъёмов.
Рис. 7. Типы применяемых в SCSI разъёмов
Иногда ещё используют внешний разъём VHDCI-68.
Возможен вариант, когда для подключения Wide Width используют два разъёма HD50.
Управление интерфейсом
Для управления интерфейсом служит система сообщений. Всего сообщений ? 28. Форматы сообщений стандартизированы, существуют однобайтные, двухбайтные и расширенные сообщения. В двухбайтном сообщении второй байт является аргументом сообщения, в расширенных сообщениях второй байт задаёт длину сообщения, а последующие байты несут код и аргументы сообщения.
Рассмотрим внутреннюю структуру сообщения на примере однобайтного сообщения «Identify».
Identify Message (80h-FFh)
Byte\Bit | 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
Рассмотрим несколько вариантов подключения на одну шину устройств 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.
Внешние разъёмы
В большинстве случаев используется пять (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 | |
Разъем 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
Small Computer Systems Interface (системный интерфейс для малых компьютеров) ? интерфейс, разработанный для объединения на одной шине различных по своему назначению устройств, таких как жёсткие диски, накопители на магнитооптических дисках, стримеры, сканеры ит.д. Интерфейс предназначен для соединения устройств различных классов: памяти прямого и последовательного доступа, CD-ROM, оптических дисков однократной и многократной записи, устройств автоматической смены носителей информации, принтеров, сканеров, коммуникационных устройств и процессоров. Применяется в различных архитектурах компьютерных систем, а не только в PC. Стандарт определяет не только физический интерфейс, но и систему команд, управляющих устройствами SCSI. За время своего существования стандарт активно развивался.