Михаил Гук - Аппаратные интерфейсы ПК. Энциклопедия
- Название:Аппаратные интерфейсы ПК. Энциклопедия
- Автор:
- Жанр:
- Издательство:Издательский дом «Питер»
- Год:2002
- Город:Санкт-Петербург
- ISBN:5-94723-180-8
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Михаил Гук - Аппаратные интерфейсы ПК. Энциклопедия краткое содержание
Книга посвящена аппаратным интерфейсам, использующимся в современных персональных компьютерах и окружающих их устройствах. В ней подробно рассмотрены универсальные внешние интерфейсы, специализированные интерфейсы периферийных устройств, интерфейсы устройств хранения данных, электронной памяти, шины расширения, аудио и видеоинтерфейсы, беспроводные интерфейсы, коммуникационные интерфейсы, вспомогательные последовательные интерфейсы. Сведения по интерфейсам включают состав, описание сигналов и их расположение на разъемах, временные диаграммы, регистровые модели интерфейсных адаптеров, способы использования в самостоятельно разрабатываемых устройствах. Книга адресована широкому кругу специалистов, связанных с эксплуатацией ПК, а также разработчикам аппаратных средств компьютеризированной аппаратуры и их программной поддержки.
Аппаратные интерфейсы ПК. Энциклопедия - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
♦ бит 2 — режим второго канала: 0 — совместим со стандартным контроллером ATA IDE, 1 — PCI IDE;
♦ бит 1 — индикатор программируемости режима для первого канала (возможности изменения бита 0);
♦ бит 0 — режим первого канала: 0 — совместим с ATA IDE, 1 — PCI IDE.
Таблица 9.9. Ресурсы контроллера PCI IDE
Ресурс | Режим совместимости: ресурсы для каналов | Естественный режим PCI: базовый адрес (смещение в конфигурационном пространстве) для канала | ||
---|---|---|---|---|
1 | 2 | 1 | 2 | |
Блок командных регистров | 1F0h-1F7h | 170h-177h | 10h | 14h |
Блок управляющих регистров | 3F6h | 376h | 18h | 1Ch |
Прерывание | 14 | 15 |
Типовой контроллер имеет класс 01:01:80h и реализован в чипсетах большинства современных системных плат. Контроллер выглядит как расширение стандартного ATA-контроллера, обеспечивающего доступ к регистрам устройств ATA/ATAPI по известным адресам. Расширение касается прямого управления шиной PCI (bus mastering), благодаря которому можно реализовать обмен данными с устройствами в режимах DMA. Контроллер позволяет использовать все доступные ему режимы обмена PIO (3,3-16,6 Мбайт/с), режимы DMA в стиле контроллера 8237А (2-16,6 Мбайт/с) и режимы UltraDMA (16,6-100 Мбайт/с). Все настройки временных параметров выполняются через конфигурационные регистры PCI, их состав может быть специфичным. Однако с этими регистрами должна иметь дело только процедура POST, устанавливая для каждого обнаруженного устройства ATA/ATAPI оптимальные режимы PIO и DMA/UltraDMA. В эти настройки может вмешаться пользователь, установив какие-либо ограничивающие параметры в BIOS Setup. В итоге после конфигурирования во время POST при обращении программ к устройствам остается выбор лишь между PIO и DMA (если устройство поддерживает DMA). Для обмена в режиме PIO никаких специальных действий не требуется, программа просто выполняет чтение или запись в регистр данных командами REP INS/OUTS
. Для обмена в режиме DMA требуется «зарядить» и запустить контроллер прямого управления, о чем и пойдет речь ниже.
Двухканальный контроллер имеет 16-байтный блок регистров, расположенный в пространстве портов ввода-вывода. Базовый адрес блока хранится в конфигурационном пространстве устройства по смещению 20h (берутся младшие 16 бит двойного слова). Расположение регистров в блоке показано в табл. 9.10, имена регистров имеют префикс BMI (Bus Master IDE) и окончание P (Primary) для первого канала, S (Secondary) — для второго; в описании будем использовать окончание x (любой канал).
Таблица 9.10. Блок регистров контроллера PCI IDE
Смещение для канала | Длина, байт | Регистр для первого/второго каналов | |
---|---|---|---|
1 | 2 | ||
0 | 8 | 1 | BMICP/BMICS (RW) — регистр команд : бит 0: 1 — запуск, 0 — останов; бит 3 — направление: 0 — чтение памяти, 1 — запись в память; биты 1–2, 3–7 — резерв (0) |
1 | 9 | 1 | Резерв (0) |
2 | 0Ah | 1 | BMISP/BMISS — регистр состояния : бит 0 (R/O) — активность канала; бит 1 (RWC) — ошибка обмена по PCI; бит 2 (RWC) — запрос прерывания от устройства; биты 3–4 — резерв (0); бит 5 (RW) — устройство 0 поддерживает DMA; бит 6 (RW) — устройство 1 поддерживает DMA; бит 7 — признак симплексного режима (1, если каналы не могут работать одновременно) |
3 | 0Bh | 1 | Резерв (0) |
4 | 0Ch | 4 | BMIDPTP/BMIDPTS (RW) — адрес таблицы дескрипторов |
Регистр команд BMICx
, доступный по чтению и записи, используется для запуска контроллера и задания направления передачи. Запуск осуществляется при переходе бита 0 из нуля в единицу, останов для текущего сеанса необратим. Останов контроллера (сброс бита) обычно выполняют по окончании выполнения команды ATA/ATAPI (по прерыванию). Преждевременный останов приведет к ошибке выполнения команды с соответствующим сообщением. Направление должно быть задано до запуска контроллера, изменять его «на ходу» нельзя.
В регистре состояния BMISx
биты 1 и 2 устанавливаются аппаратно, а сбрасываются при записи байта с единичным значением в соответствующем бите. После сброса бита запроса прерывания он снова установится только по следующему фронту сигнала прерывания от устройства. Биты 5 и 6 устанавливаются программно, обычно когда POST определяет возможности подключенных устройств и программирует режимы контроллера. Регистр состояния должен быть прочитан после завершения выполнения команды для определения успешности операций на шине PCI.
В регистр BMIDPTx
заносят адрес таблицы дескрипторов областей памяти , с которыми производится обмен данными. Контроллер способен при чтении памяти собрать поток данных из произвольного числа областей (gathered read), а при записи «разбросать» поток по этим областям (scatter write). Такая возможность встречалась еще в EISA-системах, она позволяет преодолевать барьеры на границах страниц, свойственные стандартным контроллерам DMA и страничной переадресации процессоров х86. Каждый дескриптор занимает 8 байтов:
♦ байты 0–3 (двойное слово) — физический адрес начала области (четный);
♦ байты 4–5 (слово) — счетчик байтов (четный, 0000 соответствует 65 536);
♦ байты 6–7 (слово) — признак конца таблицы (бит 15), биты 0-14 не используются (0).
Каждая область может быть расположена в произвольном месте памяти (кроме отображаемой на шину ISA) и иметь произвольный размер, но не должна пересекать границы страниц размером 64 Кбайт. Таблица дескрипторов должна быть выровнена по границе двойного слова и не должна пересекать границы страниц, имеющих размер 64 Кбайт. Число дескрипторов в таблице произвольно, последний должен содержать признак конца таблицы. Обмен начинается с области, описанной первым дескриптором; за ней идет область следующего дескриптора и так далее до последнего. Контроллер остановится по исчерпании счетчика в последнем дескрипторе или по инициативе устройства, если в обмене должно участвовать меньшее число данных. Если устройству данных не хватит, оно укажет на ошибку при завершении команды.
После запуска контроллера второй и нулевой биты регистра состояния отражают следующие ситуации:
♦ 0,1 — происходит обмен с памятью, прерывания по концу операции еще нет;
♦ 1,0 — обмен завершен, переданный объем соответствует объему описанных буферов (нормальное завершение);
♦ 1,1 — устройство завершило обмен, но по команде ATA передано меньше данных, чем описано в таблицах (допустимое завершение);
♦ 0,0 — ошибка на шине (бит 1), или в таблицах описано меньше данных, чем в команде ATA.
Устройства ATA перед подключением к шине должны быть корректно сконфигурированы. Конфигурирование подразумевает выбор типа интерфейса и определение адреса устройства. Тип интерфейса — XT или AT — определяется моделью накопителя. В изделиях фирмы Seagate, например, тип обозначается последней буквой в шифре модели: А — ATA (16 бит,) X — для XT (8 бит), а сочетание АХ означает возможность выбора AT/XT с помощью джампера.
Читать дальшеИнтервал:
Закладка: