Naar inhoud springen

Basiskennis informatica/Snelheid

Uit Wikibooks

Capaciteit en snelheid

[bewerken]

Alle eenheden die je kent vanuit capaciteit kan je koppelen met een tijdseenheid om zo de snelheid aan te geven. Als 1 MB in 1 seconde verstuurd kan worden, dan spreek je over een snelheid van 1 MBps of 1 MB/s. Ook de term bandbreedte wordt vaak gebruikt.

Snelheid lijkt een simpel getal te zijn, maar de interpretatie en context kan een belangrijk verschil maken. De ene snelheid kan je dus niet zomaar vergelijken met de andere. Je leest er meer over bij de snelheid in een computernetwerk.

Kloksnelheid

[bewerken]

We weten al dat een computer binair werkt, bv. een 'hoog' signaal (bv. 3,3 V) zou dan een 1 kunnen beteken, een 'laag' signaal (bv. 0 V) zou dan overeenkomen met een 0. Zoals je in onderstaande tekening kan zien kan zo'n signaal maar betekenis krijgen als je weet wanneer je moet lezen. Uit enkel het infosignaal weet je niet als het 10101, 1100110011, 111000111000111, ... is. Naast het infosignaal is er dus ook een klok nodig, die als een soort van dirigent bepaalt wanneer er gelezen moet worden. Afhankelijk van de gebruikte klok kan eenzelfde infosignaal dus anders geïnterpreteerd worden.

De kloksnelheid, vaak uitgedrukt in Hertz of een veelvoud daarvan, duidt aan hoe vaak per seconde een signaal gelezen, geschreven of verwerkt wordt in bijvoorbeeld een computer.[1] Een kloksnelheid van 1 Hz komt overeen met één bewerking of signaal per seconde. Elektronische circuits vertalen de golfvorm in een vierkante golf van dezelfde frequentie.

Representation of a clock signal and clock rate

Uit bovenstaande tekening kunnen we volgende zaken besluiten:

  1. In het groen wordt steeds een periode aangeduid: het stukje dat steeds terugkeert.
  2. Bij de eerste is de periodetijd 1 seconde en de frequentie 1 Hz.
  3. Bij de tweede is de periodetijd een halve seconde. Daar de periode 2 keer per seconde wordt herhaald, is de frequentie 2 Hz. Zo merk je ook het wiskundig verband: de frequentie is altijd het omgekeerde van de periodetijd.
  4. Bij de derde is de periodetijd een derde van een seconde. De frequente is 3 Hz.
  5. Een frequentie van 2,7 GHz zou visueel niets opleveren in bovenstaande tekening: er zouden zo 2,7 * 210 = 2.700.000.000 periodes ("golfjes") in die ene seconde moeten worden weergegeven.

De klok kan je dus a.h.w. beschouwen als de dirigent van een computersysteem. Een dirigent die een snellere maat aangeeft, zal het orkest sneller laten spelen. Hij moet natuurlijk wel zorgen dat alle "componenten" (nl. diegene met een instrument) nog kunnen volgen. Ook bij een processor kan je deze soms laten "overklokken", waardoor deze sneller werkt (de bandbreedte tussen componenten verhoogt hierdoor), maar ook hier moeten de componenten kunnen volgen of je systeem zal vaak vastlopen (bv. een systeem dat te warm wordt en zichzelf uitschakelt). Daarnaast bestaat ook "onderklokken" (throttling), waardoor een systeem minder warmteontwikkeling en energieverbruik heeft.

Wanneer men spreekt over de kloksnelheid van een computer, wordt hiermee meestal de kloksnelheid van de processor bedoeld. Men moet echter opletten om kloksnelheden van processors met een verschillende architectuur (bv. Snapdragon versus AMD versus ARM versus PowerPC) zomaar onderling met elkaar te vergelijken. Een dirigent van een kamerorkest kan je ook niet vergelijken met een dirigent van een symfonieorkest. Bij computers is dit bekend als de Megahertz mythe.[2] Kloksnelheid beschouwen als een synoniem voor processorsnelheid is dan ook verkeerd.

Transfers

[bewerken]
Transfers per seconde: vergelijking tussen Single Data Rate, Double Data Rate en Quad Data Rate technologieën.

De kloksnelheid is dus de dirigent van het systeem, maar er bestaan verschillende uitwerkingen[3]:

  • SDR = single data rate: per periodecyclus gebeurt er 1 iets
  • DDR = double data rate: per periodecyclus gebeuren er 2 zaken
  • QDR = quad data rate: per periodecyclus gebeuren er 4 zaken

