Computersystemen/Computerbussen

Uit Wikibooks

Doelstellingen[bewerken]

Onderstaande doelstellingen komen in meer of mindere mate aan bod. Ze komen uit het leerplan Toegepaste Informatica van de richting informaticabeheer[1]. De cijfers verwijzen naar dit leerplan.

  • 1.2.1 In het inwendige van een actuele computer de belangrijkste componenten aanwijzen, benoemen en hun functie omschrijven.
  • 1.2.2 Het gegevenstransport tussen verschillende componenten op een moederbord toelichten, onder meer processor, bussen, geheugen.
  • 1.3.2 De verschillende standaarden voor de interne en externe aansluiting van optionele componenten toelichten en de corresponderende connectoren en symbolen herkennen.

Inleiding[bewerken]

De ENIAC

De belangrijkste onderdelen van de pc worden d.m.v. "draden" met de processor verbonden. Bij de eerste computers (bv. de ENIAC uit 1946) kon je die draden nogal letterlijk nemen[2], maar nu kennen we deze "draden" vooral als heel fijne "lijntjes" op de achterkant van het moederbord. Gecombineerd volgens functie hebben we het over computerbussen, bv. de PCI-bus en de USB-bus.

Strikt gezien moet er een onderscheid gemaakt worden tussen het gebruikte protocol, de gebruikte connector, het gebruikte medium (koper, glasvezel, ether) en de gebruikte bus. Zo is Thunderbolt een hardware interface die PCI Express combineert met DisplayPort, met als medium koper of glasvezel. Thunderbolt 3 gebruikt de USB-C connector. Wireless USB gebruikt het USB-protocol, maar verstuurt dit draadloos. De Raspberry Pi heeft bij model B en B+ een USB-chip die ook Ethernet aanbiedt, dankzij een USB-Ethernet adapter. In wat volgt maken we voor de eenvoud dit strikt onderscheid tussen protocol, connector, medium en bus niet altijd.

De snelheid van een computerbus wordt bepaald door de kloksnelheid, de transfers en de busbreedte. Er is een verschil tussen seriële en parallelle communicatie. Deze aspecten werden al besproken bij het Wikibook Basiskennis informatica > Snelheid.

Gegevenstransport[bewerken]

Tussen verschillende componenten op een moederbord is communicatie nodig, waarvoor bussen kunnen worden gebruikt. We lichten dit gegevenstransport toe d.m.v. de systeembus: een enkele computerbus die o.a. de processor met het werkgeheugen verbindt. Afhankelijk van de situatie is er een lees- of een schrijfoperatie.

De systeembus bestaat uit drie deelbussen, ingedeeld volgens hun functie:

  • databus (of gegevensbus) voor het transport van gegevens;
  • adresbus voor het transport van geheugenadressen;
  • controlebus (of besturingsbus) voor het signaal van de bewerking (lezen of schrijven), maar ook voor het doorgeven klokpulsen van de klokgenerator naar de processor.

Lezen[bewerken]

Programma's worden in eerste instantie ingeladen in het geheugen (MEM), maar om het te kunnen uitvoeren moet dit gebeuren in de CPU. Stel dat twee getallen moeten opgeteld worden, dan is "optellen" de instructie. Er zijn echter ook twee getallen nodig, dus ook data komt van het geheugen. Er is dus een leesoperatie nodig van het geheugen naar de processor.

  1. CPU stuurt het adres van de geheugenplaats langs de adresbus naar het geheugen (MEM).
  2. CPU zet het leessignaal op de controlebus en de CPU doet ondertussen iets anders (de CPU is namelijk veel sneller dan MEM en hem met zijn vingers laten draaien zou zonde van de tijd zijn).
  3. Door 1 en 2 weet het geheugen dat hij verwacht wordt om de waarde te zoeken die staat op het aangegeven geheugenadres. Eens gevonden zet hij deze klaar op de databus.
  4. Geheugen geeft via de controlebus door dat de waarde klaarstaat op de databus.
  5. CPU neemt de gegevens over vanop de databus.

Schrijven[bewerken]

