Buss (dator)

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 29 maj 2020; kontroller kräver 6 redigeringar .

Datorbuss ( eng.  datorbuss ) i datorarkitektur  - en anslutning som tjänar till att överföra data mellan en dators funktionsblock . I bussanordningen kan man skilja på mekaniska, elektriska (fysiska) och logiska (kontroll)nivåer.

Till skillnad från en punkt-till-punkt- anslutning kan flera enheter vanligtvis anslutas till en buss över en enda uppsättning ledare. Varje buss definierar sin egen uppsättning kontakter (anslutningar) för fysisk anslutning av enheter, kort och kablar.

Datorbussarna för tidiga datorer var buntar (buntar av anslutningskablar -  signal och ström, sammanbundna för kompakthet och lätt underhåll), som implementerade parallella elektriska bussar med flera anslutningar. I moderna datorsystem används denna term för alla fysiska mekanismer som ger samma logiska funktionalitet som parallella datorbussar.

Moderna datorbussar använder både parallella och seriella anslutningar och kan ha parallella ( engelska  multidrop ) och kedjetopologier ( engelsk  daisy chain ). När det gäller USB och vissa andra bussar kan även hubb ( hubbar ) användas.

Vissa typer av höghastighetsbussar ( Fibre Channel , InfiniBand , high-speed Ethernet , SDH ) använder optiska snarare än elektriska anslutningar för signalering .

Anslutningar till bussen, en mängd olika kontakter, är som regel enhetliga och låter dig ansluta olika enheter till bussen.

Bussöverföringskontroll implementeras både på signalflödesnivån ( multiplexorer , demultiplexrar , buffertar , register , bussformare ) och från operativsystemets kärna  - i det här fallet inkluderar den lämplig drivrutin .

Beskrivning av däck

Bussar kan vara parallella (data överförs cykel för cykel i ord : varje bit är en separat ledare) och seriella (databitar överförs växelvis längs en kanal , till exempel ett par ledare).

De flesta datorer har både interna och externa bussar. Den interna bussen ansluter alla datorns interna komponenter till moderkortet (och därmed till processorn och minnet). Den här typen av buss kallas även en lokal buss eftersom den används för att ansluta lokala enheter. Den externa bussen ansluter extern kringutrustning till moderkortet.

Nätverksanslutningar , som Ethernet , ses vanligtvis inte som bussar, även om skillnaden är mer konceptuell än praktisk. Tillkomsten av InfiniBand- och HyperTransport -teknologier suddade ytterligare ut gränsen mellan nätverk och bussar. [ett]

Historik

Första generationen

Tidiga datorbussar var en grupp ledare som kopplade datorminne och kringutrustning till processorn. Nästan alltid användes olika bussar för minne och kringutrustning, med olika åtkomstmetoder, fördröjningar, protokoll.

En av de första förbättringarna var användningen av avbrott . Före introduktionen utförde datorer I/O-operationer i en slinga i väntan på att en kringutrustning skulle vara klar. Det var ett slöseri med tid för program som kunde göra andra saker. Dessutom, om programmet försökte utföra andra uppgifter, kan det kontrollera enhetens status för sent och förlora data. Därför har ingenjörer gjort det möjligt för kringutrustning att avbryta processorn . Avbrott prioriterades eftersom processorn bara kunde exekvera kod för ett avbrott åt gången, och vissa enheter krävde lägre latens än andra.

En tid senare började datorer allokera minne mellan processorer. På dem fick busstillfarten också prioritet.

Det klassiska och enkla sättet att prioritera avbrott eller bussåtkomst var att koppla ihop enheter.

DEC noterade att två olika bussar kan vara överflödiga och dyra för små masstillverkade datorer och föreslog att mappa kringutrustning till minnesbussen så att de såg ut som minnesområden. Det var ett mycket djärvt beslut på den tiden, och kritiker förutspådde att det skulle misslyckas.

De första minidatorbussarna var passiva bakplan kopplade till mikroprocessorstift. Minne och andra enheter kopplades till bussen med samma adress och datastift som processorn. Alla kontakter var parallellkopplade. I vissa fall, såsom i IBM PC , behövs ytterligare processorinstruktioner för att generera signaler för att bussen ska vara en riktig I/O-buss.

I många mikrokontroller och inbyggda system existerar fortfarande inte I/O-bussen. Överföringsprocessen styrs av CPU:n, som i de flesta fall läser och skriver information till enheterna som om de vore minnesblock. Alla enheter delar en gemensam klockkälla. Kringutrustning kan begära bearbetning av information genom att signalera speciella CPU-stift med någon form av avbrott. Till exempel kommer hårddiskstyrenheten att meddela processorn om data som är redo för läsning, varefter processorn måste läsa dem från minnesområdet som motsvarar styrenheten. Nästan alla tidiga datorer byggdes på detta sätt, från Altair med S-100- bussen till IBM PC1980 -talet .

