PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wie funktioniert eigentlich eine CPU?!


TrilliTralli
2004-12-26, 12:21:16
Hi,
dem ein oder anderen mag meine Frage vielleicht etwas komisch vorkommen, doch ich hatte gerade wohl wieder meine denkerischen 5-Minuten und bin einfach auf die Frage gestoßen, wie so eine CPU im Detail funktioniert. Da sind mir so Fragestellungen in den Kopf gekommen was für Daten werden einer CPU zugeführt, was macht die CPU mit diesen Daten und was spuckt sie dann im endeffekt wieder raus? Oder eine andere Frage wäre, was ist überhaupt Cache? Wofür wird der in einer CPU gebraucht und wo liegt der technische Unterschied vom L1 Cache zum L2 Cache oder zum L3 Cache? Oder warum schafft es AMD mit deutlich weniger MHz die gleiche Leistung zu erzielen im Vergleich zu den deutlich höher getakten CPUs von Intel und wie ist überhaupt der Aufbau so eine CPU, was für einen Durchlauf macht so ein Datensatz und wie siet das Produktionsverfahren aus, sprich wie wird so eine CPU hergestellt?
Sind zwar ne Menge fragen, aber es interessiert mich wirklich mal brennend da ich wahrscheinlich nur die Grundzüge so einer CPU und ihre Funktionsweise kenne.
Gruß TrilliTralli

n00b
2004-12-26, 12:35:34
Wow, Du erwartest jetzt echt ne Erklärung, angefangen bei Adam und Eva?

Lies das, vielleicht hilft Dir das weiter:

http://computer.howstuffworks.com/microprocessor.htm

TrilliTralli
2004-12-26, 12:36:47
Ich würde ne einfach Erklärung auf Deutsch vorziehen und keien englische mit Fachwörtern on mass.

n00b
2004-12-26, 12:39:26
LOL, "wie funktioniert eine CPU" aber bitte einfach, schnell und keine Fachwörter ;D

TrilliTralli
2004-12-26, 12:55:46
ich meinte das auf die englische sprache bezogen und nicht auf die fremtwörter an sich, die erklärung wird schon schwierig genug sein nur dann brauche ich mich wenigstens nicht in der englischen sprache noch rumdrücken.

huha
2004-12-26, 13:06:58
Eine CPU funktioniert nicht besonders einfach, insofern ist's sehr schwer zu erklären. Wenn du dich wirklich interessierst, beschäftige dich am Besten erstmal mit einfachen integrierten Schaltkreisen und wie die funktionieren; letztendlich besteht auch eine CPU nur aus ziemlich vielen integrierten Schaltkreisen.

Eigentlich sind alle CPUs heute mehr oder weniger RISCs (Reduced instruction set computers, also Recheneinheiten mit nur wenigen Befehlen) mit ein paar Spezialbefehlssäzten (MMX, 3dnow!, SSE etc...) -- wobei da die Grenzen relativ fließend sind. ;)

AMD kann mit geringerer Taktfrequenz mehr als Intel erreichen, weil der Prozessor anders designed ist. Das Design von AMD ist etwas effektiver als das von Intel, so daß der AMD-Prozessor weniger Takte braucht, um bestimmte Operationen auszuführen. Dies führt aber natürlich auch dazu, daß die entsprechenden Bereiche wärmer werden als bei Intel-CPUs und dadurch eine bessere Kühlung benötigt wird... oder aber man mit der Taktfrequenz nicht so hoch gehen kann ;)
AMD hat aber jetzt nicht das effizienteste Design überhaupt, es gibt auch durchaus Prozessoren, die nur mit 200 oder 500 MHz eine höhere Performance erreichen, weil sie (und die Programme, die auf ihnen laufen) speziell optimiert sind.

Wie eine CPU hergestellt wird, ist hingegen (im Vergleich) relativ "einfach" zu erklären. Da du gern was vernünftig ausformuliertes hättest, verweise ich doch mal auf diesen Wikipedia-Eintrag (http://de.wikipedia.org/wiki/Halbleitertechnik)

-huha

huha
2004-12-26, 18:34:29
Ach, ich verschieb' das Ding mal ins TECHNOLOGIE-Forum, da finden's wohl mehr Leute als hier, u.A. auch die Inteljünger ;)

-huha

BlackBirdSR
2004-12-26, 18:59:04
Hi,
dem ein oder anderen mag meine Frage vielleicht etwas komisch vorkommen, doch ich hatte gerade wohl wieder meine denkerischen 5-Minuten und bin einfach auf die Frage gestoßen, wie so eine CPU im Detail funktioniert. Da sind mir so Fragestellungen in den Kopf gekommen was für Daten werden einer CPU zugeführt, was macht die CPU mit diesen Daten und was spuckt sie dann im endeffekt wieder raus?

Ohne jetzt zu tief ins Detail zu gehen, was sowieso Bücher füllen würde..

Die CPU wird mit versch. Signalen versorgt. Eines der Wichtigsten ist das Taktsignal. Immer wenn da eine Schwingung vollzogen wird, macht die CPU einen Takt. Eins, zwei, drei, vier... usw bis du ca bei 2000 Millionen pro Sekunde bist. Jedesmal wenn so ein Takt abläuft, gehen millionen von kleinen schaltern aus oder ein.

Daneben gibt es Steuerbefehle und Daten mit denen man rechnet.
Die Steuerbfehle liegen als x86 Sprache vor, so wie sie schon der erste IBM PC kompatible PC vor tausenden (nicht ganz, aber mir kommts so vor) Jahren bekommen hat.
Diese Befehle geben der CPU die Anweisungen, was sie mit den Daten anfangen soll. Also 2 Zahlen addieren, von einander abziehen oder einfach nur vergleichen.
Die Daten beinhalten Zahlen und Werte, die man in der Programmiersprache vorher definiert hat.
Befehle und Daten liegen als Programm auf der Festplatte, werden in den Speicher geladen, von da in den Cache und die CPU holt sie sich dann direkt aus dem Cache.

Wenn ein Befehl abgearbeitet ist, und die Daten damit bearbeitet wurden, werden die Daten zurück in den Cache geschrieben, und dann auch wieder in den Hauptspeicher. Wenn du dann abspeicherst oder dein Programm beendest, werden die Daten auch wieder auf die Platte geschrieben.


Oder eine andere Frage wäre, was ist überhaupt Cache? Wofür wird der in einer CPU gebraucht und wo liegt der technische Unterschied vom L1 Cache zum L2 Cache oder zum L3 Cache?


Cache ist auch Speicher.
Allerdings ist er viel kleiner als Hauptspeicher.
Dafür lässt er sich aber auch schneller machen.
L2 Caches sind meistens nur 512KB-1MB groß, dafür aber locker um ein Vielfaches schneller als Hauptspeicher (und dafür auch recht teuer)
L1 Caches sind da noch extremer.
Die meisten CPUs lesen die Daten und Befehle nur aus dem L1 Cache, weil dieser extrem schnell, dafür aber auch recht klein ist.
Wenn ein Cache kleiner ist, ist öfter mal was wichtiges nicht drinn, und man muss den L2 Cache bzw hauptspeicher danacht fragen. Das kostet wertvolle Zeit.
L3 Cache ist einfach nochmal eine Stufe mehr.
Größer als der L2 Cache, dafür langsamer.

Ohne Caches würden heutige CPUs immer nur warten, bis Daten und Befehle aus dem Hauptspeicher gelesen werden.
Durch den Cache als Puffer ist meistens immer genau das vorhanden, und nur einen Griff entfernt, was man auch braucht.



Oder warum schafft es AMD mit deutlich weniger MHz die gleiche Leistung zu erzielen im Vergleich zu den deutlich höher getakten CPUs von Intel


Der gleiche Grund warum ein Mitsubishi Evo VIII mit 2L Motor und 400PS meinem 2Liter 136PS Auto davonzieht. Anderer Aufbau, andere Technologie, andere Philosophie.
BMWs M5 dreht sehr hoch, während ein AUDI RS6 eher auf einen Turbolader bei 1850upm vertraut.
Intel wollte höher Takten, während AMD lieber einen anderen Weg ging.


und wie ist überhaupt der Aufbau so eine CPU, was für einen Durchlauf macht so ein Datensatz und wie siet das Produktionsverfahren aus, sprich wie wird so eine CPU hergestellt?

Aussen anschlüsse für Signale. Innen transistoren (sowas wie elektrische schalter, die Strom durchlassen oder sperren)
Damit kann man die Werte 0/1 darstellen. Durch komplexe Logiknetze lässt sich aus Folgen von 0 und 1 ein System bilden, das Aufgaben ausführen kann.
Addition, Multiplikation... damit lässt sich alles machen was die CPU so kann.