Als de CPU een bepaald resultaat berekend heeft moet dit bewaard kunnen worden. Dit resultaat moet dus geschreven worden in/naar het geheugen (MEM).

  1. CPU stuurt het adres van de geheugenplaats langs de adresbus naar het geheugen.
  2. CPU zet het schrijfsignaal op de controlebus.
  3. CPU stuurt de data naar het geheugen. De CPU zijn schrijftaak zit erop en dus kan hij iets anders doen.
  4. Door 1 en 2 weet het geheugen dat er data zal verstuurd worden over de databus en dat hij verwacht wordt om die data (zie 3) op te slaan in zijn geheugen op het adres zoals aangegeven bij stap 1.

Externe bussen[bewerken]

Intern en extern zijn altijd relatieve begrippen. Wat extern is voor een moederbord, kan intern zijn t.o.v. de computerkast (denk bv. aan harde schijven). Bij externe bussen bedoelt men meestal bussen die extern zijn t.o.v. de CPU. Het is niet de bedoeling om dit encyclopedisch te behandelen. Volgende bussen worden niet besproken:

  • ISA-bus;
  • de bij servers gebruikte SCSI of SAS;
  • AGP, wat diende voor grafische kaarten (en dus te beschouwen als de voorganger van PCI Express);
  • Firewire, wat een zekere populariteit heeft gekend, maar uiteindelijk de duimen heeft moeten leggen t.o.v. USB.

PCI[bewerken]

Onderaan twee witte PCI-slots (met erboven een bruin AGP-slot)

De Peripheral Component Interconnect-bus of kortweg PCI-sleuf is vaak te herkennen aan hun witte kleur (zie foto). De sleuven kunnen worden gebruikt voor insteekkaarten zoals geluidskaarten, netwerkkaarten of televisiekaarten. In het begin werd dit ook gebruikt voor videokaarten, maar met de gestegen eisen is een PCI-bus onvoldoende gebleken voor deze toepassing. Alhoewel dit al een redelijke oude computerbus is, vind je ze toch vaak nog terug op recente moederborden.

Deze bus is half-duplex en kent vier uitvoeringen:

  • 32 bit op 33 MHz en dus een snelheid van 133 MB/s (de standaarduitvoering)
  • 32 bit op 66 MHz en dus een snelheid van 266 MB/s
  • 64 bit op 33 MHz en dus een snelheid van 266 MB/S
  • 64 bit op 66 MHz en dus een snelheid van 533 MB/s
Wikipedia
Meer afbeeldingen over dit onderwerp vindt u in Categorie PCI op Wikimedia Commons

PCI-Express[bewerken]

Voorbeeld van meerdere PCI Express-slots(van boven naar beneden: x4, x16, x1 en x16
Onderste sleuf is een PCI-sleuf, geen PCI-Express)

In 2005 volgt PCI Express de oudere AGP op. PCI Express is een seriële point-to-point technologie die niet beperkt is tot het gebruik met grafische kaarten, biedt een veel grotere snelheid en tal van nieuwe eigenschappen.[3]

Bij de PCIe slots op het moederbord kunnen vermeldingen staan van x1 t.e.m. x32. Dit verwijst naar het aantal lanes van dit PCIe slot. Per lane is er een paar voor het ontvangen van data en een paar voor het verzenden (dus zijn er per lane 4 "draden" nodig). De connectie is full duplex, zodat tezelfdertijd kan worden verstuurd en ontvangen. Bovendien is de technologie hot-swappable, waardoor een PCIe-kaart vervangen kan worden, terwijl de machine aanstaat.

Er kan wel een verschil zijn tussen de fysische lengte van het slot, de fysische lengte van de kaart en het effectief aantal gebruikte lanes. Dit wordt genegotieerd, zodat de best beschikbare elektrische connectie wordt gekozen. Belangrijk is om de specificaties van moederbord en kaart goed na te lezen.

