Иллюстрированный самоучитель по теории операционных систем

Запоминающие устройства прямого доступа

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

Набор команд контроллера приведен в табл. 9.10.

Таблица 9.10. Команды контроллера ST506, цит. по [chip.ms.mff.cuni.cz IDE].

Код Описание PC SC SN CY DH
90h Диагностика привода         D+
50h Форматировать дорожку       V V
20h Чтение секторов с повтором   V V V V
21h Чтение секторов   V V V V
40h Проверка секторов с повтором   V V V V
41h Проверка секторов   V V V V
1Xh Возврат к дорожке         D
7Xh Подача головки       V V
30h Запись секторов с повтором   V V V V
31h Запись секторов   V V V V
  • V– используется значение регистра
  • D – используется только бит выбора диска
  • D+ – независимо от бита выбора диска, реагируют оба диска

Контроллеры жестких дисков ESDI, IDE, EIDE

Дальнейшее совершенствование ST506 шло в направлении переноса функции контроллера на сам жесткий диск. Первым шагом стал интерфейс ESDI, предложенный фирмой IBM в 1985 году. В ESDI модулирование сигнала выполнялось не контроллером, а платой, установленной на диске. Это позволило, во-первых, использовать жесткие диски со схемами модуляции, отличными от МЧМ и RLL и, во-вторых, увеличить допустимую длину кабелей до трех метров. Контроллер ESDI по регистрам и набору команд был полностью совместим с ST506/412, но обеспечивал работу с дисками большей емкости и большей производительности.

Следующий, более радикальный, шаг был сделан в следующем году фирмами Western Digital и Compaq, предложившими перенести весь контроллер на жесткий диск. Соответствующий конструктив был назван IDE (Integrated Drive Electronics – интегрированная на приводе электроника).

40-жильный плоский кабель IDE представляет собой, фактически, расширение шин адреса и данных ISA. По нему передаются 16 бит данных и пять линий адреса. Первые две линии адреса выбирают группу регистров – контрольный или командный блок регистров, расположенных по тем же адресам шины ISA, что и соответствующие регистры ST506. Последние три линии выбирают один из регистров соответствующей группы и через линии данных кабеля подключают его к шине данных ISA.

IDE, как и ST506, допускает подключение двух жестких дисков, Каждый из дисков имеет свой контроллер и свои блоки регистров. Когда ЦПУ производит запись в эти регистры, она происходит в регистры обоих контроллеров. Однако на запросы чтения и, тем более, исполнения команды откликается только тот контроллер, который выбран регистром он. Эта весьма своеобразная архитектура позволила сохранить полную программную совместимость с контроллером ST506 при полном же изменении конструктива. Основным недостатком этой архитектуры является тот печальный факт, что пока один диск отрабатывает команду или передает данные, обращения ко второму диску невозможны.

IDE несколько позднее получил статус стандарта ANSI под названием ATA (AT Attachment– [интерфейс] присоединения к IBM PC/AT) [www.t13.org], и до сих пор является основным способом подключения жестких дисков к настольным компьютерам и иногда даже к маломощным серверам, причем не только на основе процессоров х86, но и PowerMac, SPARCStation и др.

Современные версии стандарта поддерживают обмен 16-разрядными данными (при нормальной отработке команды код ошибки не нужен, а прекомпенсация современными контроллерами вообще не используется, поэтому для данных можно использовать регистры 0x1 FO и 0x1 F1, образующие при этом единый 16-разрядный регистр), автоидентификацию геометрии и других параметров жестких дисков, логическую адресацию блоков (LBALogical Block Addressing, когда регистры SN, CY и 4 младших бита он образуют линейный 28-битный адрес сектора), работу в режиме ПДП и передачу данных со скоростями до 60 Мбит/с [Гук 2000, citforum.ukrpak.net IDE, PC Guide IDE, www.t13.org ].

Расширение протокола ATAPI (ATA Packet Interface) пакетный интерфейс ATA предусматривает также возможность управления недисковыми устройствами (CD-ROM, стриммерами, магнитооптическими дисками) путем передачи через регистр данных 12-байтовых блоков команд, аналогичных командам SCSI.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.