hergestellt wird das, indem man chemische Stoffe auf eine Siliziumscheibe aufbringt, und diese mit Metal verbindet. Natürlich alles kleiner als ein menschl. Haar.
Man kann damit Steuern wo ein Strom fließen soll, und damit auf "Sperren" oder "Leiten" stellen, 0/1.
Das ist aber eine Wissenschaft für sich. Oder 2 oder 3 :)


Gruß TrilliTralli
Gruß zurück.

HIMOZ
2004-12-27, 12:25:08
Hut ab etwas derart komplexes wie eine CPU in einem Post doch so Verständlich vor Augen zu führen..........

Gast
2004-12-27, 13:06:44
CPUs sind aber nicht komplexes sondern im Grunde sehr einfache Schaltungen.
Eine einfache CPU braucht nicht mehr als ein Register, einen Befehlszähler, einen Programm-/Datenspeicher und eine ALU (REchenwerk). Und einen Befehlssatz, der bei einfahcen CPUs aus weniger als einem Dutzend Befehle besteht.

BlackBirdSR
2004-12-27, 13:10:37
CPUs sind aber nicht komplexes sondern im Grunde sehr einfache Schaltungen.
Eine einfache CPU braucht nicht mehr als ein Register, einen Befehlszähler, einen Programm-/Datenspeicher und eine ALU (REchenwerk). Und einen Befehlssatz, der bei einfahcen CPUs aus weniger als einem Dutzend Befehle besteht.

Stimmt, ein Organismus ist (als niedrigste Form gesehen) im Grunde ja auch ein extrem einfaches System.
Ich würde das allerdings nicht auf den Organismus Mensch übertragen können.

Gast
2004-12-27, 13:19:47
Wenn du die Funktionsweise einer CPU erklären willst, dann solltest du nicht mit einer heutigen X86 CPU anfangen. Sondern mit was ganz einfachem, als maximum würde ich da eine 8Bit CPU vom Typ 6502 wählen, die ist noch komplett überschaubar. An der prinzipiellen Funktionsweise einern CPU ändert sich eh nichts.

BlackBirdSR
2004-12-27, 13:23:18
Wenn du die Funktionsweise einer CPU erklären willst, dann solltest du nicht mit einer heutigen X86 CPU anfangen. Sondern mit was ganz einfachem, als maximum würde ich da eine 8Bit CPU vom Typ 6502 wählen, die ist noch komplett überschaubar. An der prinzipiellen Funktionsweise einern CPU ändert sich eh nichts.

Tu dir keinen Zwang an :)
Ich hab nur versucht die Fragen zu beantworten.

Du darfst gerne die Grundlegenden Basics darlegen, der Threadersteller hätte sicher nichts dagegen.
Ich weiss nur nicht, ob man sowas wie ein Steuerwerk, Befehlszähler, und ein Rechenwerk dann mit einem P4/K8 in Verbdinung bringen kann.
Denn immerhin ist das für den User alles nicht ersichtlich.

del_4901
2004-12-27, 14:22:19
Kann ich nur empfehlen:

http://www.informatik.tu-cottbus.de/~wwwteci/student/vl/proarch/index.html

Gabber[CH]
2004-12-28, 15:26:44
Ich denke einfach kann man sich das vorstellen, wenn man klein anfängt.

Cache, BranchBrediction etc kann man ja mal weglassen.
Ganz einfache CPU, die 4 Bit Grundoperationen kann.
Dazu müssen wir uns erst auf einenen Befehlssatz einigen:
00 : Addieren
01 : Subtrahieren
10 : Multiplizieren (sehr schwer im Vergleich zu +/-!)
11 : Dividieren.
Nun hat die CPU noch 2*4 Eingänge und einen 8 Bit (wegen MUL) breiten Ausgang.

Jetzt kann man die CPU entwickeln, einfach eine Logikschaltung entwickeln, die 2x4 Bit addiert und sie beim OP (operation) = 00 arbeiten lassen.
Entsprechend vorgehen für Sub, Mul und Div.

Nun brauchen wir natürlich noch ein Taktsignal, aber wieso eigentlich?
Weil die CPU nicht alleine ist. Wenn Daten z.B. von einem RAM kommen, dauert das ne Weile bis sie an der CPU anliegen. Es müssen also Abmachungen getroffen werden, wie lange es max. dauern kann bis die Daten da sind. Aber auch wie lange sie gehalten werden müssen!