Tranfers per seconde (en de afgeleiden megatranfers per seconde en gigatransfers per seconde) wijzen dan op het aantal operaties m.b.t. data die per seconde plaatsvinden. Opgelet: de kloksnelheid is geen synoniem voor transfers per seconde! Enkele voorbeelden:

  • DDR SDRAM geheugen dat werkt met een kloksnelheid van 100 MHz, heeft als transfers per seconde 200 MT/s. Net omdat het hier gaat om DDR.
  • Een overklokker is er in geslaagd om DDR4-geheugen te laten draaien op 3008,4 MHz. Dit resulteert dus in 6016,8 MT/s.[4]
  • De Celeron D werkt met een FSB-snelheid van 133 MHz, waarbij gebruik wordt gemaakt van quad pumping. Het aantal transfers per seconde is dan 133 * 4 = 532 MT/s.

Parallel versus serieel

[bewerken]
Seriële versus parallelle communicatie

Stel dat je de byte 011000011 wil doorsturen van een transmitter naar een receiver, dan zijn er twee typische mogelijkheden om dit door te sturen over kabels (bv. draden of 'lijnen' op een printplaat):

  • een parallelle link stuurt een zo groot mogelijk aantal bits tegelijk door.
    Een voorbeeld is PCI die bv. 32 bits (4 bytes) via 32 lijntjes kan doorsturen. Er bestaat ook een 64-bit variant.
  • een seriële link stuurt alle bits één na één door.
    Voorbeelden zijn USB (=Universal Serial Bus), PCI Express en SATA (=Serial Ata).

Op het eerste zicht lijkt het alsof een seriële link wel minder goed moet zijn dan een parallelle, omdat het minder data per kloktik kan versturen. Enkele factoren zorgen ervoor dat nu vaak wordt gekozen voor seriële technologieën:

  • Serieel hoeft niet te betekenen "1 lijntje", want meerdere seriële links kunnen gecombineerd worden. Zo heb je bij PCI Express de x1 met één enkel serieel kanaal (een snelheid van 250 MB/s) en de x16-variant met 16 kanalen (een snelheid van 4 GB/s). Bits die samen horen in een byte zullen op één seriële link blijven, terwijl dit bij een parallelle link zal gesplitst worden over meerdere lijntjes.
  • Als bits bij parallelle lijnen ('draden') op hetzelfde moment vertrekken, betekent dit niet dat ze ook op hetzelfde moment toekomen, door imperfecties bij de lijntjes (stel bv. dat het ene lijntje een fractie langer is dan het andere). Dit maakt het juist aflezen van bits moeilijker, waardoor een hoge kloksnelheid niet gemakkelijk is. Een seriële link heeft hier minder last van.
  • De parallelle lijnen kunnen elkaar door middel van elektromagnetische interferentie verstoren, waardoor de informatie onderweg wordt gewijzigd. Bij seriële communicatie is er meer plaats, waardoor deze extra ruimte kan gebruikt worden om deze beter te isoleren van de omgeving (zodat ze dus minder last van storing hebben).

Ter info. Het bepaalt weliswaar de snelheid niet, maar tussen verzender en ontvanger moet er een afspraak zijn over de bitsignificantie: op welke plaats komt de bit met het grootste gewicht (MSB = Most Significant Bit) en op welke plaats komt de bit met het kleinste gewicht (LSB = Least Significant Bit). Anders kan een verzonden 011000011 bij de ontvanger geïnterpreteerd worden als het omgekeerde, nl. 110000110.

Bussnelheid

[bewerken]

Door alle info te combineren kan je de bussnelheid tussen twee punten bepalen.

  • De PCI-bus werkt aan een kloksnelheid van 33 MHz: er gebeurt dus 33 miljoen keer per seconde 'iets'. Dat 'iets' is bij de 32-bit uitvoering het versturen van 32 bits per kloktik (want de busbreedte is 32 bit). Dat brengt de snelheid op:
32 b * 33 Mps = 1056 Mbps = 1056/8 MBps = 132 MBps
  • Bij de Celeron D hadden we al bepaald dat het aantal transfers per seconde 532 MT/s is. De interne bus heeft een breedte van 64 bit. De snelheid is dus:
532 MT/s * 64 b = 34048 Mbps = 34048 / 8 MBps = 4256 MBps.

Cache

[bewerken]

Als er tussen twee samenwerkende onderdelen een snelheidsverschil is, dan wordt de uiteindelijke snelheid bepaald door de snelheid van de traagste component. Door gebruik te maken van een cache wordt dit snelheidsverschil verkleind: binnen deze snellere opslag worden zaken bewaard in de hoop dat ze opnieuw nodig zijn. Deze info hoeft dan niet van het tragere deel opgehaald te worden. Enkele voorbeelden:

  • Internet-browsercache-opslagmedium: een browser bewaart bv. afbeeldingen op het opslagmedium. Als de volgende keer die website opnieuw wordt bezocht kan deze afbeelding sneller worden geladen van het opslagmedium, dan deze terug te moeten downloaden van het internet.
  • RAM-processorcache-processor: de processor werkt véél sneller dan het RAM-geheugen, dus is het sneller als de processor iets opnieuw kan ophalen van de snelle processorcache, dan van het tragere RAM-geheugen.
  • HDD-HDDcache-RAM: als het RAM-geheugen iets nodig heeft van het opslagmedium (bv. een hard disk drive), dan zit het hopelijk in de HDD cache, want dat zal sneller gaan dan het nog te moeten ophalen van de harde schijf zelf.