Zo kan het zijn dat een x16 kaart in een x8 slot wordt geplaatst. Ook kan het zijn dat een x8 slot eigenlijk op x1 snelheid draait. Zo'n slot laat dan x1, x2, x4, x8 kaarten toe, wat betekent dat het fysisch tot x8 kaarten accepteert, maar toch maar op x1 snelheid draait. Sommige slots hebben ook een "open einde", zodat fysisch grotere kaarten toch in een kleiner slot passen. Het voordeel is dat er een grotere reeks aan PCIe kaarten kan aangesloten worden, zonder dat het moederbord de volledige transfer rate moet ondersteunen. Zo worden ontwerp- en implementatiekosten laag gehouden. Als men misverstanden wil vermijden, wordt de bus interface soms concreter aangegeven als PCI Express versie ×size@×capacity. Zo betekent PCI-E 3.0 ×16@×8 dan dat er sprake is van PCIe versie 3.0, waarbij de PCIe-bus fysisch een lengte heeft van x16, maar op een snelheid draait van x8. Opgelet: het is niet zo dat hardware aangesloten via x8 per definitie half zo snel werkt als via x16![4]

Er bestaan verschillende versies van PCIe, met "snelheid" als belangrijkste verschilpunt tussen versies.[5] Door extra lanes te hebben, kan je ook de snelheid laten toenemen:

Per lane 16-lane slot (per richting)
  • v1.x: 250 MB/s (2,5 GT/s)
  • v2.x: 500 MB/s (5 GT/s)
  • v3.0: 985 MB/s (8 GT/s)[6]
  • v4.0: 1969 MB/s (16 GT/s)
  • v1.x: 4 GB/s (40 GT/s)
  • v2.x: 8 GB/s (80 GT/s)
  • v3.0: 15.75 GB/s (128 GT/s)
  • v4.0: 31.51 GB/s (256 GT/s)
Wikipedia
Meer afbeeldingen over dit onderwerp vindt u in Categorie PCIe op Wikimedia Commons

PATA[bewerken]

Twee PATA-aansluitingen op een moederbord.
Een 80-aderige en een 40-aderige flat cable

PATA (Parallel ATA, vroeger bekend als IDE), is een (oudere) standaardinterface die de communicatie tussen het moederbord van een computer en opslagmedia (harde schijven, CD-ROM-stations,...).

Vroeger hadden de meeste moederborden twee IDE-aansluitingen. Later kwamen moederborden met maar één IDE-aansluiting, omdat Serial ATA de nieuwe norm werd. Nu hebben de meeste moederborden enkel nog SATA aan boord. Er is toch besloten om het op te nemen in dit overzicht, omdat je mogelijks nog een oudere pc hebt staan, waarvan je je afvraagt wat die IDE-connector doet.

Op één aansluiting op het moederbord is het mogelijk om twee schijfstations samen aan te sluiten met eenzelfde flatcable. Er is hier sprake van een gedeelde bus, waardoor er conflicten zouden ontstaan. Het ene station wordt dan met jumpers als master ingesteld en het andere als slave. De controller van de slave is uitgeschakeld en de controller van de master bedient beide stations. Sluit men twee masters of twee slaves op dezelfde kabel aan, dan ontstaat er een conflict waardoor de stations niet kunnen werken. De jumperinstellingen zijn vaak:

  • Master (MA)
  • Slave (SL)
  • Cable select (CS): de volgorde van aansluiting bepaalt of het gaat om master of slave. Normaal zit de master dan op het einde van de kabel (vaak een zwarte connector) en de slave in het midden van de kabel (vaak een grijze connector). De aansluiting op het moederbord heeft vaak een blauwe connector.

De termen "master" en "slave" zijn gebruikelijk, maar de officiële standaard heeft het over “device 0” en “device 1”. Eigenlijk zijn dit betere termen, omdat de master/slave lijkt te suggereren dat de ene een hogere prioriteit krijgt t.o.v. de andere. Dat is echter niet het geval.[7][8]

Bij het aansluiten van een HDD of ODD is het belangrijk te letten op het soort flat cable. Er is nl. een 40-aderige flatcable en een 80-aderige. Sluit je een oude 40-aderige kabel aan op een recente PATA-HDD, dan zal de kabel een bottleneck vormen!

SATA[bewerken]

SATA (links) en eSATA (rechts) connector

SATA (Serial ATA) is een computerbus ontworpen voor het transport van gegevens tussen de computer en het opslagmedium (bv. de HDD, ODD of SSD). SATA is de opvolger van PATA en is gebaseerd op een seriële signaleringstechniek.

