Til hovedinnhold

Hvordan fungerer hovedkortet?

Introduksjon

Hovedoppgaven til hovedkortet er å koble sammen alle komponentene i en datamaskin. I denne artikkelen skal vi se litt nærmere på hvordan hovedkortet gjør dette og dermed gi en bedre forståelse for hvordan dagens datamaskiner fungerer.

Det finnes mange forskjellige typer hovedkort på markedet i dag, men de fleste baserer seg på de samme prinsippene. Det viktigste å se på når man skal vurdere et hovedkort er brikkesettet. Brikkesettet definerer omtrent alle funksjoner på hovedkortet. Videre i artikkelen skal vi gå nærmere inn på dette.

Arkitektur

De to viktigste komponentene på hovedkortet er nordsiden og sørsiden (northbridge og southbridge på engelsk). Disse utgjør tilsammen brikkesettet og fungerer som knutepunkt for kommunikasjon mellom forskjellige enheter på hovedkortet. Nordsiden er den delen der enheter med høyt krav til overføringshastighet, for eksempel minne og grafikkort, tilkobles. I sørsiden tilkobles enheter med noe mindre krav til overføringshastighet, for eksempel harddisk og tastatur.

Nordsiden og sørsiden er normalt separert i to fysisk adskilte brikker, men det finnes tilfeller der de er blitt integrert i en og samme brikke.

Huskeregler for å skille mellom nordside og sørside

Navnene nordside og sørside kommer av hvordan arkitekturen til et hovedkort ofte tegnes. Det er vanlig å tegne nordsiden øverst mot prosessoren (altså lengst nord mot prosessoren hvis det hadde vært et kart) og sørsiden lengst nederst (altså lengst sør på "kartet"), derav navnene nordside og sørside.

Det skal nevnes at Intel ikke lenger bruker disse navnene, men istedet "Root Complex", "Memory Controller Hub" eller "Graphics and Memory Controller Hub" for nordside og "Switch" eller "I/O Controller Hub" for sørsiden. Dette er fordi de ikke lengre er broer (bridges) som kobler sammen forskjellige busstyper, men heller en logisk oppdeling av kontrollere som driver forskjellige busser og enheter.

Kommunikasjonen mellom de to brikkene som utgjør brikkesettet er ikke industristandard og man kan dermed ikke koble sammen to vilkårlige nordsider og sørsider. Typisk vil en nordside brikke bare kunne tilkobles en eller to forskjellige typer sørsider. Heldigvis er brikkesettet allerede påmontert hovedkortet når man kjøper det, så den gjennomsnittlige PC-bygger trenger ikke tenke på å finne kompatible brikker.

En typisk oppdeling av hovedkortet

Busser

Hva er en buss?

Buss er et begrep som er viktig å kunne for å forstå virkemåten til hovedkortet. En buss består av flere ledninger eller signalbaner som kobler sammen enheter i en datamaskin. Disse signalbanene danner tilsammen adressebussen, databussen og kontrollbussen. Hver enhet har en unik adresse. Adressebussen forteller hvilken adresse dataene skal overføres til. Databussen overfører dataene og kontrollbussen kontrollerer flyten i overføringen av dataene.

For å gi et veldig enkelt eksempel, la oss tenke oss en buss med 8 bit for data, 3 bit for adresse og et par bit for kontroll. Kommunikasjonen foregår over en forhåndsbestemt kommunikasjonsprotokoll. Dette betyr at enhetene på bussen er forhåndsprogrammert til å kjenne igjen visse data. F.eks kan man si at hvis de 5 første datalinjene er satt til 00110 så betyr dette "jeg vil gjerne vite din status", de 3 siste sier vi at angir hvem dataene er i fra (avsenders adresse).