Jo, jetzt haben wir eine kleine CPU, die lässt sich natürlich ausbauen, z.B. kann man noch logische Befehle einbauen wie AND / OR / XOR etc.
Das führt aber dann wiederum zu einer Verbreiterung des Befehlcodes, damit brauchen Programme dann automatisch mehr Platz!

Damit OPs mit zwischenresultaten möglich sind, brauchen wir noch extrem schnelle speicher, Akkus. Um bequem zu arbeiten hauen wir noch ein paar Register rein (direkt adressierbare Speicher in der CPU).
Jetzt wird der Befehlscode noch um diese Varianten erweitert, also z.B.
ADDA Addr., da wird der Akku + #Addr.(Wert an der Adresse) in den Akku gelegt.
Dies macht das Arbeiten bequemer und schneller.. allerdings wird der Befehlssatz aufgeblasen... ohne Fleiss kein Preis.

Kurz zusammenfassen:
In der CPU hat es verschiedene Einheiten, die über OPs angesprochen werden und dann ihre arbeit verrichten.
Takt ist nötig, damit ein geregelter Ablauf gegeben ist (bei mehreren FPUs/ALUs/Cache in der CPU selbst!)
Grössere Befehlsätze verbrauchen mehr Speicher (Alle Befehle sind immer gleich lang!)

Kommen wir nun zu den Fortschrittlicheren Sachen:
DMA (nicht in der CPU aber trotzdem erwähnenswert)
Festplatten sind langsam (1000x zugriffszeit, 1/100 Durchsatz im Vergl. z. RAM). Die CPU lassen wir bestimmt nicht warten bis dieser Dinosarier seine Daten endlich liefert... und wir machen auch gleich Sammelbestellungen.. bei den Lieferkosten.
Da kommt der DMA-Controller (Direct Memory Access) ins Spiel.
Das hört sich vielleicht schwierig an, ist aber ganz billig, der schaufelt einfach Daten.
Wie sagen dem "Hol die Addr1-Addr2 und hau das in Addr3-Addr4".
Ist er fertig teilt der uns das mit und wir haben die Daten im RAM.

Nun kommen wir zum eigentlichen Clou einer CPU, und wieso eine lange Pipeline schice is:
Der BranchPrediction (zu Deutsch : Sprungvorhersage).
Ja die CPU versucht herauszufinden ob sie Springen muss, nicht aus dem Sockel, sondern im Programm, das steht nämlich alles nacheinander im RAM:
0000 :OP 1
0001 :OP 2
0010 :OP 3
usw.

Jetzt kann es ja mal sein, dass wir was 100x machen wollen, dann steht irgendwo
0100: JMP 0000, also zu der Stelle 0000 springen.
Super, in unserer Pipeline stehen aber schon die nächsten 10 OPs drin, also 0101, 0110, etc... die sind allesamt jetzt wertlos, weil 0000,0001,0010,.. drinnstehen sollte!
Hier kommt die BranchBrediction (die heute >95% genau arbeitet!), sie versucht herauszufinden, ob gesprungen werden muss.
Da die Sprünge meist bedingt sind, also von einem Resultat abhängig, muss sie also Vorausrechnen.
Da haben wir auch noch den Cache, denn durch das Vorausrechnen wenn das eintrifft, dann das und sonst ... kommt einiges an Daten zusammen, und etwas davon stimmt.
Das sollte dann sicher nicht auf der Harddisc stehen sondern gleich raus können.

Der Cache ist natürlich (wie schon erwähnt) auch noch dazu da, den ebenfalls langsamen RAM zu ersetzen so gut es geht.
Die BranchBrediction schaut voraus, so dass die Daten wenn sie benötigt werden schon im Cache liegen.

Dieser ist übrigens CotentAdressable, d.h. wenn die CPU im RAM auf eine Adresse zugreifen will, die Daten aber auch im Cache sind, dann wird automatisch der Cache genommen.

Nochmal ne Zusammenfassung (vor der Zigarette):
Die CPU ist ständig am Vorausrechnen welche Daten benötigt werden und was als nächstes zu tun ist. Sie macht also auch Sachen, die gar nicht nötig gewesen wären.
Cache ist für Resultate und Daten aus dem RAM.
Pipeline ist eine Art Cache für OPs.
Die BranchBrediction schaut, das die CPU so effektiv wie möglich arbeiten kann (also nicht warten muss).
Dazu soll die Pipeline steht's gefüllt und richtig sein, die benötigten Daten stehen schon im Cache (und sonst gibbets haue!).


So, bin rauchen, hoffe hat geholfen.

