Интерфейсы накопителей на жестких магнитных дисках (НЖМД)

Скачать доклад: Интерфейсы накопителей на жестких магнитных дисках (НЖМД)

В настоящее время имеется несколько основных стандартов на интерфейсы для ПЭВМ и мини-ЭВМ, разработанных различными фирмами: ST506/412 - разработан фирмой Seagate Technology, применялся в ранних моделях IBM PC/AT, имеет скорость передачи данных 0,6 Мбайт/с при MFM-кодировании и 0,9 Мбайт/с при RLL-кодировании;

ESDI (Enhanced Small Device Interface) - разработан по инициативе фирмы Maxtor, в настоящее время вытеснен с рынка персональных компьютеров в результате жесткой конкурентной борьбы с интерфейсами IDE и SCSI;

IDE (Integrated Drive Electronics) - разрабатывается под контролем ANSI и по спецификации ANSI носит название ATA, ATA-2, ATA-3, имеет скорость передачи данных до 16,5 Мбайт/с;

SCSI (Small Computer System Interface) - универсальный интерфейс, был предложен фирмой Shugart Associates и в дальнейшем разрабатывался под контролем ANSI, имеет скорость передачи данных до 40 Мбайт/с.

IPI (Intelligent Peripherial Interface) - применяется в универсальных вычислительных машинах, имеет скорость передачи данных до 10 Мбайт/с, из сферы ПЭВМ и файл-серверов вытеснен более простым и дешевым интерфейсом SCSI.

Интерфейс ESDI

В интерфейсе ST412 по кабелю данных передавались необработанные сигналы, представляющие из себя смесь битов синхронизации и данных. Разделение этих битов производилось схемами, находящимися в адаптере. При этом специальные схемы фазовой автоподстройки частоты и генератора, управляемого напряжение, следили за изменением фазы входных сигналов и соответствующим образом подстраивали схемы разделения.

В интерфейсе ESDI функции разделения данных перенесены непосредственно в накопитель. Это изменение дает два основных преимущуства: во-первых, уменьшение вероятности искажения сигнала в результате передачи его по кабелю, а во-вторых, появилась возможность подстраивать сам разделитель данных под характеристики дисковода и носителя.

ESDI - универсальный помехоустойчивый интерфейс, который предназначен для работы с периферийными устройствами любого типа.

Спецификации ESDI определяют логический и физический интерфейс между контроллером и ПУ, но не определяют ни способ передачи данных между контроллером и процессором, ни способ записи информации на внешнем устройстве.

Подключение внешних устройств в интерфейсе ESDI:

                         Шина управления
        г=========================T======= = = ==========¬
        ¦                 --------¦------¬       --------¦------¬
        ¦                 ¦ Устройство 1 ¦  ...  ¦ Устройство N ¦
        ¦                 L-------T-------       L-------T-------
 -------¦-----¬  Шина данных      ¦                      ¦
 ¦ Контроллер ¦===================-                      ¦
 ¦            ¦  Шина данных                             ¦
  ¦    ESDI    ¦==========================================-
 L------T------
        ¦        Шина компьютера
= = ====¦================================ = =

Интерфейс IDE

Интерфейс IDE был разработан в качестве недорогой альтернативы интерфейсам ESDI и SCSI. Отличительная особенность этого интерфейса - реализация функций контроллера в накопителе. При этом плата, которая является промежуточной между системной шиной ПК и НЖМД представляет собой довольно простое устройство, содержащее дешифратор базовых адресов контроллера и формирователи сигналов интерфейса. Интерфейс позволяет подключать один или два НЖМД.

Объем одного диска не может превышать 504 Mb.

НЖМД подключается к адаптеру одним 40-жильным кабелем:

                     ----------¬  ----------¬
                     ¦ НЖМД N1 ¦  ¦ НЖМД N2 ¦
                     L----T-----  L----T-----
                          ¦  Шина IDE  ¦
                          ¦============-
                          ¦
                   -------¦------¬
                   ¦ Адаптер IDE ¦
                   L------T-------
                          ¦
         Шина компьютера  ¦
   = = ===================¦======== = =