La oss nå si at flere enheter er koblet til denne bussen, blant annet enhet A med adresse 001 og enhet B med adresse 111. Nå vil A gjerne vite statusen til B. Dette betyr at A må sette adresselinjene til 111, de 5 første datalinjene til 00110 (som betyr "jeg vil gjerne vite din status"), de tre siste datalinjene til 001 (for å angi avsenderadressen) og kontrollsignalene til en verdi som betyr at gyldig data ligger på databussen. Deretter er det bare å vente i spenning for A.

Kontrollsignalene som ble satt av A forteller B at det er gyldig data på bussen. B ser så på adressebussen for å se om dataene er adressert til han. Da adressen stemmer, tar B inn dataene fra bussen og tolker de. Dataene er 00110001. Dette vet B at betyr "jeg vil gjerne vite din status, hilsen adresse 001". Da må B legge sin status ut på datalinjene, adressen til enheten som spurte på adresselinjen og riktig kontrollsignaler for å angi at gyldig data er tilgjengelig må settes på kontrollbussen.

Forskjellige typer busser
På hovedkortet finnes det mange forskjellige busser. Noen er interne og noen er eksterne. De eksterne bussene er de vi kan koble på enheter utenifra. For eksempel til PCI- og PCI express-bussene finnes det fysiske spor på hovedkortet slik at vi kan tilkoble for eksempel et nettverkskort. De interne bussene er de som ikke er tilgjengelig for nye tilkoblinger, for eksempel prosessorbussen som kobler sammen prossesoren og nordsiden.
De mest vanlige bussene som finnes på dagens hovedkort er:
-Front-Side Bus (FSB) - Mellom prosessor og nordsiden
-Memory Bus - Mellom minnekontrolleren og minnet
-Accelerated Graphics Port (AGP) - Buss for tilkobling av skjermkort
-Low Pin Count (LPC) - Buss for BIOS og tilkobling (via Super I/O) av tastatur, serieport mm.
-Peripheral Component Interface (PCI) - For tilkobling av f.eks. lydkort
-PCI express - Nyere og raskere versjon av PCI-bussen

Nordsiden

Northbridge

Gjennom nordsiden tilkobles enheter med høyt krav til hastighet på overføring av data. Skjermkort og minne er typiske eksempler på slike enheter. Noen av nordsidens funksjonaliteter har på nyere hovedkort blitt flyttet inn i prosessoren.

Intel i815EP-nordside

Front-side buss
Nordsiden er tilkoblet prosessoren direkte gjennom en "Front-side Bus" (FSB). Dette er typisk den raskeste bussen i en datamaskin. Gjennom denne bussen foregår all kommunikasjon med prosessoren. Derfor er ytelsen til denne bussen veldig viktig for den totale ytelsen til systemet. Ytelsen til FSB-en er gitt av tre parametre: bussbredden (for data), klokkefrekvensen og antall overføringer per klokkesyklus. F. eks. kan en 32-bits buss som kan utføre to overføringer per syklus med en klokkefrekvens på 400 MHz gi en teoretisk topphastighet på litt over 3000 MB/s.

Buss for grafikk
Avanserte skjermkort har behov for rask overføring av data for å kunne yte optimalt. Inntil nylig har bussen "Accelerated Graphics Port" (AGP) vært mye utbredt for grafikk, men den blir i dag utfaset av PCI express x16.

Minnekontroller
Minnekontrolleren har som oppgave å skrive, lese og regelmessig oppdatere det dynamiske minnet (DRAM). DRAM må oppdateres ofte for å ikke miste sine data. Det er kun noen titalls millisekunder som skal til før DRAM mister sine data hvis den ikke blir oppdatert.

Grensesnitt mot sørsiden
For at prosessoren også skal kunne kommunisere med sørsiden, finnes det et buss-grensesnitt i nordsiden som sørger for kommunikasjon videre til sørsiden. Dette grensesnittet kan variere fra brikkesett til brikkesett.

Sørsiden

