Autoconfig

Autoconfig este un mecanism de alocare automată (fără a fi necesară instalarea de jumperi ) a resurselor hardware pentru dispozitivele de expansiune ale computerului Amiga . Mult mai târziu, această caracteristică a fost implementată pe alte platforme ( Amiga 500 cu suport Autoconfig a apărut în 1987 , iar prima versiune a magistralei PCI a apărut în 1992 ), suportul pentru protocol la nivelul sistemului de operare a fost numit Plug and Play .

În momentul în care computerul este pornit, AmigaOS interogează secvențial fiecare dispozitiv conectat și îi alocă o serie de adrese în spațiul de adrese din memoria computerului . În cazurile în care dispozitivul este un card de expansiune de memorie, AmigaOS atașează noua memorie disponibilă la memoria existentă în sistem. De asemenea, Autoconfig acceptă pornirea din ROM .

Protocol

Fiecare slot de expansiune (și, prin urmare, fiecare card instalat în el) este echipat cu două semnale: /CFGIN și /CFGOUT (simbolul „/” înseamnă că este utilizată logica inversă, iar nivelul activ al semnalului este zero logic).

Dacă linia /CFGOUT a unui slot este inactivă, atunci se consideră că cardul instalat în acest slot nu este configurat.

Liniile /CFGIN ale tuturor sloturilor de expansiune (cu excepția liniei /CFGIN a primului slot) sunt trase la nivelul inactiv. Astfel, după pornire, se consideră că toate plăcile de expansiune nu sunt configurate.

Dacă intrarea /CFGIN a cardului este activă, în timp ce ieșirea /CFGOUT nu este activă, atunci cardul „răspunde” la apelurile către zona de memorie începând de la adresa $E80000 (sau $FF000000 pentru magistrala Zorro III) (a un fel de analog al spațiului de configurare pe magistrala PCI ). Cu alte cuvinte, starea în care intrarea cardului /CFGIN este activă și ieșirea /CFGOUT nu este activă corespunde modului de configurare.

Configurarea dispozitivului începe prin setarea liniei /CFGIN la starea activă. În continuare, se efectuează pașii necesari de configurare (citirea informațiilor despre placa de extensie și setarea adreselor). După finalizarea configurației, cardul este instruit să seteze /CFGOUT în starea activă (instrucțiunea de a seta /CFGOUT în starea activă este dată și dacă nu este posibilă configurarea completă a dispozitivului și sistemul de operare dorește să oprească configurarea cardul curent și treceți la configurarea următorului).

Semnalele /CFGIN și /CFGOUT ale sloturilor de expansiune sunt conectate într-un lanț: /CFGOUT al primului slot este conectat la /CFGIN al doilea, /CFGOUT al doilea la /CFGIN al treilea și așa mai departe. linia primului slot și /CFGOUT a ultimului sunt conectate la controlerul de sistem. Astfel, după configurarea ultimei plăci de expansiune, controlerul de sistem va fi anunțat că nu au mai rămas carduri de expansiune care necesită configurare. Această abordare are un avantaj: nu există o limită a numărului de carduri care participă la configurare. Cu toate acestea, dacă lanțul este întrerupt (de exemplu, nicio placă de expansiune nu este instalată într-unul dintre sloturi), atunci procesul de configurare se blochează (controlerul de sistem nu poate aștepta ca linia /CFGOUT a ultimului slot de expansiune să fie setată la activ. stat). Soluția problemei a fost să instalați cipul 74LS32 (patru elemente SAU cu două intrări) și să ridicați liniile /CFGOUT ale tuturor sloturilor de expansiune la nivelul activ. Acest cip a devenit singura piesă hardware necesară pentru ca Autoconfig să funcționeze corect .

Comparație cu PCI

Deși implementarea protocolului Autoconfig este mai simplă decât PCI , oferă aceeași funcționalitate de configurare automată a dispozitivului. Busul PCI oferă acces aleatoriu la dispozitivele configurabile (serial în Autoconfig ), și, ca urmare, modelul de programare al mecanismului de configurare devine mai complicat și există, de asemenea, o limită a numărului de dispozitive (pentru mai multe detalii, consultați descrierea al ciclului de configurare PCI bus type0 ).

Deși implementarea Autoconfig este mai simplă și numărul de dispozitive conectate este nelimitat, Autoconfig are un dezavantaj: dispozitivele pot fi configurate doar secvenţial și o singură dată (până când computerul este repornit).

Vezi și

Link -uri