Интерфейс SCSI
Министерство образования Российской Федерации Тульский Государственный Университет Кафедра "Автоматизированные станочные системы" Контрольно-курсовая работа: Интерфейс SCSI Выполнил студент гр. 620211 Демидов И.А. Проверил преподаватель к.т.н., доцент Трушин Н.Н. Тула 2004 |
Содержание
1 |
Общие сведения об интерфейсах………………………………………. |
3 |
2 |
Классификация интерфейсов…………………………………………… |
3 |
3 |
История создания интерфейса SCSI…………………………………… |
3 |
4 |
Эволюция стандартов SCSI…………………………………………….. |
5 |
5 |
Как выглядит и из чего состоит SCSI контроллер……………………. |
8 |
6 |
Концепция SCSI…………………………………………………………. |
11 |
7 |
Фазы работы шины SCSI……………………………………………….. |
12 |
8 |
Команды SCSI…………………………………………………………… |
14 |
9 |
Хост – адаптеры…………………………………………………………. |
16 |
10 |
Кабели SCSI……………………………………………………………... |
17 |
11 |
Программная поддержка SCSI устройств……………………………... |
18 |
12 |
Программирование аппаратных средств периферийных устройств… |
18 |
13 |
SCSI против IDE………………………………………………………… |
19 |
Список литературы……………………………………………………… |
22 |
|
1. Общие сведения об интерфейсах
Создание современных средств вычислительной техники связано с задачей объединения в один комплекс различных блоков ЭВМ, устройств хранения и отображения информации, аппаратуры данных и непосредственно ЭВМ. Эта задача возлагается на унифицированные системы сопряжения – интерфейсы. Под интерфейсом понимают совокупность схемотехнических средств, обеспечивающих непосредственное взаимодействие составных элементов вычислительной системы. Интерфейс обеспечивает взаимосвязь между составными функциональными блоками или устройствами системы.
Основным назначением интерфейса является унификация внутрисистемных и межсистемных связей и устройств сопряжения с целью эффективной реализации прогрессивных методов проектирования функциональных элементов вычислительной системы.
2. Классификация интерфейсов
1) Машинные интерфейсы предназначены для организации связей между составными элементами ЭВМ, т.е. непосредственно для их построения и связи с внешней средой.
2) Интерфейсы периферийного оборудования выполняют функции сопряжения процессоров, контроллеров, запоминающих устройств и аппаратурой передачи данных.
3) Интерфейсы мультипроцессорных систем представляют собой в основном магистральные системы сопряжения , ориентированные в единый комплекс нескольких процессоров, модулей памяти, контроллеров запоминающих устройств, ограничено размещенных в пространстве.
4) Интерфейсы распределенных ВС предназначены для интеграции средств обработки информации, размещенные на значительном расстоянии.
Развитие интерфейсов осуществляется в направлении повышении уровня унификации интерфейсного оборудования и стандартизации условий совместимости, модернизации существующих интерфейсов, создания принципиально новых интерфейсов.
3. История создания интерфейса SCSI
Фамилия Shugart знакома многим: она принадлежит одному из ярчайших первопроходцев и идеологов «накопительной» индустрии — легендарному кремниевому олимпийцу (в смысле обитателю Олимпа Кремниевой Долины) Алану Ф. Шугарту, который в IBM руководил разработками флоппи и RIGID, потом работал в Memorex. В 1973 году Шугарт привлек капитал со стороны и создал компанию по производству 5,25-дюймовых FDD-приводов — Shugart Associates. Эта фирма проработала под его управлением год, после чего Шугарта выгнали те самые люди, которые инвестировали начинание. Шугарт оправлялся от удара шесть лет — в этот период он даже купил рыбацкую лодку и стал профессиональным рыбаком. Но тяга к хайтеку не прошла: в 1979 году он совместно с Финисом Коннером основал Seagate Technologies (первоначально — Shugart Technologies), после чего оставался ее руководителем в течение почти двух десятков лет, за которые компания стала крупнейшим независимым производителем жестких дисков (правда, и из Seagate в 1998-м Шугарта «поперли», но это уже совершенно другая история).
Нас больше интересует Shugart Associates, поскольку именно она в 1979 году разработала интерфейс SASI — самый ранний вариант шины SCSI. Развернуть аббревиатуру SASI в настоящее время сложно, первые две буквы достоверно означают Shugart Associates, четвертая — Interface, а третья в разных источниках расшифровывается по-разному — System, Systems или Standard (думаю, правильной версией является все-таки последняя). Возможности SASI были весьма скромными даже по сравнению с первым вариантом SCSI — скорость передачи составляла лишь 1,5 Мбайт/с, интерфейс имел очень ограниченный набор команд. Однако заложенные в SASI идеи несли в себе много прогрессивного: вместо повсеместно распространенной тогда аналоговой последовательной передачи использовалась 8-разрядная параллельная цифровая, вместо связки линий управления интерфейс предоставлял набор команд, да и работал он на логическом уровне, позволяя адресовать блоки, а не физические головки, цилиндры и секторы.
Через два года, в конце 1981-го, чтобы подстегнуть принятие интерфейса индустрией, Shugart Associates, скооперировавшись с NCR (National Cash Register), подала заявку в ANSI на создание технического комитета для доработки и стандартизации интерфейса. Такой комитет — X3T9.2 — был образован в 1982 году, а имя интерфейса сменилось на безличное описательное SCSI. В течение нескольких последующих лет стандарт дорабатывался и улучшался: расширилась полоса пропускания, добавились наборы команд — для принтеров, стримеров, процессоров, WORM- и ROM-устройств. (Необходимо заметить, что SCSI в отличие от SASI стал уже не просто дисковым интерфейсом, а родом системной шины: теоретически на «голом» SCSI можно собрать полноценную систему, подключив процессор, память, накопители и периферию.) После представления чернового варианта SCSI в 1984 году на утверждение ANSI многие фирмы стали выпускать продукты, более или менее совместимые с этим протостандартом. Первый официальный стандарт — X3.131-1986 — был принят в 1986 году (с появлением следующих версий его стали называть SCSI-1).
Последующие дополнения и усовершенствования привели к созданию спецификации SCSI-2.
4. Эволюция стандартов SCSI
Спецификации SCSI строго определяют физические и электрические параметры интерфейса и минимум команд. Применение этих команд и стало основным достоинством интерфейса SCSI, так как сделало его управляемым. Разработанная в декабре 1985 года спецификация SCSI-1 предусматривала передачу данных по шине с разрядностью 8 бит и частотой 5 МГц. Скорость передачи данных по шине SCSI в стандартном асинхронном режиме (или режиме handshake, т. е. когда после каждой отправки данных требуется подтверждение) составляет около 3 Мб/с. При передаче в синхронном режиме шина SCSI способна развить пропускную способность около 5 Мб/с.
Устройства подключались в цепочку друг за другом. Первое устройство подключалось к интерфейсу SCSI на главном компьютере, второе — к первому и т. д. (см. Рисунок 1). Первое и последнее устройства в цепочке должны были быть терминированы. На всех остальных устройствах терминирование необходимо было отключить. Устройства идентифицировались посредством задаваемого с помощью перемычек (jumper) или переключателей ID (от 0 до 7), при этом адаптеру шины на хосте присваивался, как правило, ID=7 как дающий наивысший приоритет при доступе к шине.
Рисунок 1. Типовая схема подключения SCSI-устройств в виде цепочки. |
Стандарт не обязывал использовать какой-то определенный тип соединителей (коннекторов), а лишь описывал назначение контактов. Наибольшее распространение получили соединители D-Ribbon типа Centronics для ПК, а также DB-25 для Macintosh. Терминирование было преимущественно пассивное, активное же или регулируемое терминирование применялось лишь отдельными производителями.
В марте 1990 года была разработана, а в 1992-м официально одобрена спецификация SCSI-2 (Fast SCSI), определяющая 18 базовых SCSI-команд (Common Command Set, CCS), обязательных для всех периферийных устройств, а также дополнительные команды для CD-ROM и другой периферии. Стало возможно обмениваться данными без участия центрального процессора. Появились "очереди" - способность принимать цепочки до 256 команд и обрабатывать их автономно в оптимизированном порядке. А если контроллер исполнительного устройства-адресата получил команду, не требующую никаких внешних взаимодействий, то этот контроллер не будет занимать шину до появления необходимости в передаче каких-нибудь данных. Здесь можно увидеть серьезное преимущество SCSI перед IDE,особенно в мультизадачных средах: шина IDE работает как пассивный канал передачи сигналов от центрального процессора - она должна выполнить сначала одну команду перед инициацией другой.
Также появились расширения спецификации, обозначения которых часто можно видеть в прайс-листах. Базовая 8-разрядная версия - Fast SCSI (SCSI-2) -!имеет пропускную способность 10 Мб/с. Модификация Wide SCSI-2 является 16-разрядным вариантом Fast SCSI (SCSI-2) и соответственно имеет удвоенную скорость передачи данных, а также позволяет подключать до 15 периферийных устройств. Приставка Ultra обозначает повышенную до 20 МГц рабочую частоту, а контроллеры Ultra2 способны передавать данные на частоте 40 МГц. Очень часто встречаются обозначения Ultra Wide или Ultra2 Wide. Это означает, что используется комбинации вариантов. Так, например, Ultra2 Wide устройства могут обмениваться информацией с максимальной скоростью 80 Мб/с.
Спецификация Ultra160/m SCSI была принята 14 сентября 1998 года. Основными компонентами Ultra160/m SCSI явились: двойная синхронизация при передаче данных (Double Transition Clocking), контроль целостности данных за счет использования циклического кода с избыточностью (CRC), контроль окружения (Domain Validation). Скорость передачи данных в 160 Мб/с достигается за счет использования обоих фронтов сигнала запрос/подтверждение для синхронизации данных. Соответственно, это позволяет разработчикам увеличить быстродействие или надежность, так как становится возможным использовать полосу пропускания шины до 160 Мб/с с существующими Ultra2 SCSI соединительными кабелями либо повысить надежность интерфейса Ultra2 SCSI (80 Мб/с) благодаря снижению частоты, на которой происходит синхронизация.
Что касается контроля целостности данных за счет использования циклического кода с избыточностью (CRC), то в Ultra160/m используется тот же самый метод, который применяется в FDDI, в локальных сетях на основе протокола CSMA-CD и в волоконно-оптических каналах передачи данных. Контроль окружения представляет собой интеллектуальную технологию, заключающуюся в проверке подсистемы хранения данных, включая соединительные кабели, терминаторы и т.д. Эта технология контролирует функционирование системы в требуемых спецификациях, а в случае возникновения опасности потери данных даже понижает скорость передачи.
По способу связи с контроллером SCSI-устройства делятся на два типа: использующие single-ended и дифференциальный (differential, D) электрические интерфейсы. В интерфейсе single-ended используется один проводник для каждого разряда передаваемых данных или управляющих сигналов и соответствующий проводник для "земли", причем информация передается только по одному сигнальному проводнику. В дифференциальном интерфейсе сигнал разделяется на положительную и отрицательную составляющую и передается по паре проводников, что дает возможность передавать сигнал на большие дистанции без помех. Выбор типа SCSI-трансивера определяет максимальную длину шины и число подключаемых устройств. Большинство существующих SCSI-устройств используют single-ended-трансиверы, что приводит к уменьшению длины кабеля при увеличение скорости передачи Дифференциальные трансиверы преодолевают это ограничение, но стоимость их намного выше. Решить эту проблему призвана технология Low-Voltage Differential (LVD), представляющая гибрид двух вышеуказанных технологий. Большинство новых устройств поддерживают универсальные трансиверы, которые могут работать как single-ended и как LVD трансиверы.
Разрядность, бит |
Максимальная скорость передачи, Мб/с |
Максимальная длина кабеля/количество устройств, м/штук |
Количество контактов в разъеме |
Синоним |
|
SCSI-1 |
8 |
5 |
6/7,25/6(0), 12/6 (LVD) |
50 |
SCSI |
SCSI-2 |
8 |
10 |
3/7,25/6(0), 12/6 (LVD) |
50 |
Fast SCSI-2, Fast SCSI |
Wide SCSI-2 |
16 |
20 |
3/15,25/15(0), 12/15 (LVD) |
68 |
FastWideSCSI |
Ultra SCSI-2 |
8 |
20 |
3/3,1,5/7,25/6 (D),12/6 (LVD) |
50 |
Fast-20 SCSI |
Wide Ultra SCSI-2 |
16 |
40 |
3/3,1,5/7,25/15 (D), 12/15 (LVD) |
68 |
Fast-20 Wide SCSI |
Ultra2 SCSI-2 |
8 |
40 |
12/7 (LVD) |
50 |
Fast-40 SCSI |
Wide Ultra2 SCSI-2 |
16 |
80 |
12/15(LVD) |
68 |
Fast-40 Wide SCSI |
Ultra160 |
16 |
160 |
12/15 (LVD) |
68 |
Ultra3 Wide SCSI |
Еще существует 80-контактный разъем для подключения устройств в режиме "горячей замены" (Hot Swap). Особенность такого разъема - присутствие контактов питания наряду с контактами для передачи данных и управляющих сигналов.
5. Как выглядит и из чего состоит SCSI контроллер
Вот картинка самого простого FastSCSI контроллера на шине PCI.
Как видно, больше всего места занимают разъемы. Самый большой (и самый старый) это разъем для 8-и битных внутренних устройств, часто называемый narrow, он аналогичен разъему IDE, только в нем не 40, а 50 контактов. На большинстве контроллеров есть и внешний разъем, как следует из названия, к нему можно и нужно подключать внешние SCSI устройства. На картинке изображен разъем типа mini-sub D на 50 контактов.
Для Wide устройств используется аналогичный, но на 68 контактов, также используется крепление не в виде защелок, а на винтах - как у COM мышек и принтеров. Он даже меньше, чем narrow, за счет более высокой плотности расположения контактов. (Кстати, несмотря на название, wide шлейф тоже уже, чем narrow). Иногда можно встретить и старый вариант внешнего разъема - просто centronix. Такой же (внешне, но не функционально :) Вы можете встретить на своем принтере. Некоторые устройства, например IOmega ZIP Plus, а также расчитанные на Mac, используют обычный 25 контактный Cannon (D-SUB), как на модеме. Для внешних высокоскоростных соединений применяется и mini-centronics. Вот полная таблица:
(размеры почти оригинальные)
Внутренние |
|
Low-Density 50-pin |
подключение внутренних narrow устройств - HDD, CD-ROM, CD-R, MO, ZIP. (как IDE, только на 50 контактов) |
High-Density 68-pin |
подключение внутренних wide устройств, в основном HDD |
Внешние |
|
DB-25 |
подключение внешних медленных устройств, в основном сканеров, IOmega Zip Plus. наиболее распространен на Mac. (как у модема) |
Low-Density 50-pin |
или Centronics 50-pin. внешнее подключение сканеров, стриммеров. обычно SCSI-1. |
High-Density 50-pin |
или Micro DB50, Mini DB50. стандартный внешний narrow разъем |
High-Density 68-pin |
или Micro DB68, Mini DB68. стандартный внешний wide разъем |
High-Density 68-pin |
или Micro Centronics. по некоторым источникам применяется для внешнего подключения SCSI устройств. |
Для работы любого устройства, как известно, необходима программная поддержка. Для большинства IDE устройств минимальная встроена в BIOS материнской платы, для остальных необходимы драйвера под различные операционные системы. У SCSI устройств все немного сложнее. Для первичной загрузки со SCSI жесткого диска и работы в DOS необходим свой SCSI BIOS. Здесь есть 3 варианта.
1. микросхема со SCSI BIOS есть на самом контроллере (как на VGA картах). При загрузке компьютера он активизируется и позволяет загрузиться со SCSI жесткого диска или, например, CDROM, MO. При использовании нетривиальной операционной системы (Windows NT, OS/2, *nix) для работы с устройствами SCSI всегда используются драйвера. Также они необходимы для работы устройств, не являющихся жесткими дисками, под DOS.
2. образ SCSI BIOS прошит в flash BIOS материнской платы. Далее по п.1. Обычно в BIOS платы добавляют SCSI BIOS для контроллере на основе чипа NCR 810, Symbios Logic SYM53C810 (на первой картинке именно он) или Adaptec 78xx. Этим процессом при желании можно управлять и изменять версию SCSI BIOS на более новую. При наличии на материнской плате SCSI контроллера используется именно такой подход. Этот вариант также более выгоден экономически :) - контроллер без микросхемы BIOS стоит дешевле.
3. SCSI BIOSа нет вообще. Работа всех SCSI устройств обеспечивается только драйверами операционной системы.
Кроме поддержки загрузки со SCSI устройств, BIOS обычно имеет еще несколько функций: настройка онфигурации адаптера, проверка поверхности дисков, форматирование на низком уровне, настройка параметров инициализации SCSI устройств, задание номера загрузочного устройства и т.д.
Следующее замечание следует из первого. Как Вы знаете, обычно на материнских платах есть CMOS. В нем BIOS хранит настройки платы, в том числе конфигурацию жестких дисков. Для SCSI BIOS часто необходимо также хранить конфигурацию SCSI устройств. Эту роль обычно выполняет маленькая микросхема типа 93C46 (flash). Подключается она к основному SCSI чипу. У нее всего 8 ножек и несколько десятков байт памяти, однако ее содержимое сохраняется и при выключении питания. В этой микросхеме SCSI BIOS может сохранять как параметры SCSI устройств так и свои собственные. В общем случае ее присутствие не связано с наличием микросхемы со SCSI BIOS, но, как показывает практика, обычно их устанавливают вместе.
Здесь Вы можете увидеть UltraWide SCSI контроллер фирмы ASUSTeK. На нем уже присутствует микросхема SCSI BIOS. Также можно разглядеть внутренний и внешний Wide разъемы.
На последней (больше мне не удалось быстро найти :) картинке представлен двухканальный Ultra Wide SCSI контроллер. Его спецификация включает следующие пункты: RAID уровней 0,1,3,5 ; Failure Drive Rebuilding ; Hot Swap и on-line Rebuilding; кеш память 2, 4, 8, 16, 32 Mb; Flash EEPROM для SCSI BIOS. Очень хорошо виден 486 процессор, который видимо и пытается всем этим добром управлять.
Еще на плате контроллера SCSI можно встретить
- светодиод активности SCSI шины и/или разъем для его подключения
- разъемы для модулей памяти
- контроллер гибких дисков (в основном на старых платах Adaptec)
- IDE контроллер
- звуковую карту (на картах ASUSTeK для MediaBus)
- VGA карту
Другие карты SCSI
Часто к сканерам и другим небыстрым SCSI устройствам в комплекте прилагается простой SCSI контроллер. Обычно это SCSI-1 контроллер на шине ISA 16 или даже 8 бит с одним (внешним или внутренним) разъемом. На нем нет BIOSа, eeprom, часто он работает без прерываний (polling mode), иногда поддерживает только одно (а не 7) устройство. В основном такой контроллер можно применять только со своим устройством, т.к. драйвера есть только для него. Однако при определенном навыке можно подключить к нему например жесткий диск или стример. Это оправдано только в случае отсутствия денег и наличия времени (или спортивного интереса :) , т.к. стандартный SCSI контроллер, как уже говорилось, можно приобрести за $20-40 и иметь на порядок меньше проблем и гораздо больше возможностей.
6. Концепция SCSI
Шина SCSI – это шина ввода-вывода, а не системная шина и не интерфейс приборного уровня. Интерфейсные средства типа шины SCSI особенно эффективны для машин, которые требуют подключения нескольких дисковых накопителей или других ПУ. Интерфейс SCSI повышает гибкость и вычислительную мощность системы, поскольку он позволяет подключить к одной шине несколько различных ПУ, которые могут непосредственно взаимодействовать друг с другом. Скорость передачи данных по шине безусловно не будет ограничивающим фактором, поскольку этот показатель для шины SCSI в настоящее время достигает 40Мбайт/с.
Шина SCSI предусматривает возможность подключения до восьми устройств. На первый взгляд это может показаться довольно серьезным ограничением, однако, если учесть, что каждое устройство может представлять восемь логических блоков, а каждый логический блок – 256 логических подблоков, то очевидно, что возможности расширения здесь более чем предостаточные.
Каждому из устройств шины SCSI должен быть назначен индивидуальный идентификатор ID, значение которого обычно задается при помощи коммутационных перемычек непосредственно в устройстве. Идентификатор ID выполняет две функции: он идентифицирует устройство на шине и определяет его приоритет в арбитраже за доступ к шине (чем больше номер устройства, тем выше его приоритет).
Каждое из восьми возможных устройств шины может играть роль инициатора(initiator), исполнителя(target), либо совмещать обе эти роли. Инициатор – это часть хост(главного) адаптера SCSI, который служит для подключения главного компьютера к шине SCSI. В типичной системе к одному инициатору подключается один или несколько исполнителей. Система повышенной сложности может содержать более одного хост- адаптера SCSI(много инициаторов). В таких системах могут устанавливаться взаимодействие не только любого процессора с любым ПУ, но также хост - адаптеров друг с другом, поскольку хост – адаптер сам является устройством шины SCSI и может играть роль как инициатора , так и исполнителя. Два ПУ(оба исполнителя), однако, не могут взаимодействовать друг с другом , поскольку только пара инициатор – исполнитель может вести обмен даннами по шине в каждый конкретный момент времени.
Хост – адаптер содержит аппаратные и программные средства для сопряжения с ЦП.
Интерфейс контроллера SCSI и системной шины может быть как совсем простым (строится по принципу программного опроса канала В/В), так и более сложным (предусматривающим высокоскоростные обмены данными в режиме прямого доступа к памяти, ПДП). Такие контроллеры воспринимают высокоуровневые команды и освобождают ЦП от необходимости обработки и контроля сигналов шины SCSI.
Программное обеспечение главного компьютера упрощается, поскольку ему не приходится учитывать физические характеристики конкретного устройства. Интерфейс SCSI предусматривает использование логических, а не физических адресов для всех блоков данных.
7. Фазы работы шины SCSI
Протокол шины SCSI предусматривает восемь отдельных фаз:
Bus Free – «Шина свободна»
Arbitration – «Арбитраж»
Selection – «Выборка»
Reselection – «Обратная выборка»
Command – «Команда»
Data – «Данные»
Status – «Состояние »
Message – «Сообщение»
Последние четыре фазы называются фазами передачи информации. Шина SCSI в каждый конкретный момент времени может находится только в одной из этих восьми фаз.
Фаза «Шина свободна» означает, что ни одно устройство в данный момент не работает с шиной SCSI в активном режиме, и шина свободна для обращения. Эта фаза обычно возникает после системного сброса или после сброса шины сигналом RST. Признаком фазы «Шина свободна» является отсутствие сигналов занятости BSY и выборки SEL.
Шина переключается в фазу – «Арбитраж», когда какое – либо SCSI- устройство хочет взять на себя управление шиной, т.е стать инициатором на шине. Это происходит в случаях, когда инициатор хочет выбрать исполнителя или исполнитель хочет произвести перевыборку запрашивавшего его ранее инициатора. В фазу «Арбитраж» шина может переключится только из фазы «Шина свободна». После того, как устройство определяет, что шина свободна, начинается фаза «Арбитраж». Для этого формируется сигнал BSY, на соответствующую линию данных
выдается идентификатор ID SCSI – устройства( ID – бит). При этом каждое
из восьми возможных устройств шины SCSI может выдавать свой ID - бит
только на закрепленную за ним линию данных как признак своего участия
в арбитраже. Устройство с максимальным значением идентификатора ID выигрывает арбитраж и берет на себя управление шиной.
Фаза «Выборка» дает возможность инициатору выбрать исполнителя, чтобы инициировать выполнение им соответствующей функции, например команды чтения READ или записи READ. Согласно протоколу спецификации SCSI-2 фаза «Выборка» всегда наступает после фазы «Арбитраж». В спецификации SCSI-1 предусматривается вариант системы с одним инициатором , где необходимость арбитража отсутствует, и в фазу выборки можно входить сразу же после фазы «Шина свободна». В обоих случаях для выборки исполнителя инициатор выдает его ID-бит на соответствующую линию данных шины SCSI и формирует сигнал выборки SEL.
Необязательная фаза перевыборка возможна, когда исполнитель хочет восстановить связь с тем инициатором, который ранее послал ему команду. Эта фаза в принципе напоминает фазу «Выборка», с тем исключением, что вместе с сигналом выборки SEL переходит в активное состояние линия I/O, что позволяет различать эти две фазы.
Фазы «Команда», «Данные», «Состояние » и «Сообщение» образуют группу фаз передачи информации, поскольку все они используются для передачи данных или управляющей информации по шине данных. Чтобы их различать, используются сигналы C/D – управление, I/O – ввод-вывод и MSG – сообщение, вырабатываемые исполнителями, который тем самым управляет всеми переходами из одной фазы в другую. Для управления передачей данных между исполнителем и инициатором в фазах передачи информации используются сигналы линий REQ/ACK – запрос/подтверждение (в версии SCSI-2 дополнительно применяются линии REQB/ACKB).
Реальный обмен данными может осуществляться синхронным и асинхронным способом. В обоих случаях для выполнения квитирования используются сигнальные линии ACK и REQ. Для исполнителя режим синхронной передачи является необязательным. Инициатор может потребовать, чтобы исполнитель осуществлял синхронную передачу, однако если последний отвергнет этот запрос, то будет использоваться асинхронный режим.
Чтобы передать данные инициатору в асинхронном режиме, исполнитель выдает их на линии данных шины SCSI вместе с сигналом REQ. Данные должны удерживаться на шине до тех пор, пока от инициатора не будет принят сигнал подтверждения ACK. После этого на шину выдаются следующие данные, и процесс повторяется. Если передача данных должна происходить в противоположном направлении, исполнитель выдает сигнал запроса REQ, говорящий о том, что он готов к приему данных . Инициатор выдает данные на линию данных шины SCSI, а за тем формирует сигнал ACK. Инициатор продолжает удерживать данные на шине до тех пор, пока линия REQ, не переключится в пассивное состояние. Затем исполнитель сбрасывает сигнал REQ, инициатор выдает новые данные, и процесс повторяется.
Если в фазе «Сообщения» устройства согласились использовать синхронный режим обмена, то исполнитель не будет ждать поступления сигнала подтверждения ACK перед выдачей сигнала REQ для приема следующих данных. Он может генерировать один или более импульсов REQ без ожидания соответствующих импульсов ACK(до заранее оговоренного максимума, называемого смещением REQ/ACK).
При выдаче всех запланированных импульсов REQ исполнитель сравнивает число запросов REQ и подтверждений ACK, чтобы удостовериться в том, что каждая группа данных принята успешно. При подготовке синхронного режима обмена устройства задают смещение REQ/ACK и период передачи. Период передачи определяет интервал времени между окончанием передачи очередного байта и началом передачи следующего.
8. Команды SCSI
Предшествующие спецификации интерфейсов для жестких дисков (как уже упомянутый ESDI) предусматривали последовательную передачу по одному биту за один раз, при этом управление диском осуществлялось по отдельным проводам (линиям), каждый из которых выполнял определенную функцию. Например, одна конкретная сигнальная линия задавала смещение головки чтения/записи жесткого диска, другая — направление смещения, третья — тип операции (чтение или запись), четвертая служила для передачи данных в требуемом формате. Таким образом, используемый контроллер зависел от типа жесткого диска.
SCSI же способен выполнять высокоуровневые команды, например запрашивать тип подключенного к шине устройства с помощью команды Inquiry. Таким образом, помимо спецификации физических характеристик шины (тип соединителя, уровни напряжения, назначение контактов и т. д.) стандарт для каждого типа периферии (жесткий диск, CD-ROM и т. д.) определяет поддерживаемые команды и соответствующие им ответы (порядка 12 для каждого вида периферии). Стандартные команды SCSI-1 сгруппированы в соответствии с шестью типами устройств, как показано в Таблице 1.
Таблица 1. Группы команд в соответствии с типами поддерживаемых устройств.
Тип устройства |
Название |
Типичная функция |
1 |
Случайный доступ для чтения/записи (жесткий диск) |
Адреса логических блоков, длина записываемого блока |
2 |
Последовательный доступ (ленточный накопитель) |
Чтение следующей записи |
3 |
Принтер |
Контроль компоновки страницы |
4 |
Процессор |
Отправка и прием |
5 |
WORM (записывающий CD-ROM) |
Большой размер, съемный |
6 |
Случайный доступ только для чтения |
Адреса логических блоков, длина считываемого блока |
При запросе целевым устройством команды, как в примере с обращением ПК к диску, инициатор отвечает отправкой 6 байт командной информации. Эти байты служат для задания команды и идентификации устройства. Все вместе они называются блоком описания команды (Command Descriptor Block, CDB). Первый байт (точнее, байт за номером 0) определяет тип команды или операционный код (opcode). Некоторые наиболее распространенные коды имеют следующие значения (в шестнадцатеричном представлении):
00 Тестовое устройство готово;
03 Форматирование;
08 Чтение;
0А Запись;
0B Поиск.
Значение оставшихся байт зависит от конкретного операционного кода. Например, в случае команды Write (код 0A) они имеют следующий смысл:
Байт 0 Операционный код 0А;
Байт 1 Номер логического устройства в битах 5 и 6,
биты с 1 по 4 задают адрес логического блока;
Байт 2 Адрес логического блока;
Байт 3 Адрес логического блока;
Байт 4 Биты со 2 по 5 задают длину передачи;
Байт 5 Бит 1 — флаг; биты 6 и 7 назначаются производителем.
Передача команд осуществляется в асинхронном режиме. Однако если ответ содержит данные, то они могут передаваться в синхронном режиме, как в случае команды Inquiry, в ответ на которую целевое устройство передает идентифицирующую его тип строку ASCII (этот ответ часто отображается на мониторе ПК при загрузке драйверов SCSI).
9. Хост - адаптеры
Хост-адаптер реализует функции сопряжения шины SCSI с системными ресурсами, прежде всего с системной шиной и операционной системой компьютера. Он, как правило выполняет роль инициатора на шине SCSI , хотя в сложных (например, в мультипроцессорных и мультимашинных) SCSI-системах может динамически изменяться (инициатор/исполнитель).
К числу основных функций хост - адаптера, определяющих его структуру и характеристики, относятся:
- реализация протокола шины SCSI, а также физических и электрических спецификаций стандарта;
- сопряжение с аппаратными и программными системными ресурсами
Реализация протокола шины SCSI, как правило, осуществляется специализированной БИС контроллера шины SCSI. Обычно эта схема обеспечивает и реализацию электрических спецификаций стандарта.
Сопряжение с аппаратными системными средствами предполагает прежде всего согласование разрядности и пропускной способности шины SCSI и системной шины хост-системы, а также реализацию развитых средств доступа к системной памяти. Структура узла согласования разрядности шин зависит от назначения хост-адаптера и используемой версии стандарта SCSI(8 разрядов для SCSI-1;16 или 32 разряда для SCSI-2). Основным средством согласования пропускной способности системной и SCSI-шин является буферная память, реализуемая обычно в виде буфера FIFO, либо двухпортового ОЗУ. Наиболее распространенный алгоритм доступа к системной памяти – прямой доступ, реализуемый чаще всего с помощью контроллера ПДП хост-системы.
Сопряжение с программными системами предполагает наличие SCSI- драйвера для конкретной ОС.
Характеристики современных хост - адаптеров
Среди используемых БИС SCSI-контроллеров для шины AT доминирует модели фирмы NCR. Следом идут известные WD33C93 фирмы Western Digital и ALC 6250/60 фирмы Adaptec(США). Хост-адаптером чаще всего поддерживают как синхронный, так и асинхронный режимы обмена по шине SCSI. Скорость обмена существенно зависит от типа используемого контроллера. В простых хост-адаптерах она колеблется от 0,25 до 1 Мбайт/с в асинхронном режиме и синхронном режимах соответственно.
Размер буфера данных также варьируется в достаточно широких пределах: от использования внутренних буферов БИC SCSI-контроллера небольшой емкости, до ОЗУ значительной емкости (1Мбайт). Наличие большого буфера существенно увеличивает стоимость хост-адаптера.
10. Кабели SCSI
Для обеспечения нечувствительности к помехам внешние кабели SCSI не только используют витые пары, но и организованы в виде трех концентрических слоев (см. Рисунок 2). Центральный, внутренний, слой содержит три пары: Request («Запрос»), Acknowledge («Подтверждение») и Ground («Земля»). Средний — промежуточный — слой служит для передачи управляющих сигналов. Третий — внешний — слой предназначен для передачи данных и информации о четности. В среднем слое пары скручены в противоположном направлении по сравнению с прилежащими к нему внешним и внутренним слоями для уменьшения емкостной связи между слоями. Размещение жил для передачи управляющих сигналов в среднем слое обеспечивает отсутствие интерференции между данными и сигналами Request/Acknowledge.
Рисунок 2. Внешний кабель SCSI в разрезе. |
Хотя весь кабель в целом изолируется с помощью полихлорвинилового покрытия, для отдельных пар такая изоляция не годится, так как ее электрические характеристики сильно зависят от температуры, а кроме того, она имеет очень большую емкость. Такая конструкция кабеля сказываются в конечном итоге на его цене. Однако мы не так богаты, чтобы покупать дешевые вещи.
11. Програмная поддержка SCSI устройств
Задача программирования SCSI систем и устройств является многоуровневой и может быть разделена следующие относительно независимые подзадачи:
- Программирование аппаратных средств периферийных устройств.
- Реализация протоколов SCSI шины.
- Реализация SCSI команд.
- Доступ к SCSI устройствам ОС и прикладных задач.
К сожалению на всех перечисленных уровнях используемые на практике решения слабо унифицированы.Многие солидные фирмы предлагают свои оригинальные, однако часто не стыкуемые друг с другом подходы. Учитывая, что в настоящее время в области программирования SCSI устройств стандарт фактически пока не сложился, целесообразно рассмотреть наиболее интересные решения на каждом из уровней.
12. Программирование аппаратных средств периферийных устройств
Конечным звеном средств программной поддержки ПУ в силу специфичности физических принципов их реализации неизбежно являются узкоспециализированные программы низкого уровня. Из-за того, что программирование на таком уровне сложно даже для общесистемных, не говоря уже о прикладных программистах, имеется тенденция к повышению уровня средств программирования ПУ за счет маскирования специфики ПУ на уровне так называемого firmware (внутреннего программного обеспечения –ВПО). Примером может служить маскирование функций непосредственного управления дисковыми накопителями на уровне внутренних команд дисковых контроллеров WD2010,8272 и др.
Однако на уровень регистров контроллеров выходят только специализированные программы. В настоящее время ПУ как правило, программируются на уровне функций системной BIOS, а программы более высокого уровня вообще используют стандартные функции ОС.
Использование интерфейса SCSI еще более повышает уровень программирования ПУ за счет использования определенного стандартом набора команд общего вида. Для прикладного программиста использование стандартных функций BIOS становится при этом практически невозможным.
Однако как элемент управления устройствами, естественно,
сохраняются на уровне ВПО контроллера ПУ и реализуется либо локальным микропроцессором (МП) контроллера, либо микроконтроллером, встроенным в базовую БИС контроллера ПУ.
В целях сохранения наработанных программных средств управления электроникой ПУ, в настоящее время широко используется эмуляция стандартных интерфейсов ПУ, предполагающая преобразование логических адресов SCSI в физические адреса конкретного устройства. Примером может служить контроллер SmartConnex/ISA фирмы Distributed Proccessing Е Technology. Он использует интерфейс известного дискового контроллера WD1003 фирмы Western Digital, в результате чего компьютер “видит” контроллер как обычное устройство, совместимое с интерфейсом ST-506.
Реально эмуляцию интерфейса выполняет невидимый для пользователя драйвер , запоминаемый при форматировании в последнем блоке НМД. Соответствующие драйверы имеются для наиболее распространенных ОС
(MS-DOS,OS/2,Xenix/Unix,Novell NetWare). Установка контроллера SmartConnex в систему осуществляется с помощью специальной утилиты поставляемой фирмой.
В известных контроллерах WD 33C92/93 фирмы Western Digital имеется даже встроенная команда преобразования форматов логических адресов в физические.
Таким образом, для реализации различных ПУ в стандарте SCSI могут
использоваться фрагменты готовых программ, поддерживающие такие стандартные функции управления ПУ в MS-DOS, как INT 13, INT 11 и др.
Следует отметить, что такой подход, видимо не в полной мере соответствует идеологии SCSI, и в перспективе будут использоваться специальные программы непосредственного управления SCSI устройством на базе SCSI-команд.
13. SCSI против IDE
Спор "Что лучше: IDE или SCSI" входит в число самых распространенных во многих телеконференциях. Число сообщений и статей на эту тему очень велико. Однако этот вопрос, как и знаменитое "Windows NT or OS/2 or Unix", в такой постановке является неразрешимым. Наиболее частая и правильная реакция на них "А для чего?". Рассмотрев этот вопрос подробнее, Вы сможете принять для себя решение о необходимости SCSI для себя.
Расскажем подробнее, что может дать простой SCSI контроллер по сравнению с IDE и за что его нужно выбирать или не выбирать.
предложение SCSI |
возражения EIDE/ATAPI |
ответ SCSI |
возможность подключения 7 устройств к одному контроллеру (к Wide - 15) |
нетрудно установить 4 контроллера IDE и всего будет 8 устройств |
на каждый контроллер IDE нужно по прерыванию! И только 2 будут с UDMA/33. А 4 UWSCSI это 60 устройств :) |
широкий спектр подключаемых устройств |
на IDE есть СDD, ZIP, MO, CD-R, CD-RW |
а драйвера и программы для всего этого у вас точно есть? и много? а вот для SCSI можно использовать любые, в том числе входящие в состав ОС |
возможность подключать как внутренние, так и внешние устройства |
? removable rack или LPT-IDE |
да |
общая длинна кабеля SCSI может достигать |
если не разгонять шину PCI, можно и на метр |
мало! |
можно использовать кэширование и технологии RAID для кардинального повышения производительности и надежности |
раньше были кэширующие Tekram'ы, а сейчас появились и RAID для IDE |
это не работает и вообще не серьезно |
* Стоит заметить, что в случае использования интерфейса Ultra или Ultra Wide SCSI на какчество соединительных кабелей и их длину накладываются дополнительные ограничения, в результате чего максимальная длина соединения может быть существенно снижена.
Чтобы не складывалось впечатление, что IDE это очень плохо и за его использование Вам должно быть стыдно, отметим и положительные качества IDE интерфейса, частично в свете выше приведенной таблицы:
1. Цена. Бесспорно иногда это очень важно.
2. Не всем нужно подключать 4 HDD и 3 CDD. Часто двух каналов IDE более чем достаточно, а всякие там сканеры идут со своими карточками.
3. В корпусе minitower сложно использовать шлейф, длиннее 80см :)
4. IDE HD установить гораздо проще, там всего один jumper, а не 4-16 как на SCSI :)
5. IDE контроллер уже есть у большинства материнских плат
6. У IDE устройств шина всегда 16 бит и для моделей, сравнимых по цене, IDE выигрывает по скорости.
Теперь о цене. Самый простой SCSI на шину ISA стоит около $20, но сейчас такие просто никому не нужны, поэтому можно найти и дешевле. Следующий вариант это контроллер на шине PCI. Простейший вариант FastSCSI стоит около $40. Однако сейчас появилось множество материнских плат, на которых всего за +$70 может быть установлен Adaptec 7880 UltraWideSCSI. Даже у знаменитых ASUS P55T2P4 и P2L97 есть варианты со SCSI. Для UWSCSI карточки цена варьируется от $100 до $600. Также бывают двухканальные (как IDE на Intel Triton HX/VX/TX) контроллеры. Цена их естественно выше. Заметим, что в случае SCSI, в отличие от IDE, где что-то новое придумать сложно, за дополнительные деньги контроллеры могут быть расширены функциями кэш-контроллера, RAID-0..5, hotswap и т.д., поэтому говорить о верхней границе стоимости контроллера не совсем корректно.
И наконец о скорости. Как известно, сегодня максимальная скорость передачи информации по шине IDE составляет 33Мб/с. Для UWSCSI аналогичный параметр достигает 40Мб/с. Основные преимущества SCSI проявляются при работе в мультизадачных средах (ну и в Windows95 немного :). Многие тесты, приведенные под WindowsNT показывают несомненное преимущество SCSI. Пожалуй это самая популярная на сегодня ОС, для которой применение SCSI более чем оправдано. Также могут быть конкретные задачи (связанные, например, с обработкой видео) в которых просто невозможно использование IDE. Про отличия внутренних архитектур, также влияющих на производительность, в этой статье говорить не будем, поскольку там слишком много специальных терминов. Отметим только, что наблюдая за развитием IDE с удивлением замечаем, что он приобретает многие черты SCSI, но, будем надеяться, все-таки совсем они не сольются.
Список литературы
1. Михаил Гук : «Интерфейсы ПК. Справочник» "Питер",1999.
2. А.П. Пятибратов:
«Вычислительные машины, системы и сети»
-М.: , 1999;
3. А.А. Мячев, В.Н. Степанов:
«Персональные ЭВМ и микроЭВМ»
- М.: «Радио и связь», 1998.
4. А.А. Мячев:
«Интерфейсы IBM PC», 1992.
5. Стефан Фойц: «Windows 98 для пользователя»
-К.: Торгово-издательское бюро BHV, 1998;
6. «PC Computing»: «IDE vs SCSI»
November 2003;
7. «PC Magazine»: «Interface IDE»
15 March, 1999;
8. Internet