Интел 8237


Intel 8237 — это контроллер прямого доступа к памяти (DMA), входящий в семейство микропроцессоров MCS 85 . Он обеспечивает передачу данных между памятью и вводом/выводом с уменьшенной нагрузкой на главный процессор системы, предоставляя памяти управляющие сигналы и информацию об адресе памяти во время передачи DMA.
8237 представляет собой четырехканальное устройство, которое можно расширить за счет включения любого количества входов каналов DMA. Модель 8237 способна передавать данные по DMA со скоростью до 1,6 мегабайт в секунду. Каждый канал способен обращаться к полной секции памяти размером 64 КБ и передавать до 64 КБ за одно программирование. [1]
Один 8237 использовался в качестве контроллера DMA в оригинальных IBM PC и IBM XT . IBM PC AT добавил еще 8237 в конфигурации «главный-подчиненный», увеличив количество каналов DMA с четырех до семи. [2] Более поздние IBM-совместимые персональные компьютеры могут иметь наборы микросхем, имитирующие функции 8237 для обеспечения обратной совместимости. Intel 8237 на самом деле был разработан AMD (под названием Am9517). [3] ). Это было частью соглашения о перекрестном лицензировании, позволяющего AMD производить процессоры Intel, что сделало эту конструкцию доступной и для Intel. Вот почему на упаковке Intel напечатано «(C) AMD 1980». 8237, работающий на частотах 3 МГц и 5 МГц, был произведен Intel, как описано в вариантах , а NEC разработала μPD71037, версию, работающую на частоте 10 МГц. [4]
Режимы
[ редактировать ]8237 работает в четырех различных режимах, в зависимости от количества байтов, передаваемых за цикл, и количества используемых микросхем:
- Одиночный — один цикл DMA, один цикл ЦП чередуется до тех пор, пока счетчик адреса не достигнет нуля. [5]
- Блокировка — передача продолжается до тех пор, пока количество слов не достигнет нуля или пока не станет активным сигнал EOP. [5]
- Спрос — передачи продолжаются до тех пор, пока TC или EOP не станут активными или DRQ не станет неактивным. ЦП разрешено использовать шину, когда передача не запрашивается. [5]
- Каскад — используется для каскадирования дополнительных контроллеров DMA. DREQ и DACK сопоставляются с HRQ и HLDA из следующего чипа для установления цепочки приоритетов. Фактические сигналы шины выполняются каскадным чипом. [5]
Возможна передача данных из памяти в память. Это означает, что данные могут быть перенесены с одного устройства памяти на другое устройство памяти. Регистр текущего адреса канала 0 является источником для передачи данных, а передача данных заканчивается, когда регистр текущего количества слов становится равным 0. Канал 0 используется для обновления DRAM на компьютерах, совместимых с IBM PC. [5]
В режиме автоматической инициализации значения адреса и счетчика восстанавливаются после получения сигнала окончания процесса (EOP). Это происходит без какого-либо вмешательства процессора. Используется для повтора последней передачи. [5]
Счетчик терминалов (TC) сигнализирует об окончании передачи на карты ISA. В конце передачи произойдет автоматическая инициализация, настроенная для этого.
Одиночный режим
[ редактировать ]В одиночном режиме за один запрос передается только один байт. При каждой передаче счетный регистр уменьшается, а адрес увеличивается или уменьшается в зависимости от программирования. Когда счетный регистр достигает нуля, TC счетчика терминала. на карту отправляется сигнал [6] [7]
Запрос DMA DREQ должен быть инициирован картой и удерживаться активным до тех пор, пока он не будет подтвержден сигналом подтверждения DMA DACK . [6]
Режим блочной передачи
[ редактировать ]Передача активируется DREQ , который может быть деактивирован после подтверждения DACK . Передача продолжается до тех пор, пока не будет активировано завершение процесса EOP (внутреннее или внешнее), что приведет к запуску счетчика терминалов TC на карте. В этом режиме можно запрограммировать автоинициализацию. [6]
Режим передачи спроса
[ редактировать ]Передача активируется DREQ и подтверждается DACK и продолжается до тех пор, пока TC , внешний EOP или DREQ не станут неактивными. Только TC или внешний EOP могут активировать автоинициализацию, если это запрограммировано. [6]
Внутренние регистры
[ редактировать ]Внутренние регистры, используемые в 8237 для передачи данных, следующие:
- Регистр базового адреса: для хранения начального адреса, откуда будет осуществляться передача данных.
- Регистр подсчета базовых слов: для хранения количества выполняемых передач.
- Регистр текущего адреса: для хранения текущего адреса, с которого передаются данные.
- Регистр текущего количества слов: для хранения количества передач, которые осталось выполнить.
- Регистр временного адреса: для хранения адреса данных во время передачи из памяти в память.
- Временный регистр подсчета слов: для хранения количества передач, которые необходимо выполнить при передаче из памяти в память.
- Регистр режима: 8-битный регистр, в котором хранится используемый канал, рабочий режим, то есть режим передачи, и другие параметры передачи.
- Регистр команд: 8-битный регистр, который инициализирует канал, который будет использоваться для передачи данных.
- Регистр запроса: 8-битный регистр, используемый для указания того, какой канал запрашивает передачу данных.
- Регистр маски: 8-битный регистр, используемый для маскировки определенного канала от запроса службы DMA.
- Регистр состояния: 8-битный регистр, используемый для указания того, какой канал в данный момент находится под службой DMA, а также некоторых других параметров.
Использование IBM-ПК
[ редактировать ]Являясь членом семейства устройств Intel MCS-85, 8237 представляет собой 8-битное устройство с 16-битной адресацией. он совместим с 8086/88 Однако микропроцессорами . Модели IBM PC и PC XT (типы компьютеров 5150 и 5160) имеют процессор 8088 и 8-битную архитектуру системной шины; последний напрямую взаимодействует с 8237, но 8088 имеет 20-битную адресную шину, поэтому вместе с 8237 добавляются четыре дополнительных 4-битных защелки адреса (все они фактически являются частью одного устройства 74LS670), по одной для каждого канала DMA. увеличить счетчики адресов. Однако, поскольку эти внешние защелки отделены от счетчиков адресов 8237, они никогда не увеличиваются и не уменьшаются автоматически во время операций DMA, что делает невозможным выполнение операции DMA через границу адреса в 64 КиБ. Попытки пересечь границу в 64 КиБ при передаче DMA будут заключены в один блок памяти размером 64 КиБ. (Например, если канал DMA и связанная с ним защелка адреса были запрограммированы на передачу 256 байт по возрастающим адресам, начиная с адреса 0x3FF8C, вместо передачи по адресам с 0x3FF8C по 0x4008B данные будут передаваться по адресам с 0x3FF8C по 0x3FFFF, а затем по адресам с 0x3FF8C по 0x3FFFF, а затем по адресам с 0x30000 по 0x3FF8C. 0x3008B.)
IBM PC AT (тип машины 5170) и 100% совместимые устройства используют процессор 80286 и 16-битную архитектуру системной шины. В дополнение к 8237 моделей PC и XT добавлен второй каскадный 8237 для 16-битной передачи DMA. Это возможно, несмотря на то, что 8237 является 8-битным устройством, поскольку 8237 выполняет передачу между портом ввода-вывода и памятью как «пролетную» передачу, при которой данные помещаются на шину из исходной памяти или ввода-вывода. O и одновременно считывается напрямую целевым портом ввода-вывода или памятью, без обработки со стороны 8237. Для этого режима передачи ширина шины данных по существу не имеет значения для 8237 (пока она подключен к шине данных шириной не менее 8 бит для программирования регистров 8237). Второй 8237 в ПК класса AT обеспечивает три 16-битных канала DMA (его каналы с 1 по 3, в ПК AT каналы с 5 по 7); его канал 0 (называемый каналом 4 в ПК AT) используется в каскадном режиме для подключения 8237 к 8-битному DMA в качестве «ведомого» в каскадной схеме; 8237, предоставляющий 16-битные каналы, является «главным». Чтобы он мог адресовать 16-битные слова, его подключают к адресной шине таким образом, что он считает четные адреса (0, 2, 4, ...) вместо одиночных адресов. Как и первый 8237, он дополнен четырьмя регистрами расширения адреса. В ПК класса AT все восемь регистров увеличения адреса имеют ширину 8 бит, поэтому можно указать полные 24-битные адреса — размер адресной шины 80286. Передача DMA по любому каналу по-прежнему не может пересечь границу в 64 КиБ. (16-битный DMA ограничен 32 768 16-битными словами, хотя канал DMA может считать до 65 536 адресов; старший бит счетчика адреса из 16-битного канала DMA игнорируется.) Поскольку память 8237 Режим DMA в память работает путем передачи байта из исходной ячейки памяти во внутренний временный 8-битный регистр в 8237, а затем из временного регистра в целевую ячейку памяти. Этот режим нельзя использовать для 16-битной памяти. в память DMA, так как временный регистр недостаточно велик. Кроме того, 16-битный DMA между памятью потребует использования канала 4, что противоречит его использованию для каскадирования 8237, который обрабатывает 8-битные каналы DMA. Однако в AT 8-битный канал DMA 0 больше не используется для обновления DRAM, его заменяет специализированная логика обновления, поэтому должна быть возможность выполнять 8-битный DMA-канал 0 с использованием каналов 0 и 1 без прерывание обновления DRAM.
Конструкция DMA на базе 8237 в совместимых с PC AT не была обновлена с переходом на 32-битные процессоры и архитектуру 32-битной системной шины. Следовательно, ограничением этих машин является то, что контроллеры DMA 8237 с сопутствующими им регистрами расширения «страницы» адреса могут адресовать только 16 МБ памяти, в соответствии с исходной конструкцией, ориентированной на ЦП 80286, который сам по себе имеет такое же ограничение адресации. [8] Это означает, что для других областей памяти данные должны сначала быть переданы по DMA из устройства ввода-вывода в промежуточный буфер в первых 16 МБ физического адресного пространства, а затем перемещены в конечную память с помощью ЦП; или, в другом направлении, он должен быть перенесен из исходной памяти в промежуточный буфер процессором перед передачей по DMA из этого буфера в устройство ввода-вывода. Этот метод называется «буфер отскока» . В целом, он теряет какое-либо общее преимущество в скорости, связанное с DMA, но это может быть необходимо, если к периферийному устройству требуется доступ через DMA либо из-за жестких требований к синхронизации, либо из-за негибкости аппаратного интерфейса.
В компьютерах серии PS/2 IBM обновила оборудование DMA для поддержки 32-битных данных и адресов в некоторых системах с процессорами 80386, но они сделали это, заменив 8237 новой конструкцией контроллера DMA. Новый дизайн включает режим совместимости 8237 для совместимости с PC AT.
Интеграция в чипсеты
[ редактировать ]Хотя это устройство может и не появиться как отдельный компонент в современных персональных компьютерных системах, оно присутствует в наборах микросхем системного контроллера. Например, в PIIX интегрированы два контроллера 8237 для шины ISA DMA. [9] [10]
Варианты
[ редактировать ]Номер модели | Тактовая скорость | Скорость передачи [список 1] | Упаковка | Цена (долл. США) [список 2] |
---|---|---|---|---|
8900 | 3 МГц | |||
8237 | 3 МГц | 44-контактный ПЛКК [список 3] [11] | ||
8237-2 | 5 МГц | 1,6 м/с | $20.00 [12] |
См. также
[ редактировать ]- Intel 8284 — тактовый генератор
- Intel 8288 — контроллер шины
- 8250 UART — асинхронный последовательный контроллер (EIA-232)
- Intel 8253 — программируемый интервальный таймер (PIT)
- Intel 8255 — программируемый периферийный интерфейс (PPI)
- Intel 8259 — программируемый контроллер прерываний (PIC)
- Параллельный ATA (P-ATA)
- Стандартная отраслевая архитектура (ISA)
Ссылки
[ редактировать ]- ^ Микропроцессоры Intel Барри Б. Брея
- ^ Н. МАТИВАНАН (2007). ПРИБОРЫ НА ОСНОВЕ ПК: КОНЦЕПЦИИ И ПРАКТИКА . PHI Learning Pvt. ООО, стр. 227–229. ISBN 978-81-203-3076-4 .
- ^ «Многомодовый контроллер DMA Am9517A» (PDF) . Проверено 4 января 2024 г.
- ^ «Контроллер прямого доступа к памяти (DMA) pPD71037» (PDF) . Проверено 4 января 2024 г.
- ^ Jump up to: а б с д и ж aluzina.org - Intel 8237/8237-2 Высокая производительность. Техническое описание программируемого контроллера DMA (.pdf)
- ^ Jump up to: а б с д book.google.com – Передовые микропроцессоры и периферийные устройства , 2006, стр. 312/313
- ^ pinouts.ru - Распиновка и разводка шины ISA , 20.10.2008
- ^ Breakedthorn.com - Серия разработки операционных систем
- ^ «ВЫСОКОЭФФЕКТИВНЫЙ ПРОГРАММИРУЕМЫЙ КОНТРОЛЛЕР DMA 8237A» (PDF) . ПДОС . Проверено 7 мая 2024 г.
- ^ «82371FB (PIIX) и 82371SB (PIIX3)» (PDF) . Каталог технических характеристик . Проверено 7 мая 2024 г.
- ^ Эшборн, Джим; «Усовершенствованная упаковка: небольшое дело имеет большое значение», корпорация Intel, Solutions, январь/февраль 1986 г., стр. 2
- ^ Корпорация Intel, «Компоненты микрокомпьютера: новый контроллер DMA Intel 8237 обеспечивает ответ DMA 5 МГц для систем на базе 8088 и 8085A-2», Intel Preview, май/июнь 1979 г., стр. 9.
Внешние ссылки
[ редактировать ]- DMA: Что это такое и как это работает . Справочник разработчика FreeBSD. 1997 (интернет-архив).