Voordelen van SATA t.o.v. PATA:

  • Er is sneller dataverkeer mogelijk.
  • Er is een mogelijkheid tot hot swapping (of hot plugging): terwijl je systeem aan het draaien is kan je een SATA-opslagmedium aankoppelen. Dit maakte het mogelijk om een externe versie van SATA te ontwikkelen, nl. eSATA (zoals je ziet op de foto zijn de aansluitingen niet identiek).
  • Er worden dunnere kabels gebruikt, waardoor er meer ruimte in de computerkast is en er dus een betere koeling kan zijn.
  • Het aansluiten is gemakkelijker (er is namelijk geen gedeelde bus meer en dus zijn master- en slaveinstellingen zoals bij PATA niet meer nodig).

Er zijn verschillende versies bij SATA:

  • SATA150 (2003) werkt met een maximale doorvoersnelheid van 1,5 Gb/s.
  • SATA II/SATA300 (2004) met een maximale doorvoersnelheid van 3 Gb/s.
  • SATA III/SATA600 (2008) met een maximale doorvoersnelheid van 6 Gb/s.
Wikipedia
Meer afbeeldingen over dit onderwerp vindt u in Categorie Serial_ATA op Wikimedia Commons

USB[bewerken]

USB logo
USB logo

Universal Serial Bus (USB) is een populaire standaard (uitgevonden door Intel) voor de aansluiting van randapparatuur op computers. USB kwam (en is) snel populair: er zijn dan ook heel wat toepassingen van USB. Enkele voordelen (oa. t.o.v. vroegere technieken) die zorgden voor de snelle populariteit zijn:

  • Voldoende snelheid (zodat het de bestaande langzamere parallelle en seriële poorten kon vervangen).
  • D.m.v. USB-hubs kunnen extra apparaten tegelijk aangekoppeld worden op een enkele host controller (tot een totaal van 127).
  • USB ondersteunt hot plugging of hot swapping, waardoor je apparaten kan aansluiten en ermee werken, zonder dat je je pc opnieuw moet opstarten.
  • Er is eenzelfde aansluiting voor verschillende apparaten, waarbij foutieve aansluiting uitgesloten is (waar je vroeger met PS/2 een aansluiting had voor toetsenbord en een aansluiting voor de muis).

Er zijn verschillende versies van USB (de snelheden zijn theoretische snelheden en worden in de praktijk dus vaak niet gehaald):

Versie Snelheid Naam Datum Kleur
USB 1.0 1,5 Mbit/s LowSpeed 1996 Wit
USB 1.1 12 Mbit/s FullSpeed 1998 Wit
USB 2.0 480 Mbit/s HighSpeed 2000 Zwart
USB 3.0 4,8 Gbit/s SuperSpeed 2008 Zwart (SS) of blauw
USB 3.1 10 Gbit/s SuperSpeed+ 2013 Afhankelijk van de fabrikant
USB 3.2 20 Gbit/s SuperSpeed+, dual lane 2017 Afhankelijk van de fabrikant
USB 4 40 Gbit/s SuperSpeed+ en Thunderbolt 3 2019 Afhankelijk van de fabrikant

Naast het USB-protocol heb je ook connectors nodig. Zoals je aan de foto merkt zijn er heel wat mogelijkheden, waarvan de bekendste wellicht de standaard A- en B-plug zijn en meer en meer ook USB-C. Deze laatste heeft een symmetrische 24-pins connector.

Verschillende types van USB connectoren. Links naar rechts: Micro-B plug, UC-E6 proprietary (non-USB) plug, Mini-B plug, Standard-A receptacle, Standard-A plug, Standard-B plug
Wikipedia
Meer afbeeldingen over dit onderwerp vindt u in Categorie USB op Wikimedia Commons

Thunderbolt[bewerken]

Thunderbolt is een techniek die ontworpen is door Intel, in samenwerking met Apple, om randapparatuur te verbinden via een seriële bus met een computer, zodanig dat het als vervanging voor de huidige bussen (zoals SCSI, SATA, USB, FireWire en PCI Express) kan dienen. Het aantal verschillende soorten poorten op een computer kan zo worden verminderd. Daar was USB ook al in geslaagd, maar de prestaties voldoen niet om de nieuwste technologieën zoals eSATA en DisplayPort te ondersteunen.[9]

