Computerbus ( eng. computerbus ) i computerarkitektur - en forbindelse, der tjener til at overføre data mellem en computers funktionsblokke . I busenheden kan man skelne mellem mekaniske, elektriske (fysiske) og logiske (kontrol) niveauer.
I modsætning til en punkt-til-punkt- forbindelse kan flere enheder normalt forbindes til en bus over et enkelt sæt ledere. Hver bus definerer sit eget sæt stik (forbindelser) til den fysiske tilslutning af enheder, kort og kabler.
Computerbusser fra tidlige computere var bundter (bundter af forbindelsesledninger - signal og strøm, bundet sammen for kompakthed og nem vedligeholdelse), der implementerede parallelle elektriske busser med flere forbindelser. I moderne computersystemer bruges dette udtryk for enhver fysisk mekanisme, der giver den samme logiske funktionalitet som parallelle computerbusser.
Moderne computerbusser bruger både parallelle og serielle forbindelser og kan have parallelle ( engelsk multidrop ) og kæde ( engelsk daisy chain ) topologier. I tilfælde af USB og nogle andre busser kan hubs ( hubs ) også bruges.
Nogle typer højhastighedsbusser ( Fibre Channel , InfiniBand , high-speed Ethernet , SDH ) bruger optiske snarere end elektriske forbindelser til signalering .
Stik til bussen, en række stik, er som regel forenede og giver dig mulighed for at forbinde forskellige enheder til bussen.
Busoverførselskontrol er implementeret både på signalflowniveauet ( multipleksere , demultipleksere , buffere , registre , busformere ) og fra operativsystemkernen - i dette tilfælde inkluderer den den relevante driver .
Busser kan være parallelle (data overføres cyklus for cyklus i ord : hver bit er en separat leder) og serielle (databits overføres skiftevis langs en kanal , for eksempel et par ledere).
De fleste computere har både interne og eksterne busser. Den interne bus forbinder alle computerens interne komponenter til bundkortet (og derfor til processoren og hukommelsen). Denne type bus kaldes også en lokal bus, fordi den bruges til at forbinde lokale enheder. Den eksterne bus forbinder eksterne enheder til bundkortet.
Netværksforbindelser , såsom Ethernet , opfattes normalt ikke som busser, selvom forskellen er mere konceptuel end praktisk. Fremkomsten af InfiniBand- og HyperTransport -teknologier slørede yderligere grænsen mellem netværk og busser. [en]
Tidlige computerbusser var en gruppe ledere, der forbandt computerhukommelse og periferiudstyr til processoren. Næsten altid blev der brugt forskellige busser til hukommelse og periferiudstyr med forskellige adgangsmetoder, forsinkelser, protokoller.
En af de første forbedringer var brugen af interrupts . Forud for deres introduktion udførte computere I/O-operationer i en sløjfe og ventede på, at en perifer enhed var klar. Det var spild af tid for programmer, der kunne andre ting. Også, hvis programmet forsøgte at udføre andre opgaver, kunne det kontrollere enhedens status for sent og miste data. Derfor har ingeniører gjort det muligt for eksterne enheder at afbryde processoren . Afbrydelser blev prioriteret, fordi processoren kun kunne udføre kode for én afbrydelse ad gangen, og nogle enheder krævede lavere latenstid end andre.
Nogen tid senere begyndte computere at allokere hukommelse mellem processorer. På dem blev busadgang også prioriteret.
Den klassiske og enkle måde at prioritere afbrydelser eller busadgang på var at bruge kæde-enheder.
DEC bemærkede, at to forskellige busser kunne være overflødige og dyre for små, masseproducerede computere, og foreslog at kortlægge periferiudstyr til hukommelsesbussen, så de lignede hukommelsesområder. Det var en meget dristig beslutning på det tidspunkt, og kritikere forudsagde, at den ville mislykkes.
De første mini-computerbusser var passive backplanes forbundet til mikroprocessorben. Hukommelse og andre enheder blev forbundet til bussen ved hjælp af samme adresse og datastifter som processoren. Alle kontakter var forbundet parallelt. I nogle tilfælde, såsom i IBM PC'en , er der behov for yderligere processorinstruktioner for at generere signaler, for at bussen kan være en ægte I/O-bus.
I mange mikrocontrollere og indlejrede systemer eksisterer I/O-bussen stadig ikke. Overførselsprocessen styres af CPU'en, som i de fleste tilfælde læser og skriver information til enhederne, som om de var hukommelsesblokke. Alle enheder deler en fælles urkilde. Periferiudstyr kan anmode om behandling af information ved at signalere specielle CPU-stifter ved hjælp af en form for afbrydelse. For eksempel vil harddiskcontrolleren give processoren besked om data klar til læsning, hvorefter processoren skal læse dem fra det hukommelsesområde, der svarer til controlleren. Næsten alle tidlige computere blev bygget på denne måde, fra Altair med S-100- bussen til IBM-pc'en i 1980'erne .
Sådanne simple busser havde en alvorlig ulempe for almindelige computere. Alt udstyr på bussen skulle sende information med samme hastighed og bruge den samme urkilde . Det var ikke let at øge processorens hastighed, da det krævede samme acceleration af alle enheder. Dette førte ofte til en situation, hvor meget hurtige processorer skulle sænke farten for at kunne overføre information til nogle enheder. Selvom dette er acceptabelt for indlejrede systemer, er dette problem ikke acceptabelt for kommercielle computere. Et andet problem er, at processoren er påkrævet til alle operationer, og når den er optaget af andre operationer, kan den faktiske busgennemstrømning lide betydeligt.
Sådanne computerbusser var svære at sætte op med en bred vifte af udstyr. For eksempel kan hvert udvidelseskort, der blev tilføjet , kræve indstilling af flere switche for at indstille hukommelsesadressen, I/O-adressen, prioriteter og interrupt-numre.
"Anden generation" computerbusser som NuBus løste nogle af ovenstående problemer. De delte normalt computeren i to "dele", processor og hukommelse i den ene og forskellige enheder i den anden. En speciel buscontroller ( buscontroller ) blev installeret mellem delene . Denne arkitektur gjorde det muligt at øge processorens hastighed uden at påvirke bussen, for at aflaste processoren fra busstyringsopgaver. Ved hjælp af en controller kunne enheder på bussen kommunikere med hinanden uden indgriben fra den centrale processor. De nye dæk havde bedre ydeevne, men krævede også mere sofistikerede udvidelseskort. Hastighedsproblemer blev ofte løst ved at øge databusbredden , fra 8-bit busser i første generation til 16- eller 32-bit busser i anden generation. Softwareenhedskonfiguration har også vist sig at forenkle tilslutningen af nye enheder, nu standardiseret som Plug-n-play .
De nye dæk krævede dog, ligesom den forrige generation, de samme hastigheder fra enheder på samme bus. Processoren og hukommelsen var nu isoleret på deres egen bus, og deres hastighed voksede hurtigere end hastigheden på den perifere bus. Som følge heraf var busserne for langsomme til de nye systemer, og maskinerne led af datasult. Et eksempel på dette problem er, at videokort blev hurtigt forbedret og manglede båndbredden af selv de nye Peripheral Component Interconnect (PCI) busser. Computere begyndte kun at inkludere Accelerated Graphics Port (AGP) for at arbejde med videoadaptere. I 2004 var AGP igen ikke hurtig nok til kraftige videokort, og AGP begyndte at blive erstattet af den nye PCI Express-bus .
Et stigende antal eksterne enheder begyndte at bruge deres egne busser. Da diskdrev blev opfundet, blev de fastgjort til maskinen med et kort forbundet til bussen. På grund af dette havde computere mange udvidelsespladser . Men i 1980'erne og 1990'erne blev der opfundet nye SCSI- og IDE - busser, der løste dette problem ved at lade de fleste udvidelsesslots i nye systemer stå tomme. I dag understøtter en typisk bil omkring fem forskellige dæk.
Dæk begyndte at blive opdelt i intern ( lokal bus ) og ekstern ( ekstern bus ). Førstnævnte var designet til at forbinde interne enheder såsom videoadaptere og lydkort, mens sidstnævnte var designet til at forbinde eksterne enheder såsom scannere . IDE er en ekstern bus af design, men bruges næsten altid inde i en computer.
"Tredje generation" busser (såsom PCI-Express ) tillader normalt både høje hastigheder, der er nødvendige for hukommelse, videokort og interprocessorkommunikation, og små, når du arbejder med langsomme enheder, såsom diskdrev. De søger også større fleksibilitet i forhold til fysiske forbindelser, idet de lader sig bruge som både interne og eksterne busser, for eksempel til at forbinde computere. Dette fører til komplekse problemer med at opfylde forskellige krav, så det meste af arbejdet på disse busser er relateret til software og ikke til selve hardwaren. Generelt er tredje generations busser mere som computernetværk end de originale busideer, med mere overhead end tidlige systemer. De giver også flere enheder mulighed for at bruge bussen på samme tid.
Moderne integrerede kredsløb er ofte designet af præfabrikerede dele. Busser (såsom Wishbone ) er blevet udviklet til lettere integration af forskellige dele af integrerede kredsløb.
Computerbusser og interfaces | |
---|---|
Basale koncepter | |
Processorer | |
Indre | |
bærbare computere | |
Kører | |
Periferi | |
Udstyrsstyring | |
Universel | |
Video interfaces | |
Indlejrede systemer |