Autoconfig は、ジャンパー設定を必要とせずに拡張デバイスにリソースを自動的に割り当てることを目的としたAmigaコンピュータの自動構成プロトコルです。[ 1 ]これは、 ACPIによるPCI 構成 に類似しています。[ 2 ] [ 3 ]
Autoconfigは、AmigaのKickstartファームウェア(通常はROMに格納)に統合されています。システム起動時、AmigaOSは各拡張デバイスを順番に照会し、必要に応じてアドレス空間やリソースを割り当てます。例えば、メモリカードの場合、OSはメモリをシステムに動的に追加できます。Autoconfigを介して、OSは拡張デバイス上のファームウェアにアクセスし、例えばハードディスクコントローラに接続されたディスクから起動することができます。
拡張デバイスは、/CFGIN 信号がアサートされ、デバイスがまだ構成されていない場合、 16 進数0xE8 0000 ( Zorro IIIの場合は0xFF00 0000 ) から始まる特定の固定メモリ アドレスに応答します。CPUは、製造元 ID、製品 ID、デバイスが必要とするアドレス空間の量など、構成情報 (通常はPALによって提供される) の 4 ビットを読み取ります。次に、CPU はベース メモリ アドレスをデバイスに書き込み (何らかの理由で構成できない場合は「黙れ」と指示します)、デバイスは /CFGOUT 信号をアサートします。
最初のデバイスの/CFGINはグランドに接続されています。2番目のデバイスの/CFGINは最初のデバイスの/CFGOUTによって制御され、以下同様です。
Amiga 2000のようなバックプレーン設計では、あるスロットの /CFGOUT を次のスロットの /CFGIN に直接接続すると、空いているスロットによって構成チェーンが途切れるという問題が発生します。この問題を解決するために、バックプレーンは/CFGIN 信号と /CFGOUT 信号をOR演算して次のスロットの /CFGIN を生成します (/CFGOUT は駆動されていない場合はローにプルされます)。これにより、空のスロットをバイパスできます。これには、Amiga 2000 上に 1 つの74LS32 (クワッド OR ゲート) が必要ですが、これはAutoconfig に必要な唯一のマザーボードハードウェアです。 [ 4 ]
Autoconfig は、Amiga システムで拡張デバイスを構成するためのZorro IIおよびZorro III拡張バス仕様の一部です。Zorro II はAmiga 2000 で初めて使用されましたが、同様の拡張バスはAmiga 1000にも存在します。Zorro II は68000バスの比較的単純な拡張です。[ 5 ] Autoconfig では、バス上のすべてのデバイスが 68000 データおよびアドレスバスを使用できる必要があります。理論的には、 PCIで使用される仮想アドレスシステムでは、Autoconfig にわずかな修正が必要になります。
Amiga 2000 には、RAM 拡張、SCSI コントローラ、グラフィック カードなどの Zorro 拡張カードを 5 枚搭載できます。ただし、この規格ではデバイスの数に制限はありません。A2000 では、2 つの Zorro II スロットがISAスロットと並んでいます。Zorro バスと ISA バスは、 Intel 80286または80386システムのエミュレーションを可能にする Janus Hardware Emulator などの「ブリッジボード」を介して接続できます。 [ 5 ]
Zorro III は、 Amiga 3000およびAmiga 4000システムの 32 ビット自動構成拡張バスです。[ 6 ] A3000 の設計以降、列挙可能なすべてのハードウェア拡張で Autoconfig を使用することが望ましいとみなされました。Autoconfig を使用しないハードウェアを完全に無視することは OS の規定に準拠しており、この標準は AmigaOS 3.1 で採用されました。
初期のコモドール文書では、Auto Configuration [ 5 ] 、auto-config [ 5 ]、またはAutoConfig [ 7 ]と表記されていましたが、後の文書ではAUTOCONFIG [ 6 ]と表記されています。