Autoconfig

Autoconfig er en mekanisme til automatisk (uden behov for at installere jumpere ) tildeling af hardwareressourcer til udvidelsesenheder på Amiga -computeren . Meget senere blev denne funktion implementeret på andre platforme ( Amiga 500 med Autoconfig- understøttelse dukkede op i 1987 , og den første version af PCI-bussen dukkede op i 1992 ), protokolunderstøttelse på OS -niveau blev kaldt Plug and Play .

I det øjeblik computeren tændes, poller AmigaOS sekventielt hver tilsluttet enhed og tildeler en række adresser til den i adresserummet i computerens hukommelse . I tilfælde, hvor enheden er et hukommelsesudvidelseskort, vedhæfter AmigaOS den nye tilgængelige hukommelse til den eksisterende hukommelse i systemet. Autoconfig understøtter også opstart fra ROM .

Protokol

Hvert udvidelsesstik (og dermed hvert kort installeret i det) er udstyret med to signaler: /CFGIN og /CFGOUT ("/"-symbolet betyder, at den omvendte logik bruges, og det aktive niveau af signalet er logisk nul).

Hvis /CFGOUT-linjen på et slot er inaktivt, anses det for, at kortet, der er installeret i denne slot, ikke er konfigureret.

/CFGIN-linjerne for alle udvidelsespladser (undtagen /CFGIN-linjen på den første plads) trækkes op til det inaktive niveau. Efter opstart anses det således for, at alle udvidelseskort ikke er konfigureret.

Hvis /CFGIN-indgangen på kortet er aktiv, mens /CFGOUT-udgangen ikke er aktiv, "svarer" kortet på opkald til hukommelsesområdet startende fra adressen $E80000 (eller $FF000000 for Zorro III-bussen) (a en slags analog af konfigurationsrummet på PCI-bussen ). Med andre ord svarer den tilstand, hvori /CFGIN-kortindgangen er aktiv, og /CFGOUT-udgangen ikke er aktiv, til konfigurationstilstanden.

Enhedskonfiguration begynder med at indstille /CFGIN-linjen til den aktive tilstand. Dernæst udføres de nødvendige konfigurationstrin (læse information om udvidelseskortet og indstilling af adresser). Efter at konfigurationen er afsluttet, bliver kortet instrueret i at indstille /CFGOUT til den aktive tilstand (instruktionen om at indstille /CFGOUT til den aktive tilstand gives også, hvis det ikke er muligt at konfigurere enheden fuldt ud, og OS ønsker at stoppe med at konfigurere nuværende kort og gå videre til at konfigurere det næste).

/CFGIN- og /CFGOUT-signalerne for udvidelsespladser er forbundet i en kæde: /CFGOUT på den første slot er forbundet til /CFGIN på den anden, /CFGOUT på den anden til /CFGIN på den tredje osv. /CFGIN linje på det første slot og /CFGOUT på det sidste er forbundet til systemcontrolleren. Efter konfigurationen af ​​det sidste udvidelseskort vil systemcontrolleren således få besked om, at der ikke er nogen udvidelseskort tilbage, der kræver konfiguration. Denne tilgang har en fordel: Der er ingen begrænsning på antallet af kort, der deltager i konfigurationen. Men hvis kæden er brudt (f.eks. er der ikke installeret et udvidelseskort i et af slotsene), så hænger konfigurationsprocessen (systemcontrolleren kan ikke vente på, at /CFGOUT-linjen i den sidste udvidelsesslot indstilles til den aktive stat). Løsningen på problemet var at installere 74LS32-chippen (fire ELLER-elementer med to indgange) og trække /CFGOUT-linjerne på alle udvidelsesslots op til det aktive niveau. Denne chip blev det eneste stykke hardware, der krævedes for, at Autoconfig kunne fungere korrekt .

Sammenligning med PCI

Selvom implementeringen af ​​Autoconfig -protokollen er enklere end PCI , giver den den samme automatiske enhedskonfigurationsfunktionalitet. PCI-bussen giver tilfældig adgang til konfigurerbare enheder (seriel i Autoconfig ), og som følge heraf bliver programmeringsmodellen af ​​konfigurationsmekanismen mere kompliceret, og der er også en begrænsning på antallet af enheder (for flere detaljer, se beskrivelsen af PCI -bus type0- konfigurationscyklussen ).

Selvom implementeringen af ​​Autoconfig er enklere, og antallet af tilsluttede enheder er ubegrænset, har Autoconfig en ulempe: Enheder kan kun konfigureres sekventielt og kun én gang (indtil computeren genstartes).

Se også

Links