Micro Channel-arkitekturen utformades av ingenjören Chet Heath. Många av de Micro Channel-kort som utvecklades använde CHIPS P82C612 MCA-gränssnittskontroller, vilket gjorde att MCA-implementationer blev mycket enklare.
ÖversiktRedigera
Micro Channel var i första hand en 32-bitars buss, men systemet stödde även ett 16-bitarsläge som utformades för att sänka kostnaden för kontakter och logik i Intelbaserade maskiner som IBM PS/2.
Situationen var dock aldrig så enkel, eftersom både 32-bitars- och 16-bitarsversionerna inledningsvis hade ett antal ytterligare valfria kontakter för minneskort, vilket resulterade i ett stort antal fysiskt inkompatibla kort för bussanslutna minnen. Med tiden flyttades minnet till processorns lokala buss, vilket eliminerade problemet. På den positiva sidan förbättrades signalkvaliteten avsevärt eftersom Micro Channel lade till jord- och strömningsstift och arrangerade stiften för att minimera störningar; en jord eller en strömning var därmed placerad inom 3 stift från varje signal.
En annan kontaktförlängning ingick för grafikkort. Denna förlängning användes för analog utgång från grafikkortet, som sedan leddes genom systemkortet till systemets egen bildskärmsutgång. Fördelen med detta var att Micro Channel-systemkort kunde ha ett grundläggande VGA- eller MCGA-grafiksystem ombord, och grafik på högre nivå (XGA- eller andra acceleratorkort) kunde sedan dela samma port. Tilläggskorten kunde då vara fria från ”äldre” VGA-lägen och använda det inbyggda grafiksystemet när det behövdes och möjliggöra en enda systemkortskontakt för grafik som kunde uppgraderas.
Micro Channel-korten hade också ett unikt, 16-bitars mjukvaruläsbart ID, som utgjorde grunden för ett tidigt plug and play-system. BIOS och/eller operativsystemet kan läsa ID:n, jämföra med en lista över kända kort och utföra en automatisk systemkonfiguration för att passa. Detta ledde till uppstartsfel där ett äldre BIOS inte kände igen ett nyare kort, vilket orsakade ett fel vid uppstart. Detta krävde i sin tur att IBM regelbundet släppte uppdaterade referensdisketter (CMOS Setup Utility). En ganska fullständig förteckning över kända ID finns tillgänglig (se avsnittet Externa länkar). Till dessa referensdisketter hörde ADF-filer som lästes av setup och som i sin tur tillhandahöll konfigurationsinformation för kortet. ADF-filen var en enkel textfil som innehöll information om kortets minnesadressering och interrupts.
Och även om MCA-korten kostade nästan dubbelt så mycket som jämförbara icke-MCA-korten, betonade marknadsföringen att det var enkelt för vilken användare som helst att uppgradera eller lägga till fler kort till sin dator, och på så sätt slippa den avsevärda kostnaden för en tekniker. På detta kritiska område var Micro Channel-arkitekturens största fördel också dess största nackdel och en av de viktigaste orsakerna till dess undergång. För att lägga till ett nytt kort (video, skrivare, minne, nätverk, modem osv.) kopplade användaren helt enkelt in MCA-kortet och satte in en anpassad diskett (som följde med datorn) för att automatiskt blanda in det nya kortet i den ursprungliga maskinvaran, i stället för att ta in en dyrt utbildad tekniker som manuellt kunde göra alla nödvändiga ändringar. Alla val för avbrott (ett ofta förbryllande problem) och andra ändringar gjordes automatiskt genom att datorn läste den gamla konfigurationen från disketten, som gjorde nödvändiga ändringar i programvaran och sedan skrev den nya konfigurationen till disketten. I praktiken innebar detta dock att användaren måste behålla samma diskett som var kopplad till den datorn. För ett litet företag med några få datorer var detta irriterande, men praktiskt. Men för stora organisationer med hundratals eller till och med tusentals datorer var det logistiskt sett osannolikt eller omöjligt att permanent matcha varje dator med en egen diskett. Utan den ursprungliga, uppdaterade disketten kunde inga ändringar göras i datorns kort. Efter att denna erfarenhet upprepats tusentals gånger insåg företagsledarna att deras drömscenario för enkel uppgradering inte fungerade i företagsvärlden, och de sökte efter en bättre process.
DataöverföringRedigera
Den grundläggande datahastigheten för Micro Channel ökades från ISA:s 8 MHz till 10 MHz. Detta kan ha varit en blygsam ökning när det gäller klockfrekvens, men den större bussbredden, i kombination med en dedikerad busskontroller som utnyttjade överföringar i burstläge, innebar att den effektiva genomströmningen var upp till fem gånger högre än ISA. För snabbare överföringar kunde adressbussen återanvändas för data, vilket ytterligare ökade bussens effektiva bredd. Medan hastigheten på 10 MHz möjliggjorde en genomströmning på 40 MB/s vid 32-bitars bredd, ökade senare modeller av RS/6000-maskiner datahastigheten till 20 MHz och genomströmningen till 80 MB/s. Vissa funktioner med högre genomströmning i Micro Channel-bussen var endast tillgängliga för RS/6000-plattformen och stöddes inte från början på kort som drivs på en Intel-plattform.
Med bus mastering kunde varje kort prata direkt med ett annat. Detta möjliggjorde prestanda som var oberoende av processorn. En potentiell nackdel med multi-master-designen var de möjliga kollisionerna när mer än ett kort försökte bli busmaster, men Micro Channel inkluderade en arbitreringsfunktion för att korrigera dessa situationer, och tillät också en master att använda ett burst-läge. Micro Channel-kort hade fullständig kontroll i upp till 12 millisekunder. Detta var tillräckligt länge för att tillåta det maximala antalet andra enheter på bussen att buffra inkommande data från överkörningsbara enheter som band och kommunikation.
Stöd för flera bus-master och förbättrad arbitrering innebär att flera sådana enheter kan samexistera och dela på systembussen. Micro Channel-bussmasterkapabla enheter kan till och med använda bussen för att prata direkt med varandra (peer to peer) med hastigheter som är högre än systemets CPU, utan något annat systemingripande. I teorin kan system med Micro Channel-arkitektur utökas, som stordatorer, genom att bara lägga till intelligenta masters, utan att den centrala processorn behöver uppgraderas.
Arbiteringsförbättring säkerställer bättre systemgenomströmning eftersom kontrollen överförs mer effektivt. Avancerad avbrottshantering avser användning av nivåkänsliga avbrott för att hantera systemförfrågningar. I stället för en särskild avbrottslinje kan flera linjer delas för att ge fler möjliga avbrott, vilket löser ISA-busens problem med konflikter mellan avbrottslinjer.
Alla signaler för avbrottsbegäran var ”offentliga” i Micro Channel-arkitekturen, vilket gör det möjligt för vilket kort som helst på bussen att fungera som I/O-processor för direkt hantering av I/O-enheters avbrott. ISA hade begränsat all sådan behandling till endast systemets CPU. På samma sätt var signalerna för begäran och beviljande av bus master offentliga, vilket innebar att enheter som var anslutna till bussen kunde övervaka latenstiden för att styra den interna buffringen för I/O-processorer. Dessa funktioner antogs inte för PCI, vilket innebar att allt I/O-stöd måste komma enbart från systemkortets processor.
Den sista stora förbättringen av Micro Channel-arkitekturen var POS, Programmable Option Select, som gjorde det möjligt att göra alla inställningar i mjukvara. Denna funktion är numera en självklarhet, men på den tiden var inställningen ett stort problem för ISA-system. POS var ett enkelt system som inkluderade enhets-ID i firmware, som drivrutinerna i datorn skulle tolka. (Denna typ av system för mjukvarukonfiguration är idag känd som plug and play.) Funktionen levde inte riktigt upp till vad den lovade; Den automatiska konfigurationen var bra när den fungerade, men ofta fungerade den inte – vilket resulterade i en dator som inte kunde startas – och att lösa problemet genom manuellt ingripande var mycket svårare än att konfigurera ett ISA-system, inte minst därför att dokumentationen för MCA-enheten tenderade att anta att den automatiska konfigurationen skulle fungera och därför inte tillhandahöll den nödvändiga informationen för att ställa in den för hand, till skillnad från dokumentationen för ISA-enheter som med nödvändighet gav fullständig information (att fysiskt ta bort och kontrollera alla IRQ-inställningar, och sedan hitta och ställa in den nya IRQ:n för en ny enhet – om en lämplig sådan fanns tillgänglig – för ISA var dock inte alls roligt, och för många användare var det omöjligt att göra det…. Det är uppenbart varför man försökte gå över till konfigurering med mjukvaruarbitrage, och varför detta senare skulle lyckas i form av PnP.)