bussene

Bussene

Redaktør:Håkon Tolsby

Læringsmål: Gi en forståelse av hvordan datamaskinen er oppbygd, hvordan de ulike delene henger sammen og hvordan de fungerer

Innhold:

Sist oppdatert: 7. september 2009

Innledning

Alle komponentene i datamaskinen er koblet sammen med ledningsremser som kalles busser. Bussene frakter data mellom de ulike komponentene i datamaskinen slik at de kan kommuniserer med hverandre.

En buss består av flere ledninger som ligger inntil hverandre, og antallet parallelle linjer avgjør hvor mye data som kan sendes om gangen. Det kalles bredden til bussen. Hvis det ligger 16 ledninger inntil hverandre, betyr det at det kan overføres 16 biter eller 2 byter samtidig. Vi sier at bussen er 16 biter bred.

Bredden på bussen varierer fra maskin til maskin etter hvilket formål den har, og avhenger av hva slags prosessor som er koblet til. Den kan være fra 8 biter til 64 biter bred.

Vi skiller bussystemene i tre hovedeler avhengig av hvor de befinner seg i datamaskinen. De er:

Internbuss

Internbussen er den som går internt i prosessoren, og som kobler sammen registre og ALU. Det er en rask buss hvor overføringene mellom enhetene må skje innenfor en klokkepuls. Den må derfor kunne overføre data i den hastigheten som prosessoren krever.

Systembuss

Systembussen går fra prosessoren ut til internminnet og de ulike tilkoblingsportene for inn- og utenhetene på hovedkortet. Den kaldes også for lokalbuss og hastighet og bredde avhenger helt av hovedkortets prosessor. Tidligere overførte systembussen data i samme hastighet som prosessoren. Men prosessoren har utviklet seg raskere enn de andre komponentene, og systembussene må derfor benytte en lavere hastighet. Typisk vil systembussen være 64 biter bred og arbeide ved 133 MHz.

Systembussen er egentlig et sammensatt bussystem som består av tre busser:

systembussSystembussen knytter sammen CPU, internminnet (RAM og ROM) og I/U portene. Den er oppdelt i tre busssystemer: adressebuss, databuss og kontrollbuss. Systembussen kalles også for lokalbuss.

Adressebussen brukes av prosessoren til å bestemme hvilken enhet det skal leses eller skrives til. Enheten kan enten være internminnet (RAM/ROM), eller det som vi kaller porter. Portene er tilkoblingspunkter for inn- og utenheter (i/u-enheter) slik som tastatur, skjermkort og skriver. Adressebussen er enveis, og den styres av prosessoren.

Alle byter i internminnet og alle i/u-porter har hver sin adresse, slik at de kan adresseres unikt for lesing eller skriving. Noen datamaskiner skiller mellom minneadresser og portadresser. Det gjør Intelbaserte PC-er. De har to typer adresser, en for minnet og en for i/u-porter. Når en Pentiumprosessor legger en adresse på adressebussen, er den enten til minnet eller til en port. Hva som er tilfellet, bestemmes av kontrollbussen. Den sender ut et kontrollsignal som enten ruter adressen til internminnet eller til portene. Det kalles uavhengig i/u.

Alternativet er at minnet og i/u-portene deler det samme settet med adresser. Det kalles minnerettet i/u.

En Pentium-prosessor har en 32-biters adressebuss. Det betyr at den kan sende 232 = 4 294 967 296 (4 giga) ulike adresser over adressebussen. Hvis hver adresse refererer til 1 byte i internminnet, betyr det at prosessoren kan adressere et fysisk minne på maksimalt 4 GB.

Databussen er en toveisbuss som brukes til å frakte data fram og tilbake mellom prosessoren og minnet og mellom minnet og i/u-enhetene.

Bredden på databussen er en viktig faktor for hvor raskt data kan overføres mellom enhetene i datamaskinen. En Pentium-prosessor har en 64-biters ekstern databuss og kan dermed overføre 8 byter om gangen.

Kontrollbussen styrer hvorvidt det skal leses fra eller skrives til minnet eller en i/u-port. Databussen brukes både til lesing og skriving av data, men den kan ikke gjøre begge deler samtidig. Det kontrolleres ved at prosessoren sender ut et lesesignal eller et skrivesignal på kontrollbussen.