I sørsiden finner vi enheter med mindre krav til rask dataoverføring, blant annet kontrollere for USB, harddisker, direkte minnetilgang (DMA) og avbrudd.

DMA-kontroller
Kontrolleren for direkte minnetilgang eller "Direct Memory Access (DMA) Controller" er en komponent som gjør at enheter kan få direkte tilgang til minnet i stedet for at det skal gå igjennom prosessoren. Dette gjør at prosessoren kan konsentrere seg om andre oppgaver samtidig som enheter aksesserer minnet.

Avbruddskontroller
Denne kontrolleren håndterer maskinvareavbrudd som kommer fra de forskjellige enhetene i datamaskinen. Hvis for eksempel nettverkskortet ditt har mottatt data må det på en eller annen måte si i fra slik at datamaskinen kan bruke disse dataene. Hvis du taster inn www.hardware.no i nettleseren din, vil nettleseren din sende en forespørsel til denne nettsiden om å få se innholdet. Nettstedet svarer med å sende deg innholdet. Disse dataene kommer først frem til nettverkskortet. Nettverkskortet må da sende et avbrudd til avbruddskontrolleren som igjen sier i fra til prosessoren om at et avbrudd har forekommet. Avbruddskontrolleren har signalbaner som sier i fra direkte til prosessoren. Prosessoren vil da ta en pause fra det den jobber med og kjøre et lite program som er assosiert med det aktuelle avbruddet. Dette programmet vil bestå av instruksjoner som gjør at prosessoren henter data fra nettverkskortet og legger de i minnet. Nettleseren kan nå få tak i disse dataene og vise det som en nettside i nettleseren. (Merk: Dette er bare et eksempel for å vise hvordan avbrudd fungerer, det er ikke nødvendigvis slik alle nettverkskort fungerer.)

Noen av de vanligste komponentene i en sørside

USB-kontroller
"Universal Serial Bus" er en tilkoblingsstandard som er meget utbredt i dag. Her kan man koble til alt fra skrivere og scannere til vifter og kaffevarmere. Det man tidligere plugget inn i parallellporten eller serieporten er i dag som regel omgjort til USB-enheter. Mange hobbyutviklere ergrer seg over at serieporten ofte ikke lenger er tilgjengelig på f.eks. nye bærbare pc'er. Dette er nemlig en port som er forholdsvis enkel å programmere mot i forhold til USB. Heldigvis finnes det en USB-standard som støtter virtuelle serieporter og det er mange USB-to-serial-produkter der ute slik at man fortsatt kan programmere mot serieporten som tidligere.

SATA-kontroller
SATA eller "Serial Advanced Technology Attachment" -kontrolleren brukes for tilkobling av harddisker eller optiske drev (f. eks. CD-ROM).

Lyd-kodek
Noen hovedkort har lyd-kodek (fritt oversatt fra "audio-codec") integrert i sørsiden. Dette er en liten hardware del som gjør om fra analoge til digitale lydsignaler og omvendt. Dette er i bunn og grunn et integrert lydkort.

Andre komponenter

Forskjellige andre komponenter på hovedkortet

På hovedkortet finnes det også flere komponenter enn bare nordsiden og sørsiden. Mange av disse er tilkoblinger for andre enheter, for eksempel kontakter for PCI eller minne, men på noen hovedkort finner man også brikker for nettverk, grafikk og lyd. En veldig viktig liten komponent som sitter på hovedkortet er BIOS.

Phoenix BIOS brikke

BIOS
Basic Input/Output System (BIOS) er den delen av av hovedkortet som får datamaskinen til å starte opp. Her kan man når datamaskinen starter opp velge forskjellige innstillinger, bl. a. hvilken rekkefølge BIOS skal lete etter lagringsenheter med boot-egenskaper eller hvilken frekvens klokken skal kjøre på.

Når strømmen blir skrudd på er prosessoren satt til å lese sin første instruksjon fra en bestemt minneplasseringen i BIOS. Instruksjonen som er lagret på denne plasseringen er som regel en enkelt jump-instruksjon som forteller prosessoren hvor boot-loaderen er plassert i BIOS-minnet. Prosessoren hopper til boot-loaderens plassering og fortsetter eksekveringen derfra. En boot-loader er bare et enkelt program som vanligvis laster inn en second-stage boot loader som for eksempel GRUB, LILO eller NTLDR. Denne vil deretter laste inn operativsystemet.

CMOS batteri

CMOS-batteri
Dette er et lite batteri som holder en sanntidsklokke gående. Det er dette som gjør at datamaskinen klarer å vite hva klokken er selv etter at strømmen har vært avslått på datamaskinen. På eldre maskiner der BIOS innstillingene ble lagret på RAM hadde dette batteriet også ansvaret for at denne RAM-brikken hadde strøm. Dersom man hadde glemt BIOS passordet for eksempel, kunne man ta ut CMOS batteriet og kortslutte terminalene for å resette alle BIOS-innstillinger. Innstillingene ble lagret på en CMOS-basert RAM-brikke, derav navnet CMOS-batteri.

Fra toppen: PCI express x4, x16, x1, x16, standard PCI

Spor for PCI/PCI Express
Her plasseres ekstrautstyr som for eksempel lydkort eller nettverkskort. PCI express x16-spor er tilkoblet nordsiden for ekstra høy hastighet, de andre sporene er tilkoblet sørsiden.

Minnespor
Minnespor er som ordet tilsier stedet hvor minnemoduler plasseres. Det er begrensninger på hvor mye minne og hvilken type minne du kan sette inn. Dette er som regel gitt av typen brikkesett som er plassert på hovedkortet.

Super I/O
En brikke for tilkobling av blant annet mus, tastatur, serieport, parallellport og diskettstasjon. Denne brikken tilkobles LPC-bussen via et grensesnitt i sørsiden.

SATA-tilkoblinger

ATA-tilkoblinger
ATA ("Advanced Technology Attachment")-tilkoblingen brukes for å koble på lagringsenheter slik som harddisker og CD-rom. Denne tilkoblingen er en teknologi som har utviklet seg fra Western Digitals opprinnelige "Integrated Drive Electronics"-grensesnitt fra 1986. I 2003 ble Seriell ATA (SATA) introdusert og som et resultat fikk den tidligere ATA versjonen navnet Parallell ATA (PATA).

Klokkegenerator

Klokkegenerator
Klokkegeneratoren bestemmer hvilken frekvens prosessoren skal kjøre med. Frekvensen kan forandres ved hjelp av innstillinger i BIOS. (Merk: Vi anbefaler at bare de som vet hva de gjør forandrer på denne innstillingen da det kan få konsekvenser for datamaskinen din.)

Oppsummering

Vi har i denne artikkelen sett på hvordan arkitekturen til et hovedkort ser ut og hvilke komponenter det består av. I seksjonen om busser gikk vi igjennom hvordan en buss fungerer og ga et eksempel på hvordan kommunikasjon på en tenkt 8-bits buss kunne se ut.

Vi har gått litt nærmere inn på hva som skjuler seg inne i brikkesettet og vi har lært at all kommunikasjon med prosessoren foregår igjennom brikkesettet. I seksjonen om nordsiden lærte vi at det er her enheter med høyt krav til rask dataoverføring tilkobles og vi gikk deretter igjennom hvilke enheter som fantes i sørsiden.

Til slutt så vi på noen av de andre komponentene man kan observere på et hovedkort. Blant annet gikk vi inn på BIOS sin oppgave om å starte opp maskinen og vi lærte at det er her den første instruksjonen som prosessoren jobber med ligger.

Acer E360 hovedkort med Nforce3 brikkesett som mangler den tradisjonelle nordsiden.

Kilder:
Wikipedia
PC-basert instrumentering og mikrokontrollere

annonse