Примечание: НЖМД N1 называют "ведущим" (Master), НЖМД N2 "ведомым" (Slave); поскольку оба накопителя подключены к одному и тому же кабелю, номер накопителя задается переключателями на самом накопителе. При установке второго накопителя для наращивания дисковой памяти ПЭВМ необходимо внимательно изучить инструкцию, поставляемую фирмами - поставщиками комплектующих вместе с накопителем (на заводе-изготовителе переключатели могут быть установлены в положение "Master").

Интерфейс Enhanced IDE (Fast ATA) позволяет подключать до 4-х устройств различных типов (накопителей на жестких или оптических дисках) емкостью более 504 Мбайт каждое (на данный момент в широкой продаже имеются диски с интерфейсом EIDE емкостью 4Gb).

Интерфейс SCSI

Интерфейс SCSI определяет шину данных между центральным процессором и несколькими ВЗУ, каждое из которых имеет свой собственный контроллер.

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

   ---------------¬ ---------------¬          ---------------¬
   ¦ Устройство 1 ¦ ¦ Устройство 2 ¦   ...    ¦ Устройство N ¦
   L------T-------- L------T--------          L-------T-------
          ¦                ¦                          ¦
   -------¦-------¬ -------¦-------¬          --------¦------¬
   ¦ Контроллер 1 ¦ ¦ Контроллер 2 ¦   ...    ¦ Контроллер N ¦
   L------T-------- L------T--------          L-------T-------
          ¦                ¦        Шина SCSI         ¦
          L================+==========================-
                           ¦
                    -------¦-------¬
                    ¦ Адаптер SCSI ¦
                    L------T--------
       Шина компьютера     ¦
   = = ====================¦============ = =

Интерфейс SCSI предусматривает передачу данных по параллельной 8-разрядной шине со скоростью до 4 Мбайт/с, интерфейс SCSI-2 - по 8 или 16-разрядной шине (со скоростями 10 и 20 Мбайт/с соответственно. Интерфейс SCSI-3 разрабатывается и будет позволять передавать данные со скоростью 40 Мбайт/с.

ФУНКЦИИ АДАПТЕРА НЖМД С ИНТЕРФЕЙСОМ ST412

Адаптер жесткого диска позволяет:

1) поддерживать формат данных на диске, совместимый с форматом данных IBM;

2) поддерживать не только стандартные, но также и задаваемые пользователем типы НЖМД;

3) генерировать прерывание IRQ14;

4) осуществлять поиск требуемых циллиндров одновременно на двух НЖМД (если головки находятся не на требуемом циллиндре, то инициируется его поиск, а затем выполняется чтение или запись информации);

5) осуществлять предкомпенсацию записываемых данных в соответствии с параметрами подключенных НЖМД;

6) производить автоматическое переключение головок накопителя (при обнаружении конца дорожки во время мультисекторной передачи адаптер выбирает следующую дорожку, а при обнаружении конца циллиндра - следующий циллиндр, после чего продолжается выполнение команды);

7) обнаруживать ошибки в считываемой информации и корректировать пакеты ошибок длиной до 11 бит;

8) управлять последовательностью размещения секторов на дорожке (чередованием);

9) производить обмен данными с ЦП и ОЗУ в режиме программного ввода-вывода;

10) производить внутреннюю диагностику аппаратуры адаптера.

Получив команды и данные от ЦП через программно-доступные регистры, адаптер НЖМД начинает выполнять операцию. Передача в ОЗУ компьютера считываемых данных, а также прием из ОЗУ записываемых данных происходит через буферную память адаптера НЖМД, необходимую для согласования временных параметров обмена данными между НЖМД и системной шиной, а также для коррекции информации (при записи информации на диск формируется циклический избыточный код контроля ошибок, который приписывается в конец каждого поля идентификатора сектора и каждого поля данных).

ПОРТЫ ВВОДА-ВЫВОДА

Регистр данных 1F0h испльзуется при выполнении операции чтения или записи сектора в программном режиме ввода-вывода. Этот регистр недоступен, пока не начнется операция чтения или записи.

Передача данных осуществляется 16-разрядными словами.

Регистр ошибок 1F1h доступен только по чтению. Он определяет состояние адаптера после выполнения операции. Состояние этого регистра действительно:

