Контроллеры
Протокол команд SCSI
В терминологии SCSI взаимодействие идет между инициатором и целевым устройством. Инициатор посылает команду целевому устройству, которое затем отправляет ответ инициатору.
Команды SCSI посылаются в виде блоков описания команды (англ. Command Descriptor Block, CDB ). Длина каждого блока может составлять 6, 10, 12 или 16 байт. В последних версиях SCSI блок может иметь переменную длину. Блок состоит из однобайтового кода команды и параметров команды.
После получения команды целевое устройство возвращает значение 00h в случае успешного получения, 02h в случае ошибки или 08h в случае, если устройство занято. В случае, если устройство вернуло ошибку, инициатор обычно посылает команду запроса состояния. Устройство возвращает Key Code Qualifier (KCQ) .
Все команды SCSI делятся на четыре категории: N (non-data) , W (запись данных от инициатора целевым устройством), R (чтение данных) и B (двусторонний обмен данными). Всего существует порядка 60 различных команд SCSI, из которых наиболее часто используются:
- Test unit ready - проверка готовности устройства, в т.ч. наличия диска в дисководе.
- Inquiry - запрос основных характеристик устройства.
- Send diagnostic - указание устройству провести самодиагностику и вернуть результат.
- Request sense - возвращает код ошибки предыдущей команды.
- Read capacity - возвращает емкость устройства.
- Format Unit
- Read (4 варианта) - чтение.
- Write (4 варианта) - запись.
- Write and verify - запись и проверка.
- Mode select - установка параметров устройства.
- Mode sense - возвращает текущие параметры устройства.
ATA
Спецификация 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-проводного плоского кабеля, к которому можно присоединить два винчестера. Для корректной адресации устройств один из винчестеров должен быть установлен в режим Master (ведущий), другой - в режим Slave (ведомый). Режим работы диска задается с помощью перемычек, расположенных как правило около сигнального разъема винчестера.
Перемычки для установки режима Master/Slave
Современные реализации ATA/IDE
Предложенный в конце 80-х годов интерфейс ATA (AT Attachment) , известный также под названием IDE (Integrated Drive Electronics) очень быстро завоевал широкую популярность среди производителей и пользователей персональных компьютеров. Основными причинами быстрого и широкого распространения нового интерфейса послужили невысокая цена устройств, простота их установки и эксплуатации, а также высокий уровень совместимости устройств IDE. Спецификация АТА уступает по скорости обмена с дисками и ряду других параметров интерфейсу SCSI, однако для большинства пользователей производительность играет меньшую роль, по сравнению с совместимостью, простотой и стоимостью устройств.
Ограниченность АТА
Первоначальная версия стандарта IDE обеспечивала возможность подключения к компьютеру четырех винчестеров и позволяла обмениваться данными с диском на скорости до 10Мбайт/сек, однако реальная скорость ограничивалась прежде всего возможностями самого винчестера. Подключение четырех устройств, предусмотренное спецификацией IDE, в компьютерах семейства IBM PC AT, в спецификации ATA/IDE реализовано не было. Кроме того, совместное использование стандарта ATA и программного интерфейса Int 13 BIOS ограничивало размер дисковых устройств 528Мб. Природу этого ограничения, связанную с форматами чисел, используемых для адресации головок, секторов и цилиндров винчестера ( CHS -адрес) в стандарте IDE и BIOS, можно понять из приведенной ниже таблицы и рисунка 3, иллюстрирующего взаимодействие операционной системы с диском IDE.
BIOS | IDE | Результат | |
---|---|---|---|
Максимальное число секторов на дорожке | 63 | 255 | 63 |
Максимальное число головок | 255 | 16 | 16 |
Максимальное число цилиндров | 1024 | 65536 | 1024 |
Максимальный размер диска | 8.4Гб | 136.9Гб | 528Мб |
Взаимодействие диска IDE с операционной системой.
Другим существенным ограничением стандарта IDE/ATA является невозможность подключения к контроллеру IDE каких-либо устройств, за исключением винчестеров.
Присущие интерфейсу IDE/ATA ограничения тормозили развитие недорогих компьютерных систем, рассчитанных на массового пользователя, в связи с чем целый ряд фирм предпринял попытки расширения возможностей классического IDE. Наибольших успехов на этом пути добилась компания Western Digital, разработавшая спецификацию Enhanced IDE (EIDE) , позволяющую использовать диски, размер которых превышает 528 Мб, и обеспечившую реальную возможность подключения к компьютеру до четырех устройств IDE (не только винчестеров, но и приводов CD-ROM или стриммеров).
Другим интересным вариантом развития интерфейса IDE является технология Fast ATA, разработанная компанией Seagate Technology при поддержке фирмы Quantum. Эта технология направлена в первую очередь на повышение скорости обмена данными с дисковыми устройствами и не поддерживает возможность подключения CD-ROM или стриммеров, но обеспечивает более высокий уровень совместимости за счет соответствия широко распространенным промышленным стандартам.
Enhanced IDE
Технология Enhanced IDE компании Western Digital была разработана в результате анализа потребностей современного рынка ПК. В 1984 году компания Western Digital создала контроллеры дисководов ( WD1002 ) и винчестеров ( ST506 ), которые были использованы фирмой IBM при разработке компьютера IBM PC AT. Успех архитектуры АТ привел к значительному расширению рынка IBM -совместимых ПК и сделал контроллеры Western Digital стандартом de facto.
В процессе становления рынка персональных компьютеров фирма Western Digital пришла к выводу о необходимости интеграции электроники контроллера АТ и дискового устройства. В результате сотрудничества с Compaq Computer Corporation был разработан интерфейс IDE (Integrated Drive Electronics) , называемый также АТА (AT Bus attachment) . Первые промышленные устройства на базе IDE/ATA были выпущены в 1986 году.
Продолжая лидировать в сфере IDE -устройств, компания Western Digital предложила расширение интерфейса IDE. Новая спецификация - Enhanced IDE повышает скорость обмена с диском, допускает применение более скоростных дисков и обеспечивает возможность установки в компьютере до четырех устройств IDE. Кроме того, Enhanced IDE позволяет подключать к контроллеру не только винчестеры, но и другие устройства (приводы CD-ROM, стриммеры), поддерживающие спецификацию ATAPI (AT Attachment Packet Interface) . Эта спецификация определяет интерфейс с приводами CD-ROM и другими недисковыми устройствами, позволяющий использовать стандартные контроллеры и кабели. Стандарт ATAPI получил широкую поддержку среди производителей CD-ROM -устройств и разработчиков операционных систем, что еще более расширило сферу распространения интерфейса IDE/ATA.
Спецификация EIDE позволяет избавиться от целого ряда ограничений, присущих интерфейсу IDE/ATA. Такое расширение обеспечивает существенный рост возможностей устройств долговременного хранения информации без роста цен, усложнения использования и потери совместимости. Ограничения, присущие IDE, по сравнению с другими интерфейсами (такими, как SCSI ) не угрожают доминированию IDE на современном рынке недорогих систем. Однако повышение производительности процессоров, разработка новых ОС и высокие запросы современных приложений к дисковому пространству привели к тому, что стандарт IDE уже не может удовлетворять всем современным требованиям. Существенно и то, что стандартный интерфейс IDE менее гибок и более ограничен по сравнению со SCSI:
- IDE поддерживает только два винчестера, а SCSI обеспечивает возможность подключения большого количества блочных устройств различных типов (принтеры, CD-ROM, стриммеры и др.);
- размер дисков IDE не может превышать 528Мб, поскольку для доступа к диску используется интерфейс Int 13 BIOS, тогда как SCSI не ограничивает размер диска;
- IDE обеспечивает скорость обмена с диском 2-3 Мб/сек, а SCSI - 10 или 20Мб/сек (Fast/Wide) .
Технология Enhanced IDE позволяет избавиться от основных ограничений стандарта IDE/ATA:
- предельный размер диска 528Мб;
- малая скорость обмена с диском;
- поддержка только двух устройств;
- невозможность подключения приводов CD-ROM и стриммеров.
Компоненты технологии EIDE
Как показано на рисунке, технология Enhanced IDE включает в себя четыре основных компоненты, реализуемые совместно в периферийных устройствах, контроллерах EIDE, BIOS и операционной системе:
- Использование винчестеров размером более 528Мб. Эта возможность обусловлена внесенными в BIOS изменениями, позволяющими адресовать большие диски. Для работы с дисками более 528Мб требуется поддержка со стороны винчестера, BIOS и операционной системы. Винчестер должен поддерживать спецификацию ATA (этому требованию удовлетворяет большинство современных винчестеров). BIOS также должна поддерживать спецификацию ATA ; большинство производителей системных плат и разработчиков BIOS уже поддерживают этот режим. Может потребоваться поддержка работы с большими дисками и со стороны операционной системы. Windows 3.1 не полностью соответствует ATA, поэтому приходится использовать специальные драйверы (Windows "32-bit disk access"), обычно поставляемые вместе с контроллерами EIDE. Большинство 32-разрядных операционных систем (таких, как OS/2) изначально поддерживают работу с большими дисками.
- Ускоренный обмен данными основан на использовании скоростных режимов программируемого ввода-вывода ( PIO mode 3 ) и прямого доступа к памяти ( DMA mode 1 ). Эти режимы обеспечивают скорость обмена 11.1 и 13.3 Мб/сек, соответственно. Для реализации скоростного обмена требуется поддержка со стороны винчестера и BIOS. BIOS должна поддерживать один из скоростных режимов обмена с диском ( PIO mode 3 или DMA mode 1 ), как правило это режим PIO. Со стороны дискового устройства также должна обеспечиваться поддержка скоростного обмена. Эту возможность обеспечивает большинство современных винчестеров (в том числе диски Fast ATA ). Скоростные режимы обмена позволяют полнее реализовать возможности дисковых контроллеров, использующих широкополосную локальную шину VESA или PCI.
- Поддержка двух портов ATA. Для обеспечения этой возможности используются зарезервированные для второго контроллера адреса портов ввода-вывода и прерывание IRQ15. Для реализации этой возможности требуется поддержка со стороны контроллера (хост-адаптера), BIOS и операционной системы. К самим устройствам (винчестерам, приводам CD-ROM или стриммерам) не предъявляется никаких дополнительных требований. Контроллер должен обеспечивать возможность установки адресов второго порта (это реализовано отнюдь не во всех современных моделях). Не все BIOS поддерживают возможность использования четырех устройств IDE, однако современные разработки включают этот режим. Важную роль играет поддержка использования четырех устройств со стороны операционной системы. Эта возможность реализована в большинстве 32-разрядных ОС и в последних версиях DOS.
- Возможность подключения приводов CD-ROM и стримеров. Этот режим является недорогой альтернативой SCSI. Для обеспечения такой возможности требуется требуется поддержка нескольких новых команд. Спецификация ATAPI (ATA Packet Interface) , находящаяся в стадии разработки, содержит описание новых команд. Для обеспечения возможности подключения к хост-адаптеру недисковых устройств требуется поддержка спецификации ATAPI со стороны BIOS, хост-адаптера, операционной системы и самих периферийных устройств. В настоящее время большинство устройств CD-ROM уже использует интерфейс IDE/ATAPI для подключения ко второму порту современных контроллеров. Очевидно, что при таком обилии вариантов расширения возможностей IDE отнюдь не все устройства, рекламируемые как "Enhanced", поддерживают все четыре режима, добавленные в спецификацию Enhanced IDE. Не следует забывать также о том, что для обеспечения полной поддержки EIDE, этой спецификации должны удовлетворять BIOS, хост-адаптер, операционная система и, наконец, сами периферийные устройства.