Enkele belangrijke opmerkingen:

  • Het verdubbelen van de cache betekent niet automatisch het verdubbelen van de snelheid. Een cache is maar een voordeel als de data die erin wordt bewaard ook echt opnieuw nodig is.
  • Cache wordt vaak gemaakt uit een duurdere (en snelle) geheugenvorm, waardoor altijd een afweging gemaakt moet worden tussen de kostprijs en de verhoopte snelheidswinst.
  • Het up-to-date houden van de cache is een uitdaging. Stel dat iets wordt gehaald uit de browsercache, terwijl de website ondertussen is gewijzigd. Dan zal je nog oude informatie zien, wat je vaak kan oplossen door de pagina te vernieuwen.

Benchmarks

[bewerken]

Kloksnelheid beschouwen als een synoniem voor processorsnelheid is verkeerd (zie hoger). Het is beter om gebruik te maken van benchmarks: een reeks van berekeningen, waarbij de tijd die de computer nodig heeft om ze af te werken gemeten wordt. Je kan dan dezelfde berekeningen uitvoeren op verschillende systemen, om zo een rangschikking te bepalen. Diegene die het snelst klaar was, zal dan bovenaan staan.

Benchmarks zijn dus beter dan enkel het vergelijken van kloksnelheid. Toch zijn er belangrijke opmerkingen:

  • Omdat er heel wat verschillende onderdelen in een computer zitten, bestaan er benchmarks die zich toeleggen op een specifiek onderdeel. Denk bv. aan grafische kaart, opslag, RAM, processor,...
  • Het combineren van die verschillende benchmarks in één duidelijk, objectief overzicht is niet gemakkelijk. Dat zal anders zijn voor een pc om te gamen, dan voor een pc met kantoortoepassingen: enkel bij die eerste is de grafische kaart heel belangrijk.
  • Als het overzicht tegenvalt, dan betekent het niet per definitie dat je jouw computer moet vervangen. Het kan dat je een goede CPU en RAM hebt, maar dat de GPU te traag is. De grafische kaart is dan de bottleneck, waardoor het vervangen van dit onderdeel al voldoende kan zijn.
  • Benchmarks zeggen echter niet alles over "het beste systeem"[5]: zo kan je een snelle laptop hebben (en bijhorende goede benchmark), met een 4K-scherm (en bijhorende prijs), maar waarbij blijkt dat de accu van die laptop snel leeg is. De eindgebruiker kan dan een tragere laptop beter vinden, want trager werken is nog beter dan niet kunnen werken en deze kan dan ook nog eens goedkoper zijn.
  • Er zijn meerdere gevallen bekend van hardware die benchmarks onterecht extra "aandacht" geeft, waardoor ze betere resultaten opleveren dan bij een normale situatie. Dit is dus te vergelijken met dieselgate en de sjoemelsoftware.

Smartphone past zich aan om benchmarks tot 20% hoger te laten scoren

De Samsung Galaxy Note 3 bleek wel heel goed te scoren bij benchmarks. Nader onderzoek wees uit dat de Note 3 kon detecteren dat een benchmark aan het draaien was. Daarop ging hij zijn kernen nooit laten idlen, wat wel gebeurt bij normaal gebruik, om zo energie te besparen. Het gevolg was dat hij veel sneller leek dan bv. de Optimus LG G2, terwijl ze eerder vergelijkbare snelheden hebben bij normaal gebruik. De consument werd hier dus duidelijk bedrogen door Samsung.

(en) Note 3’s benchmarking “adjustments” inflate scores by up to 20%. Ars Technica (2013-01-10).

  1. De kloksnelheid is vaak bepaald door de frequentie van een kristaloscillator. Typisch voor deze kristaloscillator is een vaste sinusoïdale golfvorm, het frequentie referentie signaal.
  2. The Megahertz Myth (YouTube) Hoe Apple de megahertz mythe bekijkt. Kennis van de werking van een processor is aangewezen bij het bekijken van deze video.
  3. Part Three: Double Pumping, Quad Pumping, and DDR
  4. Tweakers.net: Overklokker zet ddr4-snelheidsrecord op 6017MT/s De commentaren op dat artikel gaan oa. in op het verschil tussen kloksnelheid en transfers.
  5. en.wikipedia.org: The challenges for benchmarking
Informatie afkomstig van Wikibooks NL,
een onderdeel van de Wikimedia Foundation.