Det skal dessuten skilles mellom adresser til internminnet og adresser til i/u-porter, for bare en enhet har tilgang til databussen om gangen.

De fire viktigste kontrollsignalene på kontrollbussene er derfor:

Utvidelsesbuss

Utvidelsesbussene er datamaskinens busser for tilkobling av eksterne inn- og utenheter og kalles også for I/U-busser. De færreste eksterne enheter klarer å kommunisere med systembussens store hastighet. Derfor er det behov for enklere utvidelsesbusser med lavere hastighet. I en moderne PC er det flere forskjellige utvidelsesbusser:

  • ISA-bussen, som er den eldste, enkleste og langsomste bussen, og som er på vei til å bli utfaset
  • PCI-bussen, som er en høyhastighetsbuss
  • AGP-bussen, som er svært kraftigst, men som bare brukes til grafikkort.
  • Direkte Rambuss, som er en høyhastighetsbuss for internminnet
  • USB-bussen, som er en lavhastighetsbuss og som vil erstatte ISA-bussen
  • (Det fantes en rekke andre, EISA, MCA, VL Bus, men disse er utgående)

Utvidelsesbussene er egentlig en forlengelse av systembussen. På hovedkortet ender systembussen i et noen kontrollerkretser (engelsk: chipset), som danner "broer" (engelsk: bridge) til de andre bussene.

Kontroller-kretsene styrer kommunikasjonen på utvidelsesbussene og sørger for at overføringen mot den raskere systembussen skjer uten tap av data.

Kontroller-kretsene danner
bro mellom systembussen
og utvidelsesbussene

   ISA  PCI  AGP  DirekteRambuss  USB
Databuss (biter)  16 32/64 32 4*16 serie
Busshastighet (MHz)  8 33 132/264 800  
Båndbredde (MByter/s)  8 66/132 528/1GB 6,4 GB  12Mb/
1,5 MB

ISA (engelsk: Industry Standard Architecture). ISA har gjennom 80- og 90-årene vært den rådende standarden for alle PC-er. Den ble introdusert på IBM PC AT i 1984 og har siden vært standardbussen for PC.

I PC-en spiller ISA-bussen to funksjoner:

  • Som intern ISA-bussen hvor den brukes til de enkle portene som: tastatur, diskettstasjon, serieporter (COM 1 og 2) og parallellport (LPT).
  • Som ekstern utvidelsesbuss, for tilslutning av utvidelseskort (16-biter ISA-adaptere). De festes til egne utvidelsesspor (engelsk: expansion slots) på hovedkortet.

Ulempen med ISA-bussen er at den er meget sen. Den har kun en 16 biters databuss og bruker en klokkepuls på bare 8 MHz. Det var tilstrekkelig så lenge prosessorene ikke var så raske. (Prosessoren i en AT er en 80286 med 16-biters databuss og en klokkepuls på 10 til 16 MHz.). Da kunne ISA holde tritt med prosessoren for overføring av data, men det holder ikke når prosessoren yter 600 Mhz og har en ekstern databuss på 64 biter.

Et annet problem er at den mangler intelligens og må styres av prosessoren. Det betyr at prosessoren må vente mens data transporteres over ISA-bussen. I praksis innebærer det at båndbredden er adskillig lavere enn de teoretiske 8 MB/S, kanskje bare 1-2 MB/S.

Det er også problematisk å installere ISA-kort fordi det krever at man manuelt setter verdier som IRQ og DMA. ISA bussen er i bruk ennå, men vil bli faset ut til fordel for PCI og USB.

   .

Isa-bussen har to funksjoner som intern eller ekstern utvidelsesbuss

PCI (engelsk: Peripheral Component Interconnect). I det tomrommet som ISA-bussen skapte på grunn av sin manglende båndbredde, dukket det opp mange forslag på nye høyhastighetsbusser (EISA, MCA, VL), men PCI-bussen fra Intel ble den nye standarden.
Den har opprinnelig en hastighet på 33 MHz og en databuss på 32 biter, men den kan i praksis fungere som en 64-biters buss og kan da yte en båndbredde på opptil 132 MB/sek.

