Na het lezen van een artikel over voorspellingen van zeven jaar geleden over de toekomst van processors, leek het me leuk om te horen hoe tweakers de toekomst van processors zien. Daarnaast is vind ik het gewoon leuk om te speculeren over de roadmaps die je op de frontpage af en toe voorbij ziet komen. Intel Roadmap
Één van de belangrijkste dingen van de afgelopen jaren is de gigantische toename in kloksnelheden geweest. In 1989 kwam Intel met de 80386 op 33MHz uit. In 2003 kwam Intel met een Pentium4 op 3.2GHz; ongeveer een 100-voudige toename van de frequentie. Deze snelheidstoename werd mogelijk gemaakt door kleinere, snellere transistors en door diepere pipelines.
De snelle toename van de frequentie (40% per jaar over de afgelopen 15 jaar), heeft tot de meeste architecturele problemen geleid. De meeste nieuwe onderdelen op processors zijn puur ontwikkeld om hogere kloksnelheden te behalen.
De nadruk op hogere kloksnelheden heeft drie grote implicaties gehad:
• power bottlenecks; Vroeger was dat iets waar rekening mee gehouden moest worden, nu is het iets de belangrijkste ontwerp-beperkingen is. Dit is natuurlijk het gevolg van de grote groei in kloksnelheden. De powerbottlenecks hebben tot gevolg dat ontwerpers van nieuwe processors naast vertragingen van signaal nog een beperking krijgen: het balanceren tussen snelheid en efficient gebruik van transistors.
• uitstel van instructie-set veranderingen omdat RISC (en de x86 micro-op equivalenten) bedoeld zijn om effectief pipelining te ondersteunen. Men kon de snelheid verhogen zonder zich druk te maken over architectuur-veranderingen.
• de reducties in de logica-per-kloktik naderen een harde limiet. Onderzoek heeft uitgewezen dat het onwenselijk is om veel minder dan 8 FO4 inverters per clock te hebben. [het gaat te ver om precies uit te leggen wat FO4 inverters zijn, dat begrijp ik zelf ook niet tot op de het kleinste niveau. FO4 is de vertraging van het signaal wanneer het door een inverter gaat die 4 gelijke gates stuurt]. De Pentium4 heeft tussen de 12 en 16 FO4 inverters per kloktik en zit dus al dicht tegen de limiet aan. Daarnaast krijgt lek-stroom meer invloed op de mate van frequentie verbeteringen. Deze twee factoren (dus niet onder bepaalde limiet van FO4 inverters en lekstroom) zijn aanwijzingen dat de frequentie-toename dramatisch zal afnemen. Hierdoor worden processor-ontwerpers gedwongen te zoeken naar andere strategiën.
Het is de verwachting dat we nog minstens 10 jaar lang meer transistors zullen krijgen. Deze toename brengt echter wel met zich mee dat ze moeilijker efficient gebruikt kunnen worden. Ze worden bovendien minder betrouwbaar, gaan vaker kapot en gebruiken te veel stroom. Aan al deze nadelen wordt op dit moment onderzoek verricht. Voorbeelden van technologiën die oplossingen proberen te bieden:
• Het gebruik van helper-threads binnen SMT processors om toch een hogere efficientie te bereiken. Dit is echter geen vervanging (net zoals SMT), voor schaalbare hardware of meer effectief parallel programmeren.
• In toekomstige systemen zal betrouwbaarheid nog belangrijker worden dan nu het geval is. Onderzoekers hebben bijvoorbeeld voorgesteld om hardware-ondersteuning te bieden om de veiligheid te vergroten. Denk hierbij aan bufferoverflows voorkomen, geheugen-beveiliging, detectie van bugs, herstel van fouten enz. Dit zijn allemaal punten die belangrijk worden voor toekomstige processors.
• Parallele uitvoer. Er bestaat een spanning tussen het parallel maken van software en de noodzaak voor parallelisme in toekomstige hardware. Als parallelisme moeilijk blijft, dan is dit van invloed op de toekomstige processors. Op dit moment wordt aan hardware gewerkt die parallelisme makkelijker moet maken (zoals "gratis" locks die geen snelheidsverlies opleveren als ze niet gebruikt worden).
Zoals aangegeven zal frequentie verbetering gaan afnemen in de toekomst, en dan wordt parallelisme belangrijk om de snelheid toe te laten nemen. Het belangrijkste probleem dat aangepakt moet worden is het aantal en de grootte van processors op toekomstige chips. Meer dan enkele tientallen simpele processoren lijkt niet logisch, gezien de mate van parallelisme en de steeds kleinere winst. Op de zelfde manier is het ook niet efficient om één core van miljarden transistors te maken. Hiermee komen we op de toekomstige chips: een klein aantal cores die ieder zo groot mogelijk als efficientie toelaat moeten zijn. Door deze keuze is zowel parallelisme binnen threads en tussen threads te bereiken.
Toekomstige chips zullen beoordeeld worden op hoe efficient ze gedistribueerde hardware ondersteunen zonder al te veel eisen te stellen aan de programmeurs. Efficientie speelt hierbij een belangrijke rol: de hardware zal moeten aansluiten bij de software. De oplossing voor de problemen kan fundamentele gevolgen hebben voor software ontwikkelaars. Als efficiente, transparante hardwarematige oplossingen niet meer mee kunnen schalen, dan zal snelheidswinst alleen te behalen zijn betere software: het programmeermodel.
Samengevat: de sterke frequentie-toename loopt langzamerhand naar zijn einde. Er zal steeds meer gekeken moeten worden naar andere manieren om meer snelheid te bereiken. Hardwarematige ondersteuning voor transparant parallelisme lijkt een belangrijke stap, gecombineerd met het gebruik van meerdere cores. De aanwezigheid van dual-core processors voor 2006 op de Intel roadmaps geeft aan dat ook Intel hiermee bezig is. Hierbij houdt het echter niet op. Wie zal de meest efficiente ondersteuning bieden voor meerdere cores?
Het wordt nog een spannende periode, spannender dan momenteel met het simpel opschalen van Pentium4 snelheden of het uitbreiden naar 64-bit bewerkingen van AMD.
De eerste echte dual core processors (voor de consumentenmarkt) zullen echt een volgende stap zijn in mijn optiek, door de grote veranderingen die dat met zich mee kan brengen
En als je het ergens niet mee eens bent hoor ik dat graag, en anders bedankt dat je het tot hier hebt volgehouden
Één van de belangrijkste dingen van de afgelopen jaren is de gigantische toename in kloksnelheden geweest. In 1989 kwam Intel met de 80386 op 33MHz uit. In 2003 kwam Intel met een Pentium4 op 3.2GHz; ongeveer een 100-voudige toename van de frequentie. Deze snelheidstoename werd mogelijk gemaakt door kleinere, snellere transistors en door diepere pipelines.
De snelle toename van de frequentie (40% per jaar over de afgelopen 15 jaar), heeft tot de meeste architecturele problemen geleid. De meeste nieuwe onderdelen op processors zijn puur ontwikkeld om hogere kloksnelheden te behalen.
De nadruk op hogere kloksnelheden heeft drie grote implicaties gehad:
• power bottlenecks; Vroeger was dat iets waar rekening mee gehouden moest worden, nu is het iets de belangrijkste ontwerp-beperkingen is. Dit is natuurlijk het gevolg van de grote groei in kloksnelheden. De powerbottlenecks hebben tot gevolg dat ontwerpers van nieuwe processors naast vertragingen van signaal nog een beperking krijgen: het balanceren tussen snelheid en efficient gebruik van transistors.
• uitstel van instructie-set veranderingen omdat RISC (en de x86 micro-op equivalenten) bedoeld zijn om effectief pipelining te ondersteunen. Men kon de snelheid verhogen zonder zich druk te maken over architectuur-veranderingen.
• de reducties in de logica-per-kloktik naderen een harde limiet. Onderzoek heeft uitgewezen dat het onwenselijk is om veel minder dan 8 FO4 inverters per clock te hebben. [het gaat te ver om precies uit te leggen wat FO4 inverters zijn, dat begrijp ik zelf ook niet tot op de het kleinste niveau. FO4 is de vertraging van het signaal wanneer het door een inverter gaat die 4 gelijke gates stuurt]. De Pentium4 heeft tussen de 12 en 16 FO4 inverters per kloktik en zit dus al dicht tegen de limiet aan. Daarnaast krijgt lek-stroom meer invloed op de mate van frequentie verbeteringen. Deze twee factoren (dus niet onder bepaalde limiet van FO4 inverters en lekstroom) zijn aanwijzingen dat de frequentie-toename dramatisch zal afnemen. Hierdoor worden processor-ontwerpers gedwongen te zoeken naar andere strategiën.
Het is de verwachting dat we nog minstens 10 jaar lang meer transistors zullen krijgen. Deze toename brengt echter wel met zich mee dat ze moeilijker efficient gebruikt kunnen worden. Ze worden bovendien minder betrouwbaar, gaan vaker kapot en gebruiken te veel stroom. Aan al deze nadelen wordt op dit moment onderzoek verricht. Voorbeelden van technologiën die oplossingen proberen te bieden:
• Het gebruik van helper-threads binnen SMT processors om toch een hogere efficientie te bereiken. Dit is echter geen vervanging (net zoals SMT), voor schaalbare hardware of meer effectief parallel programmeren.
• In toekomstige systemen zal betrouwbaarheid nog belangrijker worden dan nu het geval is. Onderzoekers hebben bijvoorbeeld voorgesteld om hardware-ondersteuning te bieden om de veiligheid te vergroten. Denk hierbij aan bufferoverflows voorkomen, geheugen-beveiliging, detectie van bugs, herstel van fouten enz. Dit zijn allemaal punten die belangrijk worden voor toekomstige processors.
• Parallele uitvoer. Er bestaat een spanning tussen het parallel maken van software en de noodzaak voor parallelisme in toekomstige hardware. Als parallelisme moeilijk blijft, dan is dit van invloed op de toekomstige processors. Op dit moment wordt aan hardware gewerkt die parallelisme makkelijker moet maken (zoals "gratis" locks die geen snelheidsverlies opleveren als ze niet gebruikt worden).
Zoals aangegeven zal frequentie verbetering gaan afnemen in de toekomst, en dan wordt parallelisme belangrijk om de snelheid toe te laten nemen. Het belangrijkste probleem dat aangepakt moet worden is het aantal en de grootte van processors op toekomstige chips. Meer dan enkele tientallen simpele processoren lijkt niet logisch, gezien de mate van parallelisme en de steeds kleinere winst. Op de zelfde manier is het ook niet efficient om één core van miljarden transistors te maken. Hiermee komen we op de toekomstige chips: een klein aantal cores die ieder zo groot mogelijk als efficientie toelaat moeten zijn. Door deze keuze is zowel parallelisme binnen threads en tussen threads te bereiken.
Toekomstige chips zullen beoordeeld worden op hoe efficient ze gedistribueerde hardware ondersteunen zonder al te veel eisen te stellen aan de programmeurs. Efficientie speelt hierbij een belangrijke rol: de hardware zal moeten aansluiten bij de software. De oplossing voor de problemen kan fundamentele gevolgen hebben voor software ontwikkelaars. Als efficiente, transparante hardwarematige oplossingen niet meer mee kunnen schalen, dan zal snelheidswinst alleen te behalen zijn betere software: het programmeermodel.
Samengevat: de sterke frequentie-toename loopt langzamerhand naar zijn einde. Er zal steeds meer gekeken moeten worden naar andere manieren om meer snelheid te bereiken. Hardwarematige ondersteuning voor transparant parallelisme lijkt een belangrijke stap, gecombineerd met het gebruik van meerdere cores. De aanwezigheid van dual-core processors voor 2006 op de Intel roadmaps geeft aan dat ook Intel hiermee bezig is. Hierbij houdt het echter niet op. Wie zal de meest efficiente ondersteuning bieden voor meerdere cores?
Het wordt nog een spannende periode, spannender dan momenteel met het simpel opschalen van Pentium4 snelheden of het uitbreiden naar 64-bit bewerkingen van AMD.
De eerste echte dual core processors (voor de consumentenmarkt) zullen echt een volgende stap zijn in mijn optiek, door de grote veranderingen die dat met zich mee kan brengen
En als je het ergens niet mee eens bent hoor ik dat graag, en anders bedankt dat je het tot hier hebt volgehouden