Ich möchte auch mal einen Gedanken zum Thema Leistungssteigerung durch Architektur beisteuern...
Wenn man eine Recheneinheit hat, die eine Operation in X Taktzyklen erledigt, dann kann man die Leistung steigern, indem man das X kleiner macht. Das funktioniert maximal solange, bis X = 1 ist. Danach ist Ende der Fahnenstange. Und moderne Architekturen sind schon sehr nah an diesem Punkt.
Die einzige Alternativen sind dann a) Leistungssteigerung durch Mikroparallelisierung - also mehr Funktionseinheiten verbauen, b) Leistungssteigerung durch Makroparallelisierung - also mehr Kerne in die CPU packen, c) Leistungssteigerung durch Takterhöhung - also die Funktionseinheiten schneller rechnen zu lassen, und d) Leistungssteigerung durch Befehlssatzerweiterungen - also bestimmte Datenkonstrukte erfinden, die sich durch bestimmte speziell dafür vorgesehene Recheneinheiten besonders effizient bearbeiten lassen.
Option a kostet eine große Menge Transistoren und erzeugt eine große Menge internen Overhead, der die Vorteile teilweise wieder auffrisst. Außerdem kostet es zusätzlich Strom und erzeugt zusätzliche Wärme.
Option b kostet sogar noch mehr Transistoren und Strom und erzeugt noch mehr Wärme, erzeugt aber kaum Overhead, da das Betriebssystem die Kerne verwaltet. Allerdings liegen die Extrakerne brach, wenn Software sie nicht anfordert.
Option c kostet mehr Strom und erzeugt mehr Wärme, kostet aber keine zusätzlichen Transistoren und erzeugt keinen Overhead, und kann von jeder Software ohne Probleme abgegriffen werden.
Option d kostet nur eine kleine Menge Transistoren und Strom/Wärme, und bringt einen relativ großen Vorteil... aber nur, wenn die Software es unterstützt, sonst ist es nutzlos.
Welche Option sieht da am logischsten aus? Also ich kann durchaus verstehen, wenn Befehlssatzerweiterungen gepusht werden und sowohl Intel als auch AMD zur Zeit hauptsächlich mit Taktsteigerungen arbeiten...