Автор работы: Пользователь скрыл имя, 10 Декабря 2011 в 09:50, реферат
Интерфейс ATA (AT Attachment for Disk Drives) разрабатывался в 1986-1990 гг. для подключения накопителей на жестких магнитных дисках к компьютерам IBM PC AT с шиной ISA. Стандарт, выработанный комитетом ХЗТ10, определяет набор регистров устройств и назначение сигналов 40-контактного интерфейсного разъема. Интерфейс появился в результате переноса стандартного (для PC/AT) контроллера жесткого диска ближе к накопителю, то есть создания устройств со встроенным контроллером — IDE (Integrated Drive Electronics). Стандартный контроллер AT позволял подключать до двух накопителей, что в интерфейсе АТА означает параллельное подключение контроллеров двух устройств. В спецификации АТА фигурируют следующие компоненты.
R/W: Data (DR) — регистр данных
R: Error (ER) — регистр ошибок
W: Features (FR) — регистр свойств
R/W:
Sector Count (SC) — регистр счетчика секторов
R/W: Sector Number (SN) — регистр номера
сектора/LBA[7:0]2
R/W: Cylinder Low (CL) — регистр младшего
байта номера цилиндраДВА[15:8]2
R/W: Cylinder High (CH) — регистр старшего байта номера цилиндра/1-ВА[23:1 б]2
R/W: Device/Head (D/H) — регистр номера устройства и головки/1_ВА[27:24]2
R: Status (SR) — регистр состояния
W: Command (CR) — регистр команд
1 Рекомендуется, чтобы на сигнал чтения по этому адресу устройство не отвечало.
2 Регистры сектора, цилиндра и головки в режиме LBA содержат указанные биты логического адреса.
Альтернативный регистр состояния AS (для первого канала адрес 3F6h, для второго — 376h) имеет те же биты, что и основной (см. ниже), но его чтение не приводит ни к каким изменениям состояния устройства.
Регистр управления устройством DC (3F6h, 376h) служит для программного сброса обоих устройств одновременно и управления разрешением прерывания выбранного устройства. Запись в этот регистр возможна в любой момент. Программный сброс через регистр DC должен отрабатываться ив состоянии Sleep. Назначение битов регистра DC:
Регистр адреса устройства DA (3F7h, 377h) использовался только в первой версии АТА для совместимости со старыми контроллерами, чтением этого регистра можно было определить адресованный привод и головку. Регистр выпадает из блока (он совпадает с диагностическим регистром состояния онтроллера НГМД) и рекомендуется, чтобы устройство АТА не отвечало на чтение этого регистра. Если устройство отвечает на чтение, то оно не должно управлять битом DD7 во избежание конфликта с контроллером НГМД, у которого по этой линии передается бит смены носителя. Из-за несоблюдения этого требования могут возникать проблемы, когда контроллер (адаптер) АТА и контроллер НГМД находятся на разных платах. Назначение битов регистра DA:
Регистр данных DR (IFOh, 170h) может использоваться как 8-битный или 16-битный в зависимости от типа данных, передаваемых в текущей команде. Обращение к этому регистру происходит в режиме обмена РЮ (когда сигнал DMACK* неактивен), при выполнении передач протокола РО (РЮ Out) хост производит запись в этот регистр, при PI (РЮ In) — чтение. В режиме DMA обмен данными происходит через порт данных, при этом активны сигналы DMARQ и DMACK*, а сигналы CSO# и CS1# неактивны.
Регистр ошибок ER (IFlh, 171h) хранит состояние выполнения последней операции или диагностический код. После завершения операции на наличие ошибки указывает бит ERR регистра состояния.
Назначение битов регистра ER:
Регистр свойств FR (IFlh, 171h) используется в зависимости от команды. В команде Set Features через него задается код подкоманды. Некоторые старые устройства могут игнорировать запись в этот регистр. До принятия спецификации АТА-2 в этот регистр помещали значение рекомендуемого номера цилиндра для предкомпен-сации записи.
Регистр счетчика секторов SC (lF2h, 172h) содержит число секторов, участвующих в обмене. Хост инициализирует этот регистр до подачи команды (нулевое значение соответствует 256 секторам). По успешному завершению операции доступа к данным регистр должен обнулиться. Если команда завершилась с ошибкой, в регистре будет число секторов, которые должны быть переданы для успешного завершения предыдущего запроса. Команды Initialize Device Parameters или Write Same могут переопределить значение этого регистра. В некоторых командах регистр используется для передачи иных параметров.
Регистры номера сектора S N (1 F3h, 173h) и номера цилиндра — младшего С L (1 F4h, 174h) и старшего байта СН (lF5h, 175h) — имеют двоякое назначение в зависимости от выбранной системы адресации (CHS или LEA). Они инициализируются хост-адаптером, а в случае возникновения ошибки при выполнении операции устройство поместит в них адрес, по которому встретилась ошибка.
Регистр номера устройства и головки D/H (IFGh, 176h) кроме хранения части адресной информации служит для выбора ведущего или ведомого устройства и метода адресации.
Назначение битов регистра D/H:
Как и предыдущие (5М,СНиС1_), адресный регистр D/H инициализируется хост-адаптером, а в случае возникновения ошибки при операции устройство поместит в них адрес, по которому встретилась ошибка. До принятия спецификации АТА-2 считалось, что адресные регистры должны модифицироваться и после успешного выполнения операции, отражая текущее значение адреса в носителе. Регистр состояния S R (l F7h, 177h) отражает текущее состояние устройства в процессе выполнения команд: занятость, готовность, наличие ошибок и др. Чтение регистра состояния разрешает дальнейшее изменение его битов и сбрасывает запрос аппаратного прерывания.
Назначение битов регистра SR описано ниже.
♦ Бит 7
— BSY (Busy) указывает на занятость устройства,
значение этого бита действительно всегда.
При BSY=1 устройство игнорирует попытки
записи в командный блок регистров, а чтение
этих регистров дает неопределенный результат.
При BSY=0 регистры командного блока доступны,
в это время устройство не может устанавливать
бит DRQ, изменять значение битов Е RR и содержимое
остальных командных регистров (могут
меняться только значения битов IDX, DRDY,
DF,
DSC и CORR). Бит может устанавливаться на
кратковременный интервал, так что хост
может этого не заметить. Бит устанавливается:
В стандарте ATA/ATAPI-4 для некоторых команд биты 4 и 5 могут иметь иное назначение, а биты 1 и 2 объявлены устаревшими. Назначение регистра команд CR (lF7h, 177h) очевидно из названия. Устройство начинает исполнять команду сразу, как только ее код записан в данный регистр. Команда Devi ce Reset выполняется устройством AT API независимо от состояния битов BSY и DRQ, и даже в состоянии Sleep.
Полный список команд АТА приведен в литературе [4,5,9].
Протоколы и режимы передачи данных
Программа общается с устройствами АТА через регистры, используя инструкции ввода-вывода IN и OUT. Для передачи данных с максимальной скоростью применяют программный доступ РЮ к регистру данных инструкциями INSW/OUTSW или по каналу DMA. Тип обмена (РЮ или DMA) определяется командой обращения. Программный доступ РЮ обязателен для всех устройств, команды режима DMA устройствами могут не поддерживаться. Параметры различных режимов обмена приведены в табл. 9.7.
Таблица
9.7. Параметры режимов передачи
|