Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #46, СЕНТЯБРЬ 2004 г.

SCSI vs SATA

Крис Касперски aka мыщъх

Спецвыпуск Xakep, номер #046, стр. 046-030-1


Выбор оптимального интерфейса

Часть рынка жестких дисков и оптических накопителей принадлежит интерфейсу ATA/ATAPI (он же IDE), часть - SCSI. Изменит ли появление SATA расстановку сил?

Соперничество между SCSI- и ATA-интерфейсами идет уже давно. Последние ревизии ATA-стандарта показывают, что по своим функциональным возможностям он вплотную приближается к SCSI, но до полной победы еще далеко. SCSI, изначально создававшийся в соответствии с правилом «правой руки» (закрываем рукой цены и смотрим на товары), прочно обосновался на серверном рынке и уходить с него не собирается. ATA, напротив, задумывался как максимально дешевое решение для однопользовательских маломощных машин и несмотря на все усовершенствования и нововведения последних лет остается идеологически ущербным интерфейсом. Это похоже на попытку переделать Запорожец в Мерседес! С другой стороны, если возможности ATA покрывают твои потребности с головой, зачем платить больше?

SCSI, ATA, ATAPI, IDE, EIDE... В этом ворохе аббревиатур даже матерому специалисту не просто разобраться. Но мы попробуем :).

SCSI

SCSI-устройства имеют единую схему логической адресации, независящую от физической геометрии устройства, и высокоуровневую систему команд (прочитать сектор или группу секторов, начать воспроизведение аудиодиска и т.п.). Получив команду, устройство ставит ее в очередь и освобождает шину, а инициатор запроса (которым может быть как центральный процессор, так и другое SCSI-устройство) переключается на решение другой задачи. Обработав запрос, устройство вновь повторяет захват шины и пересылает данные инициатору, уведомляя его об этом через механизм прерываний. Таким образом, шина эффективно используется несколькими устройствами и время простоя центрального процессора сводится к минимуму.

Электрически SCSI-интерфейс представляет собой либо обыкновенный многожильный кабель, либо оптоволокно. На этот счет существует множество конкурирующих стандартов, подробно рассматривать которые не имеет смысла. Достаточно сказать, что физическая скорость передачи в последних версиях SCSI-стандарта полностью удовлетворяет потребности реально существующих устройств, оставляя солидный задел на будущее. Некоторые из электрических интерфейсов поддерживают длину кабеля до 25 метров и горячую замену устройств без выключения питания. Но утверждение, что все SCSI-диски можно перетыкать «на лету», неверно и чревато смертельными (для дисков) последствиями. Максимальное количество устройств на шине также различно и варьируется от одного электрического интерфейса к другому. В среднем на шину можно повестить 7 или 15 устройств, не сильно теряя в скорости передачи данных.

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

ATA

Уже первая версия стандарта обнаруживает много общих черт со SCSI. Это и интегрированный контроллер, и унифицированный набор команд (пускай не такой богатый, как в SCSI), и возможность совместной работы нескольких устройств на шине. Но здесь нет ни "прозрачной" схемы адресации, ни механизма отложенного выполнения команд, ни, тем более, очереди запросов. И максимальное количество устройств на шине равняется всего двум, причем в каждый момент времени может работать только одно устройство, а другое вынуждено простаивать, ожидая завершения цикла обмена. Передав команду на чтение сектора, процессор непрерывно опрашивает специальный порт, в котором устройство выставляет флаг готовности данных, пословно (!) считываемых процессором через порт ввода/вывода. Впрочем, в однозадачных системах прошлого это не казалось дикостью, ведь переключиться на выполнение другой задачи процессор все равно не мог, поскольку задача была всего одна :).

Содержание  Вперед на стр. 046-030-2