TrilliTralli
2004-12-30, 13:01:26
Erstmal ein riesiges Danke an die alle Erklärer und Linkposter, ich kann mir jetzt auf jeden Fall ein sehr gutes Bild über den Aufbau so einer CPU machen. Trotzdem hätte ich noch die ein oder andere Frage, um das Verständniss noch ein bisschen zu vertiefen:
CPUs sind heutzutage eigentlich nur riesige Systeme die aus sehr vielen Einzelsystem zusammengebaut sind und mit einigen netten Features versehen, damit auch alles glatt läuft. Wenn man also vom Anfang der x86 Zeit ausgeht, ist es eigentlich nur ein immer fortlaufender Ausbau der Technologie und des Grundgedankens, bin ich da richtig in der Annahme?
Dann habe ich mal vor einige Zeit einen Bericht im Fernsehen auf BBC gesehen, wo über das Mooresche Gesetz berichtet wurde. Soweit ich mich erinnere besagt das Gesetzt ja, dass die Rechenleistung exponentiell ansteigt Abhängig von der Transistorenanzahl und das man aktuell von einer Verdopplung der Rechenleistung nach allen 18 Monaten ausgeht. Zurück zu diesem Bericht, dort wurde eine Theorie aufgeführt die behauptete, dass das Mooresche Gesetz noch in den nächsten 20 Jahren ausgehebelt wird, da die Silizium Technik auf CPUs spätestens dann am Ende wäre, weil entweder kein Silizium mehr in so großen Mengen vorhanden wäre oder weil es nicht mehr verkleinert werden kann und man irgendwann zu dem Punkt kommen würde, wo CPUs an reale Größe immer mehr zu nehmen müssten. Als Alternative wurde eine Verbindung von Silizium und Organischem Material genannt, die einmal richtig erforscht wohl einen Quantensprung der Technologie machen würde. Ist jemanden was über diese Theorie bekannt und kann was darüber sagen?
Dann noch ne Verständnis Frage von Festplatte, Cache und Ram. Die Festplatte ist sau langsam und kann icht annäherend der CPU genug Daten liefern. Daher wird von der Festplatte eine Sammelbestellung an Infos in den Ram gesetz, der ist aber immer noch zu lahm und gibt wieder einen Datensatz an den Ultra schnellen Cache weiter der dann letztendlich die CPU füttert, richtig? Verstehe ich das richtig, dass man den Ram eigentlich nur wirklich aks Zwischensspeicher benutzt, da der Cache einfach nur zu klein ist und das man als Folge schliessen kann, dass wenn der Cache wirklich groß wäre, also mehr als nen GB oder so mit der gleichen Geschwindigkeit, dass man dann den Ram auf einem Motherboard weglassen kann oder müssen die Datensätze zwangsläufig zwischengespeichert werden und wenn ja warum?

del_4901
2004-12-30, 13:55:56
Erstmal ein riesiges Danke an die alle Erklärer und Linkposter, ich kann mir jetzt auf jeden Fall ein sehr gutes Bild über den Aufbau so einer CPU machen. Trotzdem hätte ich noch die ein oder andere Frage, um das Verständniss noch ein bisschen zu vertiefen:
CPUs sind heutzutage eigentlich nur riesige Systeme die aus sehr vielen Einzelsystem zusammengebaut sind und mit einigen netten Features versehen, damit auch alles glatt läuft. Wenn man also vom Anfang der x86 Zeit ausgeht, ist es eigentlich nur ein immer fortlaufender Ausbau der Technologie und des Grundgedankens, bin ich da richtig in der Annahme?
Dann habe ich mal vor einige Zeit einen Bericht im Fernsehen auf BBC gesehen, wo über das Mooresche Gesetz berichtet wurde. Soweit ich mich erinnere besagt das Gesetzt ja, dass die Rechenleistung exponentiell ansteigt Abhängig von der Transistorenanzahl und das man aktuell von einer Verdopplung der Rechenleistung nach allen 18 Monaten ausgeht. Zurück zu diesem Bericht, dort wurde eine Theorie aufgeführt die behauptete, dass das Mooresche Gesetz noch in den nächsten 20 Jahren ausgehebelt wird, da die Silizium Technik auf CPUs spätestens dann am Ende wäre, weil entweder kein Silizium mehr in so großen Mengen vorhanden wäre oder weil es nicht mehr verkleinert werden kann und man irgendwann zu dem Punkt kommen würde, wo CPUs an reale Größe immer mehr zu nehmen müssten. Als Alternative wurde eine Verbindung von Silizium und Organischem Material genannt, die einmal richtig erforscht wohl einen Quantensprung der Technologie machen würde. Ist jemanden was über diese Theorie bekannt und kann was darüber sagen?