Thunderbolt heeft meer dan genoeg bandbreedte om welk protocol dan ook te ondersteunen. Intel belooft snelheden tot 10Gbps, tweemaal zo snel als USB 3.0. Momenteel maakt Intel gebruik van koperdraad, maar in de toekomst wil het bedrijf overschakelen naar glasvezel. Hierdoor zou men de snelheid kunnen opdrijven tot 100Gbps.

Wikipedia
Meer afbeeldingen over dit onderwerp vindt u in Categorie Thunderbolt (interface) op Wikimedia Commons

De snelste?[bewerken]

Onder de IT'ers ontstaan verhitte discussies rond wat het beste is.[10] Om de optimale snelheden te halen is het noodzakelijk dat alle onderdelen van eenzelfde "versie" zijn. Een voorbeeld bij USB: als een 2.0-kabel gebruikt wordt om een 3.0-stick aan te sluiten op een 1.1-poort, dan zal de maximaal haalbare snelheid deze van USB 1.1 zijn. Bovendien moet ook altijd een verschil gemaakt worden tussen de theoretisch haalbare snelheden (zoals in onderstaande tabel en grafiek), de snelheden van benchmarks (met vooraf bepaalde testen) en de snelheden die in de praktijk gehaald worden (en die dus afhangen van de concrete situatie op dat moment)! Dit is te vergelijken met een auto die in theorie 250 km/u kan, op circuit 230 km/u kan, maar in de praktijk gemiddeld 130 km/u op de autobahn doet en 40 km/h in de bebouwde kom (bv. door verkeersdrempels, ander verkeer, rode lichten, weersomstandigheden).

Vergelijking tussen ISA, PCI, AGP en PCIe
Bandbreedte van USB, FireWire en Thunderbolt
USB 1.0 1,5 Mbit/s 0,19 MB/s
USB 1.1 12 Mbit/s 1,5 MB/s
USB 2.0 480 Mbit/s 60 MB/s
USB 3.0 4,8 Gbit/s 600 MB/s
FireWire 400 400 Mbit/s 50 MB/s
FireWire 800 800 Mbit/s 100 MB/s
FireWire 3200 3,2 Gbit/s 400 MB/s
Thunderbolt 2 x 10 Gbit/s 2 x 1250 MB/s
  1. Meer informatie op leerplan D/2015/7841/003
  2. Een uitgebreidere geschiedenis kan je bekijken op Computer history
  3. Het Ars Technica artikel PCI Express: An Overview legt d.m.v. afbeeeldingen heel goed uit hoe de evolutie van PCI naar PCIe is ontstaan (en dus van een gedeelde parallelle naar een seriële point-to-point architectuur), net als deze van HowStuffWorks. Ook PCI Express – An Overview of the PCI Express Standard en What is PCI Express? A Layman's guide to high speed PCI-E technology is de moeite om te lezen.
  4. techpowerup.com: Ivy Bridge PCI-Express Scaling with HD 7970 and GTX 680.
  5. Van PCIe v1 naar v2 laat men ook toe om kabels van maximaal 10 meter externe apparatuur aan de PCI Express bus te koppelen. Dit kan handig zijn om bijvoorbeeld een laptop een krachtige GPU te geven wanneer hij gebruikt wordt ter vervanging van een volwaardige desktopcomputer.
  6. Tweakers.net: Pci-e 3.0-specificatie is gereed in november (2010)
  7. Bron: en.wikibooks.org > Parallel ATA > Master and slave clarification. Het gevolg voor de snelheid, als twee apparaten eenzelfde kabel delen, wordt er ook besproken.
  8. Vooral in de VS zijn de termen master en slave nogal controversieel. Er zijn Amerikaanse gerechtelijke uitspraken dat het, waar mogelijk, de voorkeur verdient de standaard benamingen device 0 en device 1 te gebruiken.
  9. Tweakers.net: Tien jaar Thunderbolt, van eigen interface naar integratie in USB4
  10. Lees maar eens de commentaren bij het Tweakers.net-artikel Usb 3.0 moet als chip-interconnect gaan dienen
Informatie afkomstig van https://nl.wikibooks.org Wikibooks NL.
Wikibooks NL is onderdeel van de wikimediafoundation.