Sådana enkla bussar hade en allvarlig nackdel för allmänna datorer. All utrustning på bussen var tvungen att överföra information med samma hastighet och använda samma klockkälla . Att öka hastigheten på processorn var inte lätt, eftersom det krävde samma acceleration av alla enheter. Detta ledde ofta till en situation där mycket snabba processorer var tvungna att sakta ner för att kunna överföra information till vissa enheter. Även om detta är acceptabelt för inbyggda system, är detta problem inte acceptabelt för kommersiella datorer. Ett annat problem är att processorn krävs för alla operationer, och när den är upptagen med andra operationer kan den faktiska bussgenomströmningen lida avsevärt.

Sådana datorbussar var svåra att sätta upp med ett brett utbud av utrustning. Till exempel kan varje expansionskort som lades till kräva inställning av flera switchar för att ställa in minnesadress, I/O-adress, prioriteter och avbrottsnummer.

Andra generationen

"Andra generationens" datorbussar som NuBus löste några av ovanstående problem. Man brukar dela upp datorn i två "delar", processorn och minnet i den ena och olika enheter i den andra. En speciell bussstyrenhet ( busstyrenhet ) installerades mellan delarna . Denna arkitektur gjorde det möjligt att öka hastigheten på processorn utan att påverka bussen, för att avlasta processorn från busshanteringsuppgifter. Med hjälp av en styrenhet kunde enheter på bussen kommunicera med varandra utan inblandning av den centrala processorn. De nya däcken hade bättre prestanda men krävde också mer sofistikerade expansionskort. Hastighetsproblem löstes ofta genom att öka databussens bredd , från 8-bitars bussar i första generationen till 16- eller 32-bitars bussar i andra generationen. Konfiguration av mjukvaruenhet har också visat sig förenkla anslutningen av nya enheter, nu standardiserade som Plug-n-play .

De nya däcken krävde dock, precis som den tidigare generationen, samma hastigheter från enheter på samma buss. Processorn och minnet var nu isolerade på sin egen buss, och deras hastighet växte snabbare än hastigheten på den perifera bussen. Som ett resultat var bussarna för långsamma för de nya systemen, och maskinerna led av datasvält. Ett exempel på detta problem är att grafikkorten förbättrades snabbt och saknade bandbredden hos de nya PCI-bussarna ( Peripheral Component Interconnect ). Datorer började inkludera Accelerated Graphics Port (AGP) bara för att fungera med videoadaptrar. 2004 var AGP återigen inte tillräckligt snabb för kraftfulla grafikkort, och AGP började ersättas av den nya PCI Express-bussen .

Ett ökande antal externa enheter började använda sina egna bussar. När diskenheter uppfanns fästes de på maskinen med ett kort kopplat till bussen. På grund av detta hade datorer många expansionsplatser . Men på 1980- och 1990 -talen uppfanns nya SCSI- och IDE -bussar som löste detta problem genom att lämna de flesta expansionsplatserna i nya system tomma. Numera stöder en typisk bil ungefär fem olika däck.

Däck började delas in i intern ( lokalbuss ) och extern ( extern buss ). De förra var designade för att ansluta interna enheter som videoadaptrar och ljudkort, medan de senare var designade för att ansluta externa enheter som skannrar . IDE är en extern buss av design, men används nästan alltid inuti en dator.

Tredje generationen

"Tredje generationens" bussar (som PCI-Express ) tillåter vanligtvis både höga hastigheter som behövs för minne, grafikkort och interprocessorkommunikation, och små när man arbetar med långsamma enheter, som diskenheter. De söker också större flexibilitet när det gäller fysiska anslutningar och låter sig användas som både interna och externa bussar, till exempel för att koppla ihop datorer. Detta leder till komplexa problem med att tillgodose olika krav, så att det mesta av arbetet på dessa bussar är relaterat till mjukvara, och inte till själva hårdvaran. I allmänhet är tredje generationens bussar mer som datornätverk än de ursprungliga bussidéerna, med mer overhead än tidiga system. De tillåter också flera enheter att använda bussen samtidigt.

Moderna integrerade kretsar är ofta designade av prefabricerade delar. Bussar (såsom Wishbone ) har utvecklats för enklare integration av olika delar av integrerade kretsar.

Busstopologier

Exempel på interna datorbussar

Parallell

Sekventiell

Exempel på externa datorbussar

Exempel på universella datordäck

Se även

Anteckningar

  1. Ännu mer förvirrande är det faktum att topologin för lokala nätverk också använder konceptet bussar: både logiskt och fysiskt medium.

Länkar