Naja das Si geht uns bestimmt nicht aus, denn Sand gibt es überall. Eher kriegen wir das Problem das man die Strukturen nicht mehr weiter verkleinern kann, weil dann Quantenmechanische Gesetzte greifen die nicht mehr deterministisch (vorhersagbar / berechenbar) sind. Dann bleiben uns nur noch Organische- , Licht- oder Quantenrechner um das Moorssche Gesetz halten zu können.


Dann noch ne Verständnis Frage von Festplatte, Cache und Ram. Die Festplatte ist sau langsam und kann icht annäherend der CPU genug Daten liefern. Daher wird von der Festplatte eine Sammelbestellung an Infos in den Ram gesetz, der ist aber immer noch zu lahm und gibt wieder einen Datensatz an den Ultra schnellen Cache weiter der dann letztendlich die CPU füttert, richtig? Verstehe ich das richtig, dass man den Ram eigentlich nur wirklich aks Zwischensspeicher benutzt, da der Cache einfach nur zu klein ist und das man als Folge schliessen kann, dass wenn der Cache wirklich groß wäre, also mehr als nen GB oder so mit der gleichen Geschwindigkeit, dass man dann den Ram auf einem Motherboard weglassen kann oder müssen die Datensätze zwangsläufig zwischengespeichert werden und wenn ja warum?

Wenn der Hauptspeicher irgendwann schnell genug ist, kann man auf Cache verzichten. Einige Architekturen (z.B einige Vektorrechner) besitzen gar keine Cache Stufe. Dafür besitzen solche Architekturen einen unheimlich breiten Speicherbus. Cache wird eigendlich nur eingesetzt um Architekturen mit "billigen Speicherbussen" auch günstig zu Speed zu verhelfen. Zuviel Cache wird aber wieder auch teuer, deswegen setzt man wenig schnellen Cache ein und langsamern (dafür viel) Hauptspeicher, der zudem noch extrem günstig in der Herstellung ist. Bei den geläufigen Skalarrechnern geht das Kosten /Nutzen Verhältniss noch auf (kleine Operanden, kleine Befehle). Und wie bereits gesagt bei Vektorrechnern müsste man dann extrem viel Cache auf die CPU bammeln, weil die Operanden um ein vielfaches länger sind, wie auch die Befehle. (da wird die Cachearchitektur bei gleicher Größe ineffizient, weil weniger Befehle reinpassen) Und soviel Cache kostet mehr als ein breiter Speicherbus.

GloomY
2005-01-01, 16:51:25
Morres Gesetz sagt nur etwas über die Integrationsdichte aus und nichts über die Rechenleistung. Um genau zu sein sagte der hochgeschätzte Herr Moore 1965, dass sich die minimalen Kosten einer Schaltung bestehend aus mehren ICs, PCB und Kontakte verringert und zwar jedes Jahr um die Hälfte. Diese Vorraussage der Halbierungung der Kosten hat er 10 Jahre danach - 1975 - auf alle zwei Jahre korrigiert, wodurch die oftmals falsch zitierte Aussage von 18 Monaten (Mittel zwischem einem und zwei Jahren) herkommt.

Morre sagte selbst Ende der 90er Jahre in einem Interview: "I never said 18 months. I said one year, later I said two years."

Das was heuzutage von "Morres Law" übrig geblieben ist, ist aber letztendlich nicht die eigentliche Aussage von damals. Heutzutage versteht jedermann darunter nur noch die Integrationsdichte und nicht die Kosten pro Schaltung.

Dass die Integrationsdichte exponentiell ansteigen würde, war 1965 eine Tatsache, die vielen Leuten in der Halbleiterindustrie bekannt war. Moore war jedoch der erste, der dies in dieser Form niederschrieb bzw. in einer Grafik darstellte.
Das sollte aber nur die Einleitung sein, denn auf der nächsten Seite kam dann die eigentlich wichtige Aussage für Moore - nämlich die Kosten pro Schaltung. Das sieht man ziemlich klar, wenn man sich den Original-Artikel einfach mal durchließt... :)


Zum Thema Funktionsweise von CPUs wurde schon viel gesagt. Ich verweise einfach mal auf Ars (http://www.arstechnica.com/) und Ace's (http://www.aceshardware.com/).