![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Регистры устройств
Каждое устройство АТА имеет стандартный набор регистров, адресуемых сигналами от хост-адаптера (CSO#, CS1#, DA2, DA1, ОАО, DIOR* и DIOW#). Набор регистров (табл. 9.6) состоит из двух блоков, выбираемых сигналами CSO# и CS1#, из которых активным (низкий уровень, «О») может быть только один. В таблице приведены адреса регистров в пространстве ввода-вывода IBM PC-совместимого ПК для первого и второго каналов АТА. При обращении к регистрам сигнал DMACK* должен быть неактивным. Блок командных регистров служит для посылки команд устройству и чтения информации о его состоянии. Блок управляющих регистров используется для управления устройством и получения более подробной информации о его состоянии. На действительность содержимого регистров командного блока и альтернативного регистра состояния указывает нулевое значение бита BSY регистра состояния. Запись в регистры должна производиться лишь при BSY=0 и DRQ=0, кроме особо оговоренных случаев. Если устройство поддерживает управление энергопотреблением, в «спящем» режиме содержимое этих регистров недействительно и запись игнорируется, кроме особо оговоренных случаев. Таблица 9.6. Регистры контроллеров устройств АТА
продолжение^ 372________________________________ Глава 9. Интерфейсы устройств хранения Таблица 9.6. (продолжение)
1 2 CSO# CS1# DA2 DA1 ОАО______________________________________________ 1FX 17Х Command Block Registers — блок командных регистров
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) — регистр команд
2 Регистры сектора, цилиндра и головки в режиме LBA содержат указанные биты логического адреса. Альтернативный регистр состояния AS (для первого канала адрес 3F6h, для второго — 376h) имеет те же биты, что и основной (см. ниже), но его чтение не приводит ни к каким изменениям состояния устройства. Регистр управления устройством DC (3F6h, 376h) служит для программного сброса обоих устройств одновременно и управления разрешением прерывания выбранного устройства. Запись в этот регистр возможна в любой момент. Программный сброс через регистр DC должен отрабатываться ив состоянии Sleep. Назначение битов регистра DC: ♦ биты [7: 3] зарезервированы; ♦ бит 2 — SRST (Software Reset) — программный сброс, действует все время, пока бит не будет снят (оба устройства на шине воспринимают программный сброс одновременно); ♦ бит 1 — n IE N (Interrupt Enable) — инверсный бит разрешения прерывания (при нулевом значении бита выбранное устройство может вырабатывать сигнал INTRQ через тристабильный выход); ♦ бит 0 - 0. Регистр адреса устройства DA (3F7h, 377h) использовался только в первой версии АТА для совместимости со старыми контроллерами, чтением этого регистра можно было определить адресованный привод и головку. Регистр выпадает из блока (он совпадает с диагностическим регистром состояния онтроллера НГМД) 9.2. Интерфейс АТА/ATAPI (IDE)_______________________________________ 373 и рекомендуется, чтобы устройство АТА не отвечало на чтение этого регистра. Если устройство отвечает на чтение, то оно не должно управлять битом DD7 во избежание конфликта с контроллером НГМД, у которого по этой линии передается бит смены носителя. Из-за несоблюдения этого требования могут возникать проблемы, когда контроллер (адаптер) АТА и контроллер НГМД находятся на разных платах. Назначение битов регистра DA: ♦ бит 7 — (HiZ) — высокоимпедансный, при считывании не выдается на шину; ♦ бит 6 — nWTG — инверсный признак записи (во время физического выполнения записи на носитель бит нулевой); ♦ биты [5: 2] — nHS [3: 0] — номер головки (инверсные биты); ♦ биты [1: 0] — nDS [1: 0] — выбор устройства (инверсные биты): 10 — выбрано устройство 0, 01 — выбрано устройство 1. Регистр данных DR (IFOh, 170h) может использоваться как 8-битный или 16-битный в зависимости от типа данных, передаваемых в текущей команде. Обращение к этому регистру происходит в режиме обмена РЮ (когда сигнал DMACK* неактивен), при выполнении передач протокола РО (РЮ Out) хост производит запись в этот регистр, при PI (РЮ In) — чтение. В режиме DMA обмен данными происходит через порт данных, при этом активны сигналы DMARQ и DMACK*, а сигналы CSO# и CS1# неактивны. Регистр ошибок ER (IFlh, 171h) хранит состояние выполнения последней операции или диагностический код. После завершения операции на наличие ошибки указывает бит ERR регистра состояния. Назначение битов регистра ER: ♦ бит 7 — зарезервирован; ♦ бит 6 — UNC (Uncorrectable Data Error) — неисправимая ошибка данных; ♦ бит 5 — МС (Media Changed) — смена носителя (после смены носителя первая команда обращения отвергается и устанавливается данный бит, после сброса бита следующие команды будут выполняться нормальным образом); ♦ бит 4 — IDN F (ID Not Found) — указывает на ненайденный идентификатор сектора; ♦ бит 3 — MCR (Media Change Requested) — индикатор запроса смены носителя (после обнаружения запроса смены носителя команды Door Lock будут возвращать бит ошибки ERR и бит MCR, бит MCR сбрасывается командами Door Unlock, Medi a Ej ect или сигналом аппаратного сброса); ♦ бит 2 — ABRT (Aborted Command) — устанавливается, если команда отвергнута как недействительная или в случае возникновения иной ошибки; ♦ бит 1 —TK0NF (Track ONot Found) —указываетна то, что по команде Recalibrate не удалось найти нулевой трек; ♦ бит 0 — AMNF (Address Mark Not Found) — не найден адресный маркер данных в заголовке сектора. 374________________________________ Глава 9. Интерфейсу устройств хранения После выполнения любого сброса или команды Execute Device Diagnostic регистр ошибок содержит диагностический код. Трактовка битов, за исключением бита 2 (ABRT), может меняться в зависимости от исполненной команды. Регистр свойств 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: ♦ биты 7 и 5 вплоть до АТА-3 должны были быть единичными, в AT A/ AT API -4 их объявили устаревшими; ♦ бит 6 — L — единичным значением указывает на применение режима адресации LBA, при нулевом значении бита используется режим CHS; ♦ бит 4 — DEV (Device) — выбор устройства, при DEV=0 выбрано ведущее, при DEV=1 — ведомое; ♦ биты [3: 0] имеют двоякое назначение в зависимости от выбранной системы Как и предыдущие (5М, СНиС1_), адресный регистр D/H инициализируется хост-адаптером, а в случае возникновения ошибки при операции устройство поместит в них адрес, по которому встретилась ошибка. До принятия спецификации АТА-2 считалось, что адресные регистры должны модифицироваться и после успешного выполнения операции, отражая текущее значение адреса в носителе. Регистр состояния S R (l F7h, 177h) отражает текущее состояние устройства в процессе выполнения команд: занятость, готовность, наличие ошибок и др. Чтение регистра состояния разрешает дальнейшее изменение его битов и сбрасывает запрос аппаратного прерывания. 9.2. Интерфейс АТА/ATAPI (IDE) _____________________________________ 375 Назначение битов регистра SR описано ниже. ♦ Бит 7 — BSY (Busy) указывает на занятость устройства, значение этого бита действительно всегда. При BSY=1 устройство игнорирует попытки записи в командный блок регистров, а чтение этих регистров дает неопределенный результат. При BSY=0 регистры командного блока доступны, в это время устройство не может устанавливать бит DRQ, изменять значение битов Е RR и содержимое остальных командных регистров (могут меняться только значения битов IDX, DRDY, DF, • при сбросе устройства; • по получении команды, если не устанавливается DRQ; • между передачами блоков данных в режиме РЮ и после них, пока не обнулился DRQ; • во время передач данных в режиме DMA.
♦ Бит 6 — DRDY (Device Ready) указывает на готовность устройства к восприятию любых кодов команд. Если состояние бита изменилось, оно не может вернуться обратно до чтения регистра состояния. При DRDY=0 устройство воспринимает только команды Execute Device Diagnostic и Initialize Device Parameters, прекращая выполнение текущей команды и сообщая об этом флагом ABRT в регистре ошибок и флагом ERR в регистре состояния. Другие команды приводят к непредсказуемым результатам. Устройства AT API сбрасывают бит по любому сбросу и команде Execute Device Diagnostic. Бит устанавливается устройством AT A, когда оно готово к выполнению всех команд. Устройство AT API устанавливает бит до завершения выполнения команд, за исключением команд Device Reset и Execute Device Diagnostic. ♦ Бит 5 — DF (Device Fault) — индикатор отказа устройства. ♦ Бит 4 — DSC (Device Seek Complete) — индикатор завершения поиска трека. В командах, допускающих перекрытие, бит называется SERV (Service Required) — устройство требует обслуживания. ♦ Бит 3 — DRQ (Data Request) — индикатор готовности к обмену словом или байтом данных. ♦ Бит 2 — CORR (Corrected Data) — индикатор исправленной ошибки данных. ♦ Бит 1 — I DX (Index) — индекс, трактуется особо каждым производителем. ♦ Бит 0 — ERR (Error) — индикатор ошибки выполнения предыдущей операции. В стандарте ATA/ATAPI-4 для некоторых команд биты 4 и 5 могут иметь иное назначение, а биты 1 и 2 объявлены устаревшими. Глава 9. Интерфейсы устройств хранения Назначение регистра команд CR (lF7h, 177h) очевидно из названия. Устройство начинает исполнять команду сразу, как только ее код записан в данный регистр. Команда Devi ce Reset выполняется устройством AT API независимо от состояния битов BSY и DRQ, и даже в состоянии Sleep. Полный список команд АТА приведен в литературе [4, 5, 9].
|