Autoconfig

Autoconfig — это протокол автоматической конфигурации, используемый в компьютерах Amiga, предназначенный для автоматического назначения ресурсов устройствам расширения без необходимости ручной установки джамперов[1]. По принципу работы аналогичен конфигурации PCI через интерфейс Advanced Configuration and Power Interface — ACPI[2][3].

Autoconfig интегрирован в прошивку Kickstart компьютеров Amiga, которая обычно хранится в ПЗУ. После включения системы AmigaOS опрашивает каждое устройство расширения и по мере необходимости выделяет ему адресное пространство или другие ресурсы. Например, в случае карты памяти, система может динамически добавить предоставленную память. Через Autoconfig ОС способна получить доступ к программному обеспечению (firmware) устройств расширения, например, для загрузки с диска, подключенного к контроллеру жёсткого диска.

Протокол

Устройства расширения отвечают на определённые фиксированные адреса памяти, начиная с шестнадцатеричного 0xE8 0000 (или 0xFF00 0000 для Zorro III), если сигнал /CFGIN активен и устройство ещё не настроено. Центральный процессор считывает коды (нибблы) конфигурационной информации (обычно задаются с помощью ПЛМ), такие как идентификатор производителя (manufacturer ID), идентификатор продукта (product ID) и необходимый объём адресного пространства. Затем процессор записывает базовый адрес памяти в устройство (или сигнализирует, чтобы оно «замолчало», если конфигурировать его невозможно), после чего устройство посылает сигнал /CFGOUT.

Сигнал /CFGIN первого устройства соединён с землёй. Сигнал /CFGIN второго устройства контролируется сигналом /CFGOUT первого устройства и так далее.

В конструкциях с бэкплейном (например, Amiga 2000), если соединять сигнал /CFGOUT одного слота напрямую с /CFGIN следующего, то незанятый слот мог бы прервать цепь автоконфигурирования. Для решения этой проблемы бэкплейн объединяет сигналы /CFGIN и /CFGOUT по логической операции ИЛИ, чтобы сформировать /CFGIN для следующего слота (сигнал /CFGOUT по умолчанию подтягивается к низкому уровню, если не используется), что позволяет обходить незанятые слоты. Для этого в Amiga 2000 требуется одна микросхема 74LS32 (четыре «ИЛИ»-элемента) — это единственное оборудование, необходимое на материнской плате для работы Autoconfig[4].

Аппаратные спецификации и системная шина

Autoconfig является частью спецификации шин расширения Zorro II и Zorro III, определяющих процесс настройки устройств расширения в системах Amiga. Zorro II впервые применялась в Amiga 2000, хотя аналогичная шина есть и в Amiga 1000. Zorro II — это относительно простое расширение шины 68000[5]. Для работы Autoconfig требуется, чтобы шина данных и адреса процессора 68000 была доступна для всех устройств на шине. Теоретически внедрение виртуальной адресации, как в PCI, потребовало бы небольших изменений в Autoconfig.

Amiga 2000 поддерживает до пяти карт расширения Zorro, таких как расширения ОЗУ, SCSI-контроллеры и видеокарты. Однако стандарт не ограничивает общее количество устройств. В A2000 два слота Zorro II совмещены со слотами ISA. Соединение шин Zorro и ISA возможно с помощью «bridgeboard» — платы вроде Janus Hardware Emulator, которая позволяет эмулировать системы Intel 80286 или 80386[5].

Шина Zorro III — это 32-разрядная автонастраиваемая шина расширения, применяемая в Amiga 3000 и Amiga 4000[6]. Начиная с модели A3000, было решено, что все расширения, подлежащие сканированию системой, должны использовать Autoconfig. В AmigaOS 3.1 стандарт был принят — оборудование без поддержки Autoconfig допускается к игнорированию со стороны ОС.

Обозначение

В ранних документах Commodore название писалось как Auto Configuration[5], auto-config[5] или AutoConfig[7], в поздних — как AUTOCONFIG[6].

Примечания

  1. Miner, Jay. Amiga Hardware Reference Manual : [англ.]. — Третье. — Addison-Wesley, 1991. — ISBN 0-201-56776-8.
  2. What Is ACPI (Advanced Configuration and Power Interface)? (англ.). MiniTool (3 июля 2020). Дата обращения: 29 апреля 2021.
  3. The Amiga Museum » Kickstart 1.2. The Amiga Museum. Дата обращения: 29 апреля 2021. Архивировано 16 мая 2017 года.
  4. K / AUTOCONFIG™ / The Autoconfig Mechanism (англ.). Amiga Developer Docs. Дата обращения: 29 апреля 2021.
  5. 1 2 3 4 Commodore Amiga A500/A2000 Technical Reference Manual (англ.). BombJack Amiga Archive. Commodore-Amiga, Inc. (1987). Дата обращения: 3 сентября 2011. Архивировано 13 июня 2012 года.
  6. 1 2 Haynie, Dave The Zorro III Bus Specification (англ.). Commodore-Amiga, Inc. (20 марта 1991). Дата обращения: 31 января 2010. Архивировано 16 июля 2012 года.
  7. Introduction to the Commodore Amiga 2000 (англ.). Commodore-Amiga, Inc. (1987). Дата обращения: 3 сентября 2011. Архивировано 13 июня 2012 года.

Ссылки