Ik ben geen cpu specialist, maar heb lang geleden wel op de uni les gehad over cpu design.
Disclaimer: wat ik zeg kan dus fout zijn, ofwel omdat ik het me fout herinner ofwel omdat het dusdanig versimpeld is dat het eigenlijk niet klopt.
Wat ik me uit die lessen herinner is dat de snelheid waarmee je signaal propageert doorheen de halfgeleider afhankelijk is van de spanning. Wil je dat de snelheid hoger is, dan moet je de spanning verhogen. Dat veroorzaakt meer warmteontwikkeling, en dus ben je beperkt in hoe hard je die snelheid kan opvoeren.
Nu denk jij natuurlijk "hoezo snelheid opvoeren, die snelheid was toch 0.6x de lichtsnelheid?". En dat klopt: dat is de snelheid van stroom door koper, die is constant (bij normale temperatuur). Maar we hebben het hier over de snelheid waarmee het signaal propageert, en dat is wat anders.
Wanneer jij een kabel van 1m hebt zonder spanning, dan staat er dus 0V op, laten we dit signaal 0 noemen. Nu neem jij een 9V batterij, daarmee kan je er spanning opzetten, en we spreken af dat dat signaal 1 is. Om alles te vereenvoudigen spreken we af dat als de spanning onder de 4,5V is, we dit als signaal 0 lezen, en alles erboven is signaal 1. Dat is best handig, want als jouw batterij niet exact 9 volt levert, of als er wat interferentie in de omgeving is waardoor de spanning war fluctueert, dan komt je signaal nog steeds goed over als 1 of 0. Ik sta aan de andere kant van de kabel en lees de spanning uit om zo te zien of jij een 1 of een 0 stuurt.
Wanneer jij nu de batterij aan jouw kant aankoppelt, dan kan jij naar de andere kant signaal 1 sturen. Na het aankoppelen zal de beweging van de elektronen zich doorzetten in de koperdraad, en dat aan 0,6x de lichtsnelheid. Dat wil zeggen dat, aangezien de draad 1meter lang is dat ik na 1/200.000.000 seconde, oftewel na 5 nanoseconden het effect van jouw actie zal zien.
MAAR: het effect hiervan is NIET dat de spanning onmiddelijk van 0V naar 9V gaat! Na 5 ns zal de spanning slechts beginnen stijgen. Na die 5 ns duurt het nog even voordat de spanning boven 4.5V uitkomt, en pas dan kan ik dus jouw signaal 1 interpreteren. Ik weet niet meer hoe je betekent hoe lang dat dan weer duurt, daarvoor is de uni te lang geleden
Omgekeerd geldt hetzelfde: wanneer jij de batterij loskoppelt, dan zal de spanning pas na 5ns gaan dalen aan mijn kant, en het duurt nog heel even voordat de spanning onder de 4,5V daalt en ik dus een 0 uitlees.
Wil jij dat de spanning sneller stijgt? Dan kan jij een 18V batterij gebruiken. Wil je dat de spanning sneller daalt? Dan kan je negatieve spanning gebruiken.
Dat is dus waarom overklokkers de spanning ophogen: het signaal moet sneller propageren als je je kloksnelheid wilt opvoeren. Om dezelfde reden kan undervilten je systeem instabiel maken: het signaal propageert trager, en als dat zo traag wordt dat het langer duurt dan 1 klokcyclus dan krijg je fouten.
[Reactie gewijzigd door kiang op 24 juli 2024 12:20]