1) после выполнения команды, если установлен бит "Error" в регистре состояния;

2) после выполнения команды "Диагностика" или после выполнения внутренней диагностики адаптера по системному сбросу.

Коды регистра ошибок в диагностическом режиме: 01h - нет ошибки, 02h - ошибка адаптера, 03h - ошибка буфера сектора, 04h ошибка аппаратуры вычисления контрольных кодов, 05h - ошибка процессора.

Значения битов регистра ошибок после выполнения команды (устанавливаются в 1 при наличии соответствующей ошибки):

бит 0 - не найден адресный маркер сектора;
бит 1 - при выполнении команды "Рекалибровка" не найдена нулевая дорожка;
бит 2 - аварийное прекращение выполнения команды;
бит 3 не используется;
бит 4 - сектор с заданными координатами (циллиндр, головка, сектор) не найден;
бит 5 не используется;
бит 6 - наличие некорректируемой ошибки данных;
бит 7 - в идентификаторе сектора обнаружена метка дефектного сектора.

В регистр стартового циллиндра предкомпенсации 1F1h (доступный только для записи) заносится уменьшенный в 4 раза по отношению к действительному номер циллиндра, начиная с которого адаптер осуществляет запись данных с предкомпенсацией.

В регистр счетчика секторов 1F2h заносится количество секторов, которое должно быть считано или записано. Значение этого регистра уменьшается на 1 при обработке каждого сектора. При мультисекторном считывании сектора долны располагаться на диске последовательно друг за другом (т.е. область данных должна быть непрерывной).

Внимание! При записи 0 в этот регистр происходит обработка 256 секторов.

Этот регистр доступен для считывания - в случае возникновения ошибки при выполнении операции чтения или записи в этом регистре будет находиться число необработанных секторов.

В регистр номера сектора 1F3h загружается стартовый номер сектора при операциях чтения-записи. После обработки каждого сектора в этот регистр заносится номер следующего сектора, подлежащего обработке.

Регистр доступен для чтения/записи. После выполнени команды он содержит номер последнего обработанного сектора.

Регистры младшего (1F4h) и старшего (1F5h) байтов номера циллиндра определяют стартовый циллиндр для выполнения команды.

Внимание! В регистре старшего байта используются только 2 младших разряда.

Регистр доступен для чтения/записи. После выполнени команды он содержит текущий адрес циллиндра.

Биты регистра выбора НЖМД и номера головки 1F6h (доступного для чтения/записи) имеют следующие значения:

биты 0-3 - номер головки;

бит 4 - выбор НЖМД (1 или 2);

биты 5 и 6 - размер сектора (всегда используется двоичный код 10, соответствующий размеру физического сектора 512 байт);

бит 7 не используется.

Регистр состояния 1F7h, доступный только для чтения, отображает состояние адаптера и НЖМД.

Значения битов регистра состояния (возникновение определенного состояния индицируется установкой соответствующего бита в 1):

бит 0 - при выполнении команды произошла ошибка (этот бит сбрасывается при поступлении следующей команды);

бит 1 - сигнал "Index" активен;

бит 2 - индицирует, что при считывании с диска имела место ошибка, но данные были успешно скорректированы;

бит 3 - имеется запрос на обмен данными с буфером в ОЗУ;

бит 4 - индицирует, что головки чтения-записи завершили поиск заданного сектора;

бит 5 - неисправность накопителя;

бит 6 - НГМД готов к выолнению операций чтения, записи или поиска;

бит 7 - НГМД "занят", ему нельзя передавать команды или данные, нельзя считывать содержимое регистров (во избежание получения ложных данных).

Регистр команд 1F7h используется для загрузки выполняемой команды (загрузка команды должна производиться только после того, как подготовлены и записаны в регистры 1F1h-1F6h все необходимые для ее выполнения даннные).

Регистр управления 3F6h доступен только для записи. Значения битов этого регистра следующие:

бит 0 не используется;

бит 1 - разрешение прерывания (0 - разрешено, 1 - запрещено);

бит 2 - сброс адаптера (сброс происходит при установке этого бита в 1);

бит 3 - разрешение использования бита 3 для выбора головки (0 - запрет, 1 - разрешение);

биты 4-7 не используются.