PCI-bussen fungerer asynkront i forhold til prosessoren. All kommunikasjon til og fra prosessoren buffres slik at hverken prosessoren eller PCI-enheten trenger å vente for å avlevere data. Dataene står bare i kø for å bli fraktet videre enten til prosessoren eller til PCI-enheten. Under optimale forhold sender derfor PCI-bussen én portion data (32 biter) avsted hvert klokkeslag (noen ganger kreves det to klokkeslag).

I tillegg er PCI-bussen intelligent i forhold til de enhetene som kobles til. Den støtter Plug-and-play (PnP) og alle utvidelseskort til PCI er selvkonfigurerende.

På lik linje med ISA-bussen har også PCI-bussen to funksjoner i PC-en:

  • Som intern PCI-buss med tilkobling for hovedkortets to EIDE-kanaler (harddisker).
  • Som PCI-utvidelsesbuss med utvidelsesspor for tilslutning av utvidelseskort (32-biters PCI-adaptere).
PCI-bussen har to funksjoner som intern eller ekstern utvidelsesbuss.

AGP (Engelsk: Accelerated Graphics Port) er en buss på hovedkortet som kun er beregnet til grafikkort. AGP er egentlig en utvidelse av PCI-bussen med en klokkefrekvens på 66 MHz. Det gir i utgangspunktet AGP en båndbredden på 264 MB/sek, men den benytter en teknikk som dobler og firdobler båndbredden til 528 MB/sek og 1 GB/sek.

Direkte Rambus er en høyhastighetsbuss mellom internminnet og kontroller-kretsene. Rambussen eliminerer behovet for hurtigminne. Data overføres på 16 biters datakanaler, og man kan bruke opptil fire kanale samtidig som til sammen gir 64 biter. Selve bussen operer med en hastighet på 400 MHz, men data overføre på både stigende og synkende flanke av klokkepulsen så den effektive hastigheten er 800 MHz. Det gir en båndbredde på hele 6,4 GB/sek.

Siden Direkte Rambussen kommuniserer mot kontrollerkretsene, kan ikke data overføres med en slik hastighet til og fra prosessoren. Kommunikasjonen begrenses av systembussen som forbinder prosessoren til kontrollrkretsene. Denne er på 133 MHz og reduserer båndbredden til 1 GB/sek.

Det er først når Rambussen kobles direkte til prosessoren at vi vil kunne utnytte Rambussen sitt potensiale. Rambussen krever egne RAM-brikker, RDRAM, som sitter på RIMM-moduler.

USB (engelsk: Universal Serial Bus) skiller seg vesentlig fra de andre utvidelsesbussene ved at den er en seriebuss (Se artikkelen om Kommunikasjon mot eksterne enheter). USB er også den nyeste bussen, og tanken er at man skal kunne bruke den for tilkobling av alle mulige eksterne enheter som tastatur, høytalere, skanner, videokamera, disker, skjerm osv.

Bussen er seriell og man kan koble opptil 127 enheter etter hverandre. Tilkobling skjer gjennom en USB-kontakt bak på maskinen. Man kan også samle flere tilkoblinger i USB-huber, som enten er eksterne eller innebygget i tastatur og skjerm.

En spesiell egenskap ved USB er at den tillater at man deler enheter. En skanner kan for eksempel tilsluttes to USB-busser og dermed kobles til to PC-er samtidig.

USB gjør det rimelig og enkelt å koble til eksternt utstyr, og det er derfor naturlig å anta at USB vil overta for de andre utvidelsesbussene med tiden. Foreløpig begrenses bussen av en båndbredde på 12 Mbiter/sek (1,5 MB/sek) som er for sakte for tilkobling av utstyr som krever rask dataoverføring som for eksempel harddisker. Men det arbeides med en USB 2.0 som vil ha en båndbredde på mellom 120 og 240 Mbps, og senere skal det komme en ny buss med 400 Mbps.

Oppgaver - Bussene: 
  1. Hvilken funksjon har bussene i datamaskinen?
  2. Hva består bussens bredde av og hvilken betydning har den?
  3. Hva er forskjellen på internbuss, systembuss og utvidelsesbuss?
  4. Hvilken funksjon har kontrollbussen?
  5. Forklar forskjellen på uavhengig og hukommelsesrettet i/u.
  6. Hvilken oppgave har kontrollbussen?
  7. Hva er PCI?
  8. Hvilke fordeler har USBsom utvidelsesbuss?