Широкое применение винчестеров в качестве устройств долговременного хранения информации началось после выпуска фирмой Shugart Technology (ныне эта компания именуется Seagate Technology, Inc.) диска ST506 размером 5.25 дюйма. Устройство емкостью 5Мбайт использовало для подключения к компьютеру интерфейсную плату ST506, разработанную в конце 70-х годов компанией Western Digital. Для соединения винчестера с интерфейсной платой использовался 34-проводный плоский кабель, к которому можно было подключить два устройства. Для того, чтобы диски можно было адресовать, часть кабеля перекручивалась (подобно кабелю для подключения дисководов). Кроме того, для обмена данными с каждым из дисков использовался отдельный 20-проводный плоский кабель. Крупным недостатком интерфейса ST506 являлось пошаговое перемещение головок (один шаг на каждую команду перемещения), как это до сих пор происходит в дисководах для работы с гибкими дисками. Более новая модель - ST412 - обеспечивала возможность буферизованного поиска (buffered seek), позволяющего одной командой перемещать головки на несколько шагов (например, через весь диск).
Основным преимуществом винчестеров с интерфейсом ST506/ST412 является их низкая стоимость. Почти вся электроника, ответственная за работу диска, располагалась на интерфейсной плате. Управляющие приводом головок сигналы передавались по общему для двух подключаемых к контроллеру устройств 34-проводному кабелю, а обмен данными с контроллером осуществлялся по 20-проводным плоским кабелям прямо в виде последовательности импульсов, считанных с диска или записываемых на него. Разъемы, используемые для подключения, описаны в Приложении 3.
Небольшой набор команд интерфейса ST506/412 затруднял создание дисков с большой емкостью. Почти все диски с таким интерфейсом имели скорость вращения 3600 оборотов в минуту.
Интерфейс ST506 поддерживает два способа модуляции при записи-воспроизведении данных: MFM (Modified Frequency Modulation - модифицированная частотная модуляция) и RLL (Run Length Limited - кодирование с ограничением длины поля записи).
Модуляция MFM
Метод MFM является разновидностью обычной частотной модуляции, широко используемой в радиовещании и связи. Отличие заключается в том, что модифицированная модуляция позволяет обеспечить двухкратное повышение плотности записи данных за счет того, что на диск записываются не все сигналы синхронизации и при записи каждого бита учитывается значение предшествующего бита. За один переход (смену направления) намагниченности можно записать от одного до трех бит данных). Сигналы с головки передаются по кабелю данных в аналоговой форме; данные отделяются от сигналов синхронизации с помощью специального устройства - сепаратора, устанавливаемого на плате контроллера.
Основным преимуществом MFM-модуляции является простая бинарная форма записываемого на диск сигнала. При записи на дорожку использовались 17 секторов по 512 байт каждый. Теоретический предел скорости обмена с дисками, использующими MFM, составляет около 4Мбит/сек
(17секторов*512байт/сектор*8бит*3600об/мин):60сек = 4177920 бит/сек.
Однако реальная скорость обмена в несколько раз меньше, поскольку для таких дисков фактор чередования (Interleave factor) не равен 1. Это было связано с тем, что контроллер не успевал обработать прочитанные данные до того, как головка перемещалась к следующему сектору. При факторе чередования 1:1 порядок следования секторов на дорожке естественный: 1, 2, 3,...16, 17. При факторе чередования 3:1 секторы на диске имеют следующий порядок: 1, 7, 13, 2,..., 11, 17. Первое число в обозначении коэффициента чередования указывает количество оборотов диска, требуемых для полного прочтения или записи одной дорожки. За счет кэширования записи можно было установить для дисков ST506 фактор чередования 1:1.
Многие еще наверное не забыли программу Calibrate из комплекта Norton Utilities, которая оптимизировала работу дисков путем подбора фактора чередования, наиболее соответствующего скорости вашего диска и контроллера.
Модуляция RLL
Другой способ модуляции (2,7 RLL или просто RLL), предложенный компанией IBM в 1986 году, использует перекодирование исходной информации с введением избыточности. Метод RLL преобразует данные в шестнадцатибитовые слова, позволяющие записывать за один переход состояния намагниченности диска от 2 до 7 бит (эти цифры и включены в название метода). Использование RLL-модуляции предъявляет более высокие требования к качеству поверхности диска и равномерности его вращения. Кроме того, усилители каналов считывания-записи должны иметь несколько иные характеристики, по сравнению с MFM-модуляцией. Винчестеры с интерфейсом ST506/412, использующие метод RLL, как правило, имеют в своем обозначении суффикс R (например, ST157R). На одну дорожку диска можно записать 26 секторов по 512 байт, что дает теоретическую возможность обмена со скоростью (512*26*8*3600):60=6489760бит/сек.
Метод RLL был развит впоследствии до возможности записи от 3 до 9 бит за один переход намагниченности (3,9 RLL, ARLL, ERLL), что позволило записывать на дорожку 31 сектор и обеспечило теоретический предел скорости обмена с диском 7618560бит/сек.
Диски RLL можно без опаски подключать к контроллерам MFM (правда с потерей емкости), обратная же операция в общем случае некорректна. Многие, наверное, помнят такой метод "увеличения" размера диска, практиковавшийся несколько лет назад, - однако он не позволяет обеспечить достаточную надежность хранения данных.
Сегодня диски с интерфейсом ST506/412 можно встретить только в очень старых компьютерах.
По мере роста скорости работы компьютеров интерфейс ST506 перестал удовлетворять всем требованиям и в 1985 году был разработан новый стандарт - ESDI, который, по сути, являлся простым разширением возможностей своего предшественника. Кабели, используемые в спецификации ESDI, внешне не отличаются от кабелей ST506, однако сигналы по ним передаются другие (см. Приложение 3). Если вы, пользуясь сходством кабелей, подключите (по ошибке или специально) винчестер ST506/412 к контроллеру ESDI (или наоборот), результаты могут быть самыми плачевными. Длина используемых в интерфейсе ESDI кабелей могла достигать 9 футов (3 метра), сигналы передавались главным образом как синфазные (с общей землей), за исключением данных и синхронизации, для передачи которых использовался дифференциальный метод. Данные передавались через последовательную линию порциями по 16 бит, сопровождаемых битом четности. Обеспечивалась также возможность подтверждения передачи данных.
Сепаратор в соответствии с новой спецификацией устанавливался непосредственно на плате винчестера и по кабелю данных передавались уже не аналоговые сигналы, а реальные данные в цифровой форме, что позволяло подобрать параметры сепаратора к конкретному типу устройства, поскольку искажения сигналов в кабеле уже не имели значения. Такой метод повышал надежность передачи данных и увеличивал скорость обмена с контроллером до 10Мбит/сек за счет передачи по кабелю цифровых сигналов. Кроме того, интерфейс ESDI обеспечивал возможность использования винчестеров большой емкости и оптических накопителей.
Интерфейс ESDI обеспечивал три сигнала выбора устройства, что позволяло подключать к нему до 7 накопителей. Сигналы выбора головки позволяли напрямую адресовать до 16 головок, однако специальная команда Select Head Group позволяла использовать до 256 головок (16 групп по 16 головок в каждой).
Первоначальный вариант интерфейса SCSI (Small Computer System Interface) был предложен в конце 70-х годов Shugart Associates под названием SASI (Shugart Associates System Interface) взамен разработанной компанией IBM системной шины IPI (интеллектуальный периферийный интерфейс). После неудачи в конкурентной борьбе с фирмой IBM этот интерфейс был предложен комитету ANSI X3T9.2 как интерфейс нижнего уровня под названием SCSI. В 1984 году этот комитет закончил разработку спецификации SCSI-1 и в 1986 году она была опубликована в окончательном виде. Этот интерфейс обеспечивал подключение широкого класса периферийных устройств, таких как винчестеры, принтеры, сканеры, стриммеры, приводы CD-ROM и др. SCSI является интерфейсом системного, а не приборного уровня. В отличие от ST506/412 и других приборных интерфейсов с последовательной передачей информации, SCSI передает биты данных параллельно, что обеспечивает существенное повышение скорости обмена данными между устройством и хост-адаптером.
Интерфейс SCSI используется не только в IBM-совместимых компьютерах, но и семействах Macintosh, SPARC, VAX и др. Одна из причин такого широкого распространения интерфейса SCSI заключается в том, что он не накладывает никаких ограничений на связь между контроллером и периферийным устройством. Шину SCSI можно использовать для связи компьютера с несколькими периферийными устройствами (как внешними, так и внутренними). Более того, допускается совместное использование одного периферийного устройства несколькими компьютерами, подключенными к общей шине SCSI (правда это значительно сложнее сделать, чем написать, но об этом разговор особый). Подключаемые к шине SCSI устройства могут играть роль ведущих (Initiator) или ведомых (Target), при этом одно и то же устройство может быть ведомым в одних случаях и ведущим - в других. Такое разделение функций устройств позволяет организовать передачу данных с одного периферийного устройства на другое (например, резервное копирование данных с винчестера на стриммерную кассету). Обмен между устройствами по магистрали SCSI происходит в соответствии с протоколом высокого уровня и адресация осуществляется на уровне логических, а не физических (как в ESDI) блоков. Программы для работы со SCSI-устройствами не используют физические характеристики конкретного устройства (число головок, цилиндров и т.п.), а имеют дело с логическими блоками, что дает возможность работы фактически со всеми блочными устройствами.
Для подключения устройств SCSI используется кабель (как правило плоский) с 50-контактными разъемами (Приложение 3). Возможны как синфазная, так и дифференциальная (с помощью "токовой петли") передача данных по кабелю; при синфазной передаче длина кабеля может достигать 6м, при дифференциальной - 25м. Для гарантированной передачи сигналов по магистрали SCSI линию требуется согласовывать с помощью терминаторов (набора резисторов), устанавливаемых по обоим концам шины SCSI.
Спецификация SCSI предусматривает подключение к шине до восьми устройств, однако с учетом того, что каждое устройство может содержать 8 логических блоков, а каждый блок - 256 подблоков, возможности расширения являются фактически неограниченными. Каждое подключаемое к шине SCSI устройство имеет свой идентификатор, устанавливаемый с помощью перемычек или переключателей непосредственно в устройстве. Идентификаторы позволяют адресовать устройства и задают их приоритет (чем больше значение идентификатора, тем выше приоритет устройства).
На протяжении последних лет интерфейс SCSI был существенно расширен - появились спецификации Fast-SCSI и Wide-SCSI, обеспечивающие более высокую скорость обмена данными с устройствами SCSI. В настоящее время интерфейс SCSI используется в основном в высокопроизводительных системах, предназначенных для коллективного использования (диски файловых серверов, сканеры и т.д.).
Спецификация IDE/ATA была предложена в качестве недорогой альтернативы интерфейсам ESDI и SCSI для персональных компьютеров семейств IBM PC XT/AT. В результате сотрудничества компании Western Digital с Compaq Computer Corporation был разработан интерфейс IDE (Integrated Drive Electronics), называемый также АТА (AT attachment). Первые промышленные устройства на базе IDE/ATA были выпущены в 1986 году. Интерфейс был стандартизован (ANSI X3T9.2/90-143) в 1990г. как ATA (AT Attachment). Основным отличием нового интерфейса была реализация большинства функций контроллера непосредственно на плате дискового накопителя. Такой подход упростил и удешевил хост-адаптеры, используемые для подключения винчестеров к компьютеру, и позволил обеспечить высокий уровень совместимости устройств разных фирм.
Используемые устройствами IDE адреса ввода/вывода совпадают с адресами ST506/412, но функции контроллера перенесены на плату управления приводом диска и головок винчестера. Информация о геометрии диска (число головок, цилиндров и секторов) хранится в самом устройстве. Зачастую в BIOS передаются логические параметры диска, не совпадающие с его физическими параметрами, т.е. используется трансляция, что позволяет устанавливать винчестеры в компьютеры со старыми BIOS, не обеспечивающими возможность произвольной установки параметров устройства (в большинстве современных реализаций BIOS такая возможность поддерживается как тип 47 - User Defined).
Базовый набор команд интерфейса IDE полностью соответствовал набору команд контроллера WD1002/1003 компании Western Digital, который был использован в компьютере IBM PC AT. При стандартизации интерфейса IDE к 12 базовым командам было добавлено еще столько же. Перенос большинства функций контроллера на плату управления позволяет несколько повысить скорость обмена данными с диском. Как правило диски IDE имеют небольшую встроенную кэш-память (до 256Кб) и позволяют работать с фактором чередования 1:1 (дорожка может быть прочитана целиком за один оборот диска).
Хост-адаптер для подключения дисков IDE зачастую устанавливается на системной плате (Mother board) или совмещается с контроллером дисководов и портами ввода-вывода (последовательными и параллельным) на специальной, вставляемой в гнездо расширения, плате (мультикарте, как ее зачастую называют). Подключение устройств к хост-адаптеру осуществляется с помощью 40-проводного плоского кабеля (см. Приложение 3), к которому можно присоединить два винчестера. Для корректной адресации устройств один из винчестеров должен быть установлен в режим Master (ведущий), другой - в режим Slave (ведомый). Режим работы диска задается с помощью перемычек, расположенных как правило около сигнального разъема винчестера.
В таблице приведены сравнительные характеристики различных интерфейсов, используемых для подключения дисковых устройств. Интерфейсы ST506/412 и ESDI в современных компьютерах уже практически не используются; информация о них приведена лишь для сравнения их возможностей со SCSI и IDE.
Таблица 1.
Параметр | ST506/412 MFM | ST506/412 RLL | ESDI | SCSI | IDE/ATA |
Максимальная скорость обмена | 5Мбит/сек | 7.5Мбит/сек | 10/24Мбит/сек | 24/40МБайт/сек | 10МБайт/сек |
Максимальное количество устройств | 4 | 4 | 7 | 56 | 2 |
Максимальное количество устройств в DOS | 2 | 2 | 2 | 36 | 2 |
Подключение других устройств | - | - | - | + | - |
Число секторов на дорожке | 17 | 26 | 32-36 | Не определено | Не определено |
Загрузка процессора | Все операции ввода-вывода осуществляются с использованием процессора | Частичное использование | |||
Многозадачный ввод-вывод | - | + | + - [Современные расширения IDE/ATA поддерживают многозадачный ввод-вывод] | ||
Автоматическая коррекция ошибок | - | - | + | + | + |
Низкоуровневое форматирование | + | + | + | - | - |