Autoconfig

Autoconfig — механизм автоматического (без необходимости установки джамперов) распределения аппаратных ресурсов для устройств расширения компьютера Amiga. Много позже эта возможность была реализована и на других платформах (Amiga 500 с поддержкой Autoconfig появилась в 1987 г., а первая версия шины PCI появляется в 1992 г.), поддержка протокола на уровне ОС получила название Plug and Play.

В момент включения компьютера AmigaOS последовательно опрашивает каждое подключённое устройство и выделяет ему диапазон адресов в адресном пространстве памяти компьютера. В случаях, когда устройством оказывается карта расширения памяти, AmigaOS присоединяет новую доступную память к уже существующей в системе. Также Autoconfig поддерживает загрузку из ПЗУ.

Протокол

Каждый слот расширения (а значит, и каждая карта, устанавливаемая в него) снабжена двумя сигналами: /CFGIN и /CFGOUT (символ «/» означает, что используется инверсная логика и активным уровнем сигнала является логический нуль).

Если линия /CFGOUT слота неактивна, то считается, что карта, установленная в этот слот, не настроена.

Линии /CFGIN всех слотов расширения (кроме линии /CFGIN первого слота) подтянуты к неактивному уровню. Таким образом, после включения питания считается, что все карты расширения не настроены.

Если вход карты /CFGIN активен, в выход /CFGOUT не активен, то карта «откликается» на обращения к участку памяти, начинающемуся с адреса $E80000 (или $FF000000 для шины Zorro III) (своего рода аналог конфигурационного пространства на шине PCI). Иначе говоря, состояние, при котором вход карты /CFGIN активен, а выход /CFGOUT не активен, соответствует режиму конфигурации.

Конфигурация устройства начинается с установки линии /CFGIN в активное состояние. Далее производятся необходимые действия по конфигурации (чтение информации о карте расширения и настройка адресов). После завершения конфигурации карте даётся указание установить /CFGOUT в активное состояние (указание установить /CFGOUT в активное состояние даётся и в том случае, если не удаётся полностью настроить устройство и ОС хочет прекратить настройку текущей карты и перейти к настройке следующей).

Включение микросхемы 7432 для корректной работы Amiga Autoconfig
СК — системный контроллер;
/CFGIN1 и /CFGOUT1 — линии /CFGIN и /CFGOUT первого слота расширения, /CFGIN2 и /CFGOUT2 — линии /CFGIN и /CFGOUT второго слота расширения и т. д.

Сигналы /CFGIN и /CFGOUT слотов расширения соединены в цепочку: /CFGOUT первого слота соединяется с /CFGIN второго, /CFGOUT второго - с /CFGIN третьего и т. д. Линия /CFGIN первого слота и /CFGOUT последнего подключаются к системному контроллеру. Таким образом, после конфигурации последней карты расширения системный контроллер будет оповещён о том, что не осталось карт расширения, требующих конфигурации. Такой подход имеет преимущество: отсутствует ограничение на количество карт, участвующих в конфигурации. Однако, если цепочка оказывается разорванной (например, в один из слотов не установлена карта расширения), то процесс конфигурации зависает (системный контроллер не может дождаться установки линии /CFGOUT последнего слота расширения в активное состояние). Решением проблемы стала установка микросхемы 74LS32 (четыре двухвходовых элемента ИЛИ) и подтяжка линий /CFGOUT всех слотов расширения к активному уровню. Эта микросхема стала единственным аппаратным обеспечением, необходимым для корректной работы Autoconfig.

Сравнение с PCI

Несмотря на то, что по сравнению с PCI реализация протокола Autoconfig более проста, он обеспечивает те же самые функции автоматического конфигурирования устройств. Шина PCI осуществляет произвольный доступ к конфигурируемым устройствам (в Autoconfig — последовательный) и, как следствие, программная модель механизма конфигурации становится сложнее, а также появляется ограничение на количество устройств (более подробно см. описание конфигурационного цикла type0 шины PCI).

Хотя реализация Autoconfig проще, а количество подключаемых устройств не ограничено, Autoconfig имеет недостаток: устройства могут быть сконфигурированы только последовательно и только один раз (до перезагрузки компьютера).

См. также

Ссылки

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.