Вот и весь
АрхивРазвернуть аббревиатуру SASI в настоящее время сложно. Возможности SASI были весьма скромными даже по сравнению с первым вариантом SCSI — скорость передачи составляла лишь 1,5 Мбайт/с, интерфейс имел очень ограниченный набор команд.
Помните конец семидесятых годов прошлого столетия, время только-только появившихся 5-дюймовых флоппи, процессоров Motorola 6800 и Intel 8088, модема Hayes, принтера Epson MX-80?.. Нет, это не приступ ностальгии, а всего лишь праздно-риторическое любопытство: честно говоря, я тех времен совершенно не помню, потому что тогда еще находился в стадии проектирования. Тогда же в той стадии находился интерфейс, теперь известный под именем SCSI (Small Computer System Interface).
Детство
Вероятно, фамилия 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 уже окончательно вышел из употребления, базовые принципы получили развитие в новых воплощениях, поэтому имеет смысл рассмотреть их. Шина была 8-разрядной и работала на частоте 5 МГц. Максимальная длина кабеля (с 50-контактными разъемами) не должна была превышать 6 м, поскольку использовалось несбалансированное соединение (SE — Single-Ended, единственный проводник для каждого сигнала). В истоке шины находился хост-адаптер, к которому подключалось до семи устройств (в цепочке, одно за другим). В синхронном режиме (когда устройства создают канал определенной ширины и общаются по нему без подтверждений) потолок скорости находился на уровне 5 Мбайт/с. Но на практике этот режим почти не применялся, а в асинхронном режиме (запрос-ответ) скорость редко достигала 2 Мбайт/с (более реальная цифра — 1,5 Мбайт/с).
На первом и последнем устройствах шины должно было включаться терминирование (в настоящее время большинство SCSI-устройств включает его автоматически, если устройство оказывается крайним), то есть к каждой сигнальной линии подключалось сопротивление для подавления отраженных сигналов. В первоначальном варианте использовалось только пассивное терминирование, при котором линии подключались к пассивному делителю напряжения (между двумя резисторами на пути от источника питания к земле). При таком подключении колебания напряжения в источнике питания (4,25–5,25 В) вели к скачкам напряжения на сигнальных линиях, поэтому позже стало применяться активное терминирование, где линии подключаются через резисторы к стабилизатору с постоянным выходным напряжением (2,85 В). Есть еще особый «продвинутый» тип, наилучший для использования с SE-шиной — FPT (Forced Perfect Termination, принудительное абсолютное терминирование). Здесь в цепь добавляются диоды, что начисто гасит практически любые отраженные сигналы.
Юность
За год до принятия SCSI-1 к X3T9.2 (подразделение ANSI по разработке SCSI) обратилась группа производителей с просьбой сделать стандарт более строгим и подробным (чтобы расширить совместимость и упростить разработку устройств). Вместо того чтобы задерживать принятие стандарта, X3T9.2 отпочковала от себя специальную группу для работы над бумагой CCS (Common Command Set), которая впоследствии обрела большую популярность — многие производители выпустили устройства на ее основе. Одновременно с CCS началась разработка нового стандарта — SCSI-2, который должен был вобрать в себя результаты CCS, а также улучшить производительность и добавить возможностей интерфейсу, устранив при этом лишние опции, мешавшие совместимости. Финальная версия SCSI-2 была одобрена ANSI лишь в 1994 году. В стандарте появилась поддержка CD-ROM-приводов (взамен абстрактных ROM-устройств в SCSI-1), оптических устройств с возможностью записи/перезаписи, сканеров, значительно расширился набор для принтеров и т. д. Пассивные терминаторы остались разрешенными, однако был рекомендован переход на активное терминирование.
Что касается улучшения производительности, здесь появилось два основных нововведения (с которых началась известная путаница с названиями типов SCSI) — интенсивное и экстенсивное: Fast и Wide SCSI. Fast SCSI — это опция, позволяющая увеличить тактовую частоту (а значит, и пропускную способность шины) вдвое — с 5 до 10 МГц. Wide SCSI — опция увеличения разрядности шины с 8 до 16 бит (и даже до 32, правда, до выпуска устройств с 32-разрядным Wide SCSI дело так и не дошло) путем наращивания количества сигнальных линий. Арбитраж шины, команды, статус, сообщения, к сожалению, остались в стандарте 8-разрядными (впоследствии SCSI-3 начал как раз с перехода на 16-разрядные команды и арбитраж). Для Wide SCSI потребовался новый 68-контактный разъем вместо 50-контактного (разъемы совместимы при использовании кабеля A-to-B). Скорость передачи данных возрастает еще вдвое, достигая в пределе 20 Мбайт/с (Fast Wide SCSI).
Кроме того, в SCSI-2 увидели свет и более тонкие хитрости для улучшения производительности. Во-первых, такая замечательная вещь, как организация очереди команд (Command Quequing) — одна из сильных сторон шины SCSI. Command Quequing позволяет отправлять не одну, а сразу несколько (до 128) команд на устройство, а устройство само выбирает последовательность их выполнения таким образом, чтобы оптимизировать свою работу. Во-вторых, метод Scatter/Gather, позволяющий в одном пакете получать/передавать информацию из нескольких (или в несколько) разрозненных страниц памяти, что заметно повышает производительность в ОС, использующих виртуальную память.
Стоит особо отметить попытку движения в сторону сбалансированного соединения (Differential Signaling, позже — HVD, High Voltage Differential Signaling). В отличие от SE, HVD использует для передачи данных не один проводник, а пару — для передачи «нуля» оба проводника пересылают нулевое напряжение, для передачи единицы один из проводников шлет некоторое положительное напряжение, а второй — его отрицательный перевертыш. Получающее устройство воспринимает разницу между напряжениями обоих проводников. Такая схема при высоком напряжении позволяет добиться значительного улучшения качества передачи: длина кабеля может достигать 25 метров даже при высоких частотах шины (например, при 20-МГц шине Fast-20 из SCSI-3, в то время как SE-кабель здесь не может быть длиннее полутора метров). Заметим также, что HVD электрически не совместим с SE из-за значительной разницы напряжений (смешать в одной цепи HVD-устройства с SE- или LVD-устройствами значит сжечь последние). Несмотря на свою эффективность, широкого распространения технология HVD не получила из-за дороговизны реализации (и из-за высокого энергопотребления готовых продуктов) — многим пользователям хватало для их целей и SE-соединений. В результате технология заглохла: цена устройств была слишком высокой, чтобы они пользовались большой популярностью, а отсутствие спроса не позволило производителям расширить масштабы и снизить цену. SE-кабели продолжили свое существование вплоть до конца 1990-х годов.
Зрелость
Опять-таки за год до официального принятия SCSI-2 началась работа над новой версией — SCSI-3. Похоже, что причины окончания разработки одной версии и начала работы над другой в случае SCSI менее всего объясняются техническими и коммерческими мотивами. Они гораздо тривиальнее: нужно же когда-то формально закреплять результат. Разработки же идут своим чередом, последовательно, без остановок и скачков. SCSI-3, целиком не ратифицированный до сих пор (да и неизвестно, произойдет ли это вообще), являет собой развитие и расширение SCSI-2 с добавлением к нему множества новых наборов команд технологий и решений.
В последнем своем воплощении SCSI расцвел и разросся так бурно, что охватить его целиком было бы весьма и весьма сложно. Разработка такого гигантского стандарта заняла бы очень долгое время и потребовала бы уйму усилий множества людей. Причем нетерпеливые производители не пожелали бы ждать долго и начали бы разрабатывать усовершенствования (разумеется, несовместимые между собой), что привело бы если не к краху стандарта, то к громадной неразберихе в индустрии. Этим объясняется изменение стратегии разработки: вместо одного огромного документа SCSI-3 был разделен на множество сравнительно небольших «стандартиков», охватывающих конкретные технологии, протоколы и наборы команд. Над каждой из бумаг работает особая группа. Естественно, это ведет к более быстрому развитию наиболее востребованных частей стандарта, в то время как общая крыша SCSI-3 не дает им отойти от «генеральной линии». Казалось бы, чего еще? — разделяй и властвуй! Но со временем закралось подозрение — а не берет ли SCSI-3 больше, чем может унести? Под крышей стандарта пригрелось уже больше десятка документов (они развиваются и принимаются независимо), относящихся к SCSI и к SCSI-подобным интерфейсам, вроде FireWire и Fibre Channel. Вообще, понятие «стандарт SCSI-3» разбухло изнутри настолько, что сказать теперь «устройство совместимо со SCSI-3», значит не сказать ничего.
Сегодня мы рассмотрим только ту часть SCSI-3, которая непосредственно относится к параллельному интерфейсу. Прежде всего, это документ SPI (SCSI-3 Parallel Interface, «Ultra SCSI»), описывающий физическую часть того, что раньше было принято называть просто SCSI. В рамках его оригинальной версии появилась шина Fast-20, которая посредством удвоения тактовой частоты поднимала пиковую пропускную способность шины до 40 Мбайт/с. Следующая версия, SPI-2 (Ultra2 SCSI), помимо очередного удвоения частоты (Fast-40), ввела ряд принципиальных новшеств, самое заметное из которых — технология LVD. При скорости 40 МГц максимальная длина SE-кабеля составляет всего 75 см (и это для всей цепочки!). Назрела объективная необходимость что-то менять.
И вот принципы разностной передачи сигнала, использованные в отторгнутой в свое время технологии HVD, получили вторую жизнь. LVD представляет собой компромисс между HVD и SE: используется сбалансированная передача данных, однако с низким напряжением (максимальная длина кабеля — 12 м). Электрически технология LVD совместима с SE, на одной шине могут даже находиться и SE-, и LVD-устройства, если последние — многорежимные (LVD/SE multimode). При LVD используются особые терминаторы; кроме того, есть многорежимные LVD/SE-терминаторы, которые при работе шины в режиме SE функционируют как обычные активные. С появлением LVD необходимость в HVD отпала, из-за чего последняя технология и была полностью убрана из стандарта в SPI-3. Время жизни SE так же подошло к концу: скорости шины выше 20 МГц (Ultra SCSI) здесь не поддерживаются.
В следующей версии — SPI-3 (Ultra3 SCSI) — пропускная способность шины снова возросла вдвое (Fast-80DT), но не за счет изменения частоты, а благодаря использованию Double Transition (передача по переднему и заднему фронтам сигнала). Кроме HVD из стандарта были убраны такие рудименты, как SCAM, 32- и 8-разрядная ширина шины (использование последней просто не описано для режима Fast-80). Таким образом, начиная с SPI-3, в SCSI остается поддержка только 16-разрядной шины и требуется использование LVD. Кроме Fast-80DT, в стандарт добавилось еще две важные фичи: CRC (контроль целостности передачи с помощью циклического кода), Domain Validation (проверка окружения на способность работы с заданной скоростью). Кроме того, имеется два косметических улучшения — QAS (Quick Arbitration and Selection) и Packetization. Формально любое устройство, поддерживающее любой набор из этих пяти нововведений, может гордо именоваться Ultra3 SCSI (и быть при этом, возможно, несовместимым с другими Ultra3-устройствами). Во избежание недоразумений в индустрии появилось два коммерческих наименования Ultra3 SCSI — Ultra160 (без двух последних фич) и Ultra160+ (полный вариант). Версия SPI-4 увеличивает тактовую частоту шины до 80 МГц, доводя тем самым пиковую пропускную способность до 360 Мбайт/с (Fast-160, Ultra360). SPI-5 (Ultra640), обещающий 640 Мбайт/с, находится в разработке.
В скором времени мы планируем представить вниманию читателей еще один материал о SCSI, где сравним этот стандарт с Fibre Channel сверху и IDE/ATA снизу, с FireWire и USB 2.0, подробно расскажем о Serial SCSI (разумеется, в сравнении с Serial ATA), постараемся сделать выводы об области применения новейших спецификаций стандарта и перспективах его развития.