Введение

Система Amiga для автоматической настройки аппаратных периферийных устройств. Autoconfig — это протокол автоматической конфигурации компьютеров Amiga, предназначенный для автоматического выделения ресурсов устройствам расширения без необходимости использования перемычек. Он аналогичен конфигурации PCI через ACPI. Autoconfig встроен в прошивку Amiga Kickstart, которая обычно хранится в ROM. При включении системы AmigaOS опрашивает каждое устройство расширения по очереди и выделяет необходимое адресное пространство или ресурсы. Например, в случае карты памяти, операционная система может динамически добавлять память в систему. С помощью Autoconfig операционная система может получать доступ к прошивке на устройствах расширения, например, для загрузки с диска, подключенного к контроллеру жесткого диска.

Протокол

Устройства расширения реагируют на определенные адреса фиксированной памяти, начиная с шестнадцатеричного 0xE8 0000 (или 0xFF00 0000 для Zorro III), если сигнал /CFGIN активен и устройство еще не сконфигурировано. Процессор считывает порции (полубайты) конфигурационной информации (обычно предоставляемой ПЛИС), такой как идентификатор производителя, идентификатор продукта и объем необходимого устройству адресного пространства. Затем процессор записывает базовый адрес памяти в устройство (или дает команду "не отвечать", если по какой-либо причине его не удается сконфигурировать), и устройство активирует /CFGOUT. Сигнал /CFGIN первого устройства заземлен. Сигнал /CFGIN второго устройства управляется сигналом /CFGOUT первого устройства, и так далее. В конструкции с объединительной шиной, такой как Amiga 2000, прямое соединение /CFGOUT одного слота с /CFGIN следующего привело бы к тому, что незанятый слот разорвал бы цепочку конфигурации. Для решения этой проблемы объединительная шина выполняет логическое ИЛИ сигналов /CFGIN и /CFGOUT, формируя /CFGIN для следующего слота (сигнал /CFGOUT по умолчанию низкий, если он не управляется), что позволяет пропускать пустые слоты. Для этого требуется один 74LS32 (четырехэлементный элемент ИЛИ) на Amiga 2000, что является единственным аппаратным обеспечением материнской платы, необходимым для Autoconfig.

Спецификации оборудования и автобусные соединения

Autoconfig является частью спецификации шин расширения Zorro II и Zorro III, предназначенной для настройки устройств расширения в системах Amiga. Zorro II впервые была использована в Amiga 2000, хотя аналогичная шина расширения присутствует и в Amiga 1000. Zorro II представляет собой относительно простое расширение 68000-й шины. Autoconfig требует, чтобы шина данных и адресная шина 68000 были доступны всем устройствам на шине. Теоретически, система виртуальных адресов, как в PCI, потребовала бы незначительной модификации Autoconfig. Amiga 2000 может поддерживать до пяти карт расширения Zorro, таких как модули памяти, контроллеры SCSI и графические карты. Однако стандарт не ограничивает количество устройств. В Amiga 2000 два слота Zorro II совмещены с слотами ISA. Шины Zorro и ISA могут быть соединены посредством "мостовой платы", например, Janus Hardware Emulator, что позволяет эмулировать системы Intel 80286 или 80386. Начиная с разработки Amiga 3000, было признано желательным, чтобы все перечисляемые аппаратные расширения использовали Autoconfig. Операционная система допускает полное игнорирование неавтоконфигурируемого оборудования, и стандарт был принят в AmigaOS 3.1.

Обозначение

В ранних документах Commodore он именовался Auto Configuration, а в более поздних документах – AUTOCONFIG.