Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Регистры устройств






Каждое устройство АТА имеет стандартный набор регистров, адресуемых сигна­лами от хост-адаптера (CSO#, CS1#, DA2, DA1, ОАО, DIOR* и DIOW#). Набор регис­тров (табл. 9.6) состоит из двух блоков, выбираемых сигналами CSO# и CS1#, из которых активным (низкий уровень, «О») может быть только один. В таблице приведены адреса регистров в пространстве ввода-вывода IBM PC-совместимого ПК для первого и второго каналов АТА. При обращении к регистрам сигнал DMACK* должен быть неактивным. Блок командных регистров служит для посыл­ки команд устройству и чтения информации о его состоянии. Блок управляющих регистров используется для управления устройством и получения более подроб­ной информации о его состоянии. На действительность содержимого регистров командного блока и альтернативного регистра состояния указывает нулевое значе­ние бита BSY регистра состояния. Запись в регистры должна производиться лишь при BSY=0 и DRQ=0, кроме особо оговоренных случаев. Если устройство поддерживает управление энергопотреблением, в «спящем» режиме содержимое этих регистров недействительно и запись игнорируется, кроме особо оговоренных случаев.

Таблица 9.6. Регистры контроллеров устройств АТА

 

Адрес Сигналы адресации канала № Назначение (R — чтение, W — запись)
    (0 — низкий уровень, 1 — высокий)
    CSO# CS1# DA2 DA2 DA1О  
        X X X Нет обращения (шина данных в третьем
            состоянии)
        X x X Недопустимый адрес (шина данных в третьем
            состоянии)
3FX 37Х Control Block Registersблок управляющих регистров
          X X Не используется (шина данных в третьем
            состоянии)
          0 X Не используется (шина данных в третьем
            состоянии)
3F6         1 0 R: Alternate Status (AS) — альтернативный
            регистр состояния
3F6         1 0 W: Device Control (DC) — регистр управления
            устройством
3F7         1 1 R: Drive Address (DA) — регистр адреса
            (не используется)1

продолжение^


372________________________________ Глава 9. Интерфейсы устройств хранения

Таблица 9.6. (продолжение)

Адрес Сигналы адресации канала № Назначение (R — чтение, W — запись) (0 — низкий уровень, 1 — высокий)

1 2 CSO# CS1# DA2 DA1 ОАО______________________________________________

1FX 17Х Command Block Registersблок командных регистров

1F0            
1F1            
1F1            
1F2            
1F3            
1F4            
1F5            
1F6            
1F7            
1F7            

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:

♦ биты [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] имеют двоякое назначение в зависимости от выбранной системы
адресации, в режиме CHS они содержат номер головки, в режиме LBA — старшие биты логического адреса.

Как и предыдущие (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,
DSC и CORR). Бит может устанавливаться на кратковременный интервал, так что хост может этого не заметить. Бит устанавливается:

• при сбросе устройства;

• по получении команды, если не устанавливается 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) — индикатор ошибки выполнения предыдущей операции.
Дополнительная информация содержится в регистре ошибок. Если установ­
лен бит ERR, до приема следующей команды, программного или аппаратного сброса устройство не изменит состояние этого бита, а также регистра ошибок, регистра количества секторов и регистров цилиндра, головки и номера секто­ра. Для команд PacketnService бит называется СНК и служит признаком ис­ключительной ситуации.

В стандарте ATA/ATAPI-4 для некоторых команд биты 4 и 5 могут иметь иное назначение, а биты 1 и 2 объявлены устаревшими.



Глава 9. Интерфейсы устройств хранения


Назначение регистра команд CR (lF7h, 177h) очевидно из названия. Устройство начинает исполнять команду сразу, как только ее код записан в данный регистр. Команда Devi ce Reset выполняется устройством AT API независимо от состо­яния битов BSY и DRQ, и даже в состоянии Sleep.

Полный список команд АТА приведен в литературе [4, 5, 9].


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.014 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал