Home Computer Prozessor Basics Site Map counter

Der Aufbau eines Prozessors am Beispiel des Core i9-12900

Ich habe zahlreiche Einzelaufsätze über den Aufbau und die Optimierung von heutigen Prozessoren und deren geschichtliche Entwicklung geschrieben. Ich will in diesem Artikel einmal dies alles zusammenfassen, und zwar indem ich den Datenfluss innerhalb eines Prozessors beschreibe, in diesem Falle der beim Schreiben aktuellen Prozessorgeneration von Intel der Core-12000 Serie, Codename „Alder Lake“.

Aufbau eines Core 12000 Prozessors

Die ShotDer Core 12000 Prozessor besteht aus mehr als einem Kern, also mehr als einem eigenständigen Prozessor. Bei Core 12000 (Codename „Alder Lake“) sind es sogar zwei verschiedene Typen, in je nach Preisklasse unterschiedlicher Anzahl. Es sind schnelle Kerne vom Typ „Gold Cove“ wie sie auch bisher in den Prozessoren zum Einsatz kamen, nur verbessert und langsame Kerne vom Typ „Gracemont“. Diese Kombination hat schon ARM vorgemacht. Bei ARM-Prozessoren, die sich in fast jedem Mobiltelefon oder Tablett befinden, aber auch vielen „Embedded“ Devices, wie Routern dient dieser Trick dem Stromsparen. Benötigt man volle Rechenleistung, z. B. bei einem Spiel so sind die schnellen Kerne aktiv, bei wenig Rechenleistung, z. B. Telefonieren, Browsen, die langsamen Kerne die aber viel weniger Strom benötigen und so die Akkulaufzeit verlängern.

Bei Intel, wo die Prozessoren in der Regel zumindest in Notebooks mit größeren Akkus landen, ist der dahinterliegende Gedanke dagegen die Gesamtperformance zu steigern. Denn auf dem Chip benötigen die Gracemont-Kerne viel weniger Fläche als ein Golden Cove Kern, sodass man ihre Langsamkeit durch mehr Kerne ausgleichen kann. In der Gesamtleistung (es sind dann immer alle Kerne aktiv) erhält man so eine höhere Rechenleistung.

Die energiesparenden Gracemont Kerne stammen von den Tremont-Atoms Kernen ab, die Intel bei den billigsten Prozessoren Pentium Celeron Silver J/N Serie einsetzt, wurden gegenüber diesen aber deutlich erweitert, ihre Leistung ist mit diesen Prozessoren schwer zu vergleichen. Intel bezeichnet die Golden Cove Kerne auch als P-Kerne (P für Performance) und die Gracemont Kerne als E-Kerne (E für Effizient). Ein P-Kern belegt 7,3 mm² Fläche, vier E-Kerne dagegen 8,7 mm² Fläche. Die Zahl der P- und E-Kerne variiert je nach Prozessormodell, bei Vorstellung war das leistungsfähigste Modell, Core i9-12900 mit je acht P- und E-Kernen bestückt, das kleinste neu vorgestellte Modell Core I5-12600 dagegen mit sechs P- und vier E-Kernen. Die CPU wird in einem 10 nm Prozess gefertigt. Die Zahl der Transistoren ist nicht bekannt, doch beim Vorgänger im 14 nm Prozess waren es schon 6 Milliarden. Das Die des größten Prozessors Core I9-12900 hat eine Fläche von 209 mm².

Zu jedem Kern kommt dann noch der Cache – im Kern befindet sich in der Regel nur die ersten beiden Cachebenen und bei den meisten Prozessoren noch eine GPU, das ist der Prozessor der die Grafikdaten für die Bildschirmausgabe verarbeitet. Alles zusammen bildet dann den Prozessor als Ganzes.

Die Speicheranbindung

Beginnen wir an der „Außenseite“ des Prozessors, den Pins mit denen er mit der Außenwelt kommuniziert. Beim Core-12x00 sind dies 1.700 Pins, die zusammen einen LGA-1700 Sockel bilden. Ein guter Teil davon dient zur Kommunikation mit dem Arbeitsspeicher, über sie werden Daten abgerufen und Adressen angefordert. Auf dem Mainboard findet man zwischen zwei und 16 DIMM Sockel, das sind Sockel für kleine Platinen die dann die Speicherchips und einige Zusatzbausteine enthalten. Schon seit den Achtzigern ist es so, dass der Speicher nicht mehr direkt an den Prozessor angebunden ist. Der Grund ist, dass bezahlbarer Arbeitsspeicher (DRAM, Dynamic Random Access Memory) viel langsamer in der Geschwindigkeit stieg, als die Mikroprozessoren. Zuerst führte man bei den schnellen Exemplaren des 80286 Wartetakte ein. Das bedeutet: Der Mikroprozessor konnte die Daten nicht sofort vom Arbeitsspeicher bekommen, nachdem er eine Anforderung an ihn schickte, sondern musste einen Takt lang warten. Das verlangsamte den Prozessor natürlich, doch da damals ein Befehl noch mehrere Takte lang zur Ausführung brauchte, war diese Verlangsamung nicht sehr hoch, etwa 10 bis 15 Prozent. Ab der nächsten Generation, dem 80386 reichten Wartetakte nicht mehr aus und man führte einen schnellen Zwischenspeicher, den Cache ein. Dazu später mehr. Die folgenden Generationen erweiterten das Cachesystem immer weiter. Beim 80486 zog er in den Prozessor ein, vorher war er separat. Beim Pentium 4 gab es eine zweite Cacheebene.

Die Architektur der heutigen DRAM geht auf die frühen Neunziger zurück, als SDRAM eingeführt wurden. Zwar konnte man die Zugriffszeit von RAM nicht entscheidend senken, das heißt, die Prozessoren mussten immer mehr Takte warten, bis sie die Daten erhielten, aber man veränderte die Kommunikation. SDRAM (Synchronos Dynamic Random Acccess Memory) lieferte automatisch nach der ersten Anforderung mit dem Bustakt weitere Bytes, für die dann keine Zugriffszeit anfällt. DDR-RAM unterscheidet sich von SD-RAM dadurch das die Datenrate doppelt so hoch ist: Jeder Takt hat eine ansteigende und abfallende Flanke. DDR-RAM (Double Data Rate RAM) übermittelt bei jedem Flankenwechsel Daten. Mehrere RAM-Chips werden zu einem Modul zusammengefasst, das immer 64 Bit auf einmal transferiert und bei jeder Anforderung 8 Transfers durchführt, also pro Anforderung 64 x 8 = 512 Bit oder 64 Byte. Die Menge der pro Sekunde übertragenen Daten ergibt die Bandbreite. DDR4 RAM hat beim Schreiben des Artikels eine Transferrate von 3,2 Milliarden Transfers pro Sekunde, also 25,6 Gbyte/s. DDR-5 RAM kommt auf 5,2 Milliarden Transfers pro Sekunde. Der Bustakt beträgt bei DDR-4 RAM maximal 1,6 GHz, generell die Hälfte der Transferrate. Sie wurde Die Zugriffszeit liegt dagegen bei rund 14 ns, also nur rund 10-mal schneller als vor 40 Jahren. Schneller wurde der Bustakt gesteigert. SDRAM wurde 1996 mit 66 MHz Bustakt eingeführt, heute liegt der höchste Bustakt bei 2600 MHz.

Der Trick hinter dem automatischen Transfer von Daten, der auch anderen Designentscheidungen im Prozessor zugrunde liegt, ist dass Daten und Code im Wesentlichen sequenziell im Speicher liegen und auch sie auch sequenziell zugegriffen wird. Ein Text wird eben von vorne nach hinten verarbeitet, der Bildschirminhalt von der oberen linken Ecke zur unteren rechten Ecke und auch Code wird größtenteils linear durchlaufen – hier gibt es eher mehr Abweichungen von der Regel als bei Daten, da für Wiederholungen eines Codestücks oder Unterprogramme es Sprünge gibt. Daher wird der Prozessor, wenn er ein Datenwort haben will, mit hoher Wahrscheinlichkeit bei den nächsten Zugriffen, die darauf folgenden Worte haben wollen, und so übermittelt diese DDR-RAM schon mal und der Prozessor speichert sie zwischen.

Die zweite Optimierung ist, dass es nicht einen RAM-Sockel für Speichermodule (DIMM Module, Dual Inline Memory Module) gibt, sondern mehrere, man aber in der Regel nur einen Sockel bestücken muss. Sind mehr DIMM-Module eingesteckt, so greift der Prozessor nacheinander auf sie zu, das heißt, zwischen zwei Zugriffen auf dasselbe Modul vergeht mehr Zeit und damit steigt auch die Gesamtdatenrate. Notebooks haben in der Regel zwei DIMM Slots, Desktop-Rechner bis zu vier, Server bis zu 16. Bestückt man mehr Slots so ist der Rechner schneller. Durch andere Optimierungen im System ist der Einfluss aber klein und liegt im einstelligen Prozentbereich an Geschwindigkeitszuwachs.

Caches

Intern verfügt jeder Prozessor über Caches. Ein Cache ist ein Zwischenspeicher, aufgebaut aus schnellem SRAM (Static Random Access Memory). Das DRAM in den Modulen des Arbeitsspeichers besteht aus Zellen die einen Kondensator bilden. Wie bei jedem Kondensator gibt dieser die Ladung über eine kurze, aber für einen Prozessor zu lange Zeit ab. Das SRAM besteht dagegen aus mindestens vier Transistoren, die so verschaltet sind, das sie ein Flip-Flop bilden, eine Ladung lässt sie von einem Zustand in den anderen Springen und wird so gespeichert. SRAM ist viel schneller als DRAM, benötigt aber ein Vielfaches der Fläche und die Herstellung ist auch aufwendiger und damit teurer. Daher kann man nicht den ganzen Arbeitsspeicher in dieser Technologie auslegen, sondern nur kleine Pufferspeicher. Sie halten eine Kopie der Information aus dem RAM. Heute hat ein Prozessor mehrere Caches, organisiert in Ebenen, man spricht von Leveln. Typisch gibt es einen Level 1 Cache getrennt für Daten und Code. Zum einen, weil Daten noch lineare Abfolgen haben als Code, zum anderen, weil man so die Cachegröße nach den Anforderungen auswählen kann. Ein Prozessor der viele Threads bearbeitet, benötigt einen größeren Codecache und ein Prozessor, der vor allem Daten verarbeitet, einen großen Datencache.

Die Ebene 2 des Caches (L2-Cache) ist meist auch noch im Kern integriert. Es sind größere Caches, aber dafür langsamere. Sie benötigen weniger Transistoren pro Bit als der Level 1 Cache. Dieser Cache ist meist gemeinsam für Daten und Code.

Die Ebene 3 teilen sich alle Kerne, das spart Platz, weil ein Betriebssystem gerne Threads von einem Kern auf den anderen verschiebt, um sie gleichmäßig auszulasten. Zudem können Compiler eine Schleife in mehrere Teile aufteilen und je einen Teil pro Kern laufen lassen, der Code ist aber fast derselbe und benötigt so im Level 3 Cache weniger Platz.

Intern ist ein Cache in mehrere Teilcaches aufgeteilt, man spricht dann von „n-fach assoziativ“. Ein Vierfach-Assoziativer Cache hat z. B. vier Teilcaches. Jeder Teilcache ist für einen bestimmten Arbeitsspeicher zuständig, sodass der Cachecontroller schon an der Adresse erkennt, in welchem Teil des Caches er suchen muss. Dort gibt es eine Tabelle, welche die Startadresse jeder Cacheline enthält. Eine Cacheline ist die kleinste Einheit in einem Cache, bei den Core 12x Prozessoren ist jede 64 Byte groß, entsprechend transferiert das RAM auch immer 64 Byte auf einmal bei einer Anforderung. Wenn Daten zurückgeschrieben werden müssen, so kann ein Cache dies abpuffern (Write-Back) oder direkt an den Arbeitsspeicher übergeben (Write-Through). Die Write-Back Strategie ist effizienter, aber aufwendiger in der Realisierung. Heute haben die Core-Prozessoren auch eigene Maschinenbefehle, mit denen sie dem Cachecontroller sagen können, dass er bestimmte Codeteile in den Cache laden soll. Sie sind dann schon in den Caches, wenn der Code ausgeführt werden soll.

Der Kern

Nun endlich sind wir beim eigentlichen Prozessorkern angekommen. Ein „Golden Cove“ Kern, also der leistungsfähigere im Alder Lake hat folgendes Blockschaltbild:

Glden Cove Mikroarchitektur


Man sieht, der Prozessor ist inzwischen sehr komplex geworden. Daher hier noch eine zweite Grafik, der generelle Aufbau der Core Mikroarchitektur, die seit ihrer Einführung zwar erweitert und verbessert wurde, aber nicht grundlegend verändert:

Core Mikroarchitektur

Alles beginnt oben, dem Frontend des Prozessors. Basis des Ablaufs ist eine Pipeline (Instruction Queue). Sie holt bei jedem Takt Bytes aus dem Speicher (Fetch) und übergibt sie an den Befehlsdekoder. Der dekodiert die Befehle und übergibt sie dann an die Ausführungseinheiten in der Mitte. Ein Befehl kann durchaus mehrere Takte in der Ausführung brauchen, komplexe Befehle wie für die Multiplikation oder Division in jedem Falle. Innerhalb des Prozessors befinden sich daher viele Befehle in unterschiedlichen Stadien der Ausführung. Da es Abhängigkeiten zwischen den Befehlen gibt, muss eine Einheit manchmal auf das Ergebnis einer anderen Operation warten, dann versucht der Prozessor andere Befehle vorzuziehen. Diese „Out of Order Execution“ ist das wichtigste Element, das Geschwindigkeit bringt. Im Diagramm macht dies die „Retirement Unit“. Durch die Pipeline läuft ein Befehl im Ablauf zwar von oben nach unten durch das Diagramm, aber er ist nicht der einzige. Bei 32 Bytes pro Anforderung an das Cachesystem werden pro Takt mehrere Befehle geholt und verarbeitet. Sie befinden sich in unterschiedlichen Stadien der Verarbeitung dann an verschiedenen Stellen und daher sind auch die eigentlichen Ausführeinheiten mehrfach vorhanden, weil jee nur einen Befehl bedienen kann. Dadurch bedingt haben viele Einheiten auch Buffer weil die Ausführungszeit der Befehle unterschiedlich lang ist und ohne Puffer gewartet werden müsste bis man den nächsten Befehl weitergeben kann.

Daneben gibt es Sprünge im Code. Erfolgt ein solcher Sprung, dann hat die Pipeline Befehle umsonst geholt, denn es geht ja nicht linear weiter. Daher haben moderne Prozessoren eine Sprungvorhersage. Um Befehle vorziehen zu können benötigt der Prozessor intern mehr Register als er tatsächlich hat, er bildet die im Code sichtbaren Register auf einen größeren Registersatz ab und merkt sich die Zuordnung. Dies geschieht in der Rename/Alloc Einheit. Die so vorbereiteten Anweisungen erreichen einen Scheduler, eine Warteschlange der sie dann auf die frei verfügbaren Funktionseinheiten. Die Zahl seiner Ausgänge nennt man Ports. Im obigen Diagramm der ersten Version der Core Mikroarchitektur sind es noch 5 Ports die dann zu 12 Funktionentheorien führen. Jeder Port kann pro Takt eine Instruktion weiter geben. Die Funktionseinheiten führen dann die Befehle aus, deren Ergebnisse dann im Datencache landen, der mit dem Level 2 Cache verbunden ist.

Diesen prinzipiellen Aufbau finden wir auch im Golden Cove Kern vor, nur ist er die inzwischen sechste Generation und daher etwas komplexer. Hier das Frontend des Golden Cobe Kerns.

FrontendAlle Befehle die vom Speicher angefordert werden landen zuerst in einem 32 KByte großen Insruktionscache. Dies verhindert, dass man bei mehrfachen Zugriff auf Befehle der Prozessor jedes Mal den Speicher anfragen muss. Die BPU steht für Branch Prediction Unit. Sie hat die Aufgabe Sprünge vorherzusagen, damit der Cache die richtigen Bytes vorsorglich lädt und nicht die Pipeline ins stocken kommt.

Pro Takt liefert der L1-Code-Cache 32 Bytes an den Decoder. Einige Instruktionen sind komplex. Sie umfassen intern mehrere Einzelinstruktionen. Für diese Anweisungen schaut der Decoder in das Microcode Sequencer ROM (MSROM), wo die Einzelanweisungen abgelegt sind. Dies dauert etwas länger, so liefert ein Zugriff hier nur 4 µOps pro Takt, während der Decoder sonst 6 µOps pro Takt an die Instruction decode Queue liefert. Ist eine Anweisung schon mal dekodiert worden, wird ein Codeteil also mehrfach durchlaufen, so muss der Decoder sie nicht erneut dekodieren, sondern kann im µOp Cache nachschauen wo er die dekodierten Anweisungen speichert. Dieser Cache speichert 4.000 Mikroops und liefert pro Takt acht Stück aus.

Μops oder MikroOps (gesprochen „Mükro-Op“ sind eine Intel-Lösung. Die x86 Architektur ist eine klassische CISC Architektur, mit vielen Befehlen die teilweise sehr leistungsfähig sind. Intern werden diese in einfachere, elementare µOps zerlegt, die schneller und besser parallel verarbeitet werden können. Das hat Intel schon beim Pentium Pro eingeführt. Ein Befehl umfasst eine bis vier µOps. Inzwischen gibt es bei der Core Mikroarchitektur auch das Gegenteil, die µOp-Fusion, bei der einfache Befehle zu einer größeren µOp kombiniert werden. Die komplette Weiterverarbeitung erfolgt mit dem µOps, nicht mehr den Befehlen wie sie im Code vorliegen.

Die µOp-Queue ist einfach eine Warteschlange/Puffer für µOps. So kann der Befehlsdekoder immer 6 Mikroops pro Takt liefern, auch wenn gerade eine Instruktion länger braucht. Sie fasst 144 Mikroops. Nutz man SMT (Simultaneous Multithreading) so gibt ein Kern vor das er aus zwei Kernen besteht. Das soll eine bessere Auslastung der folgenden Einheiten gewährleisten. In diesem alle teilt sich die Queue in zwei Teile von je 72 Mikroops Länge. SMT kann bis zu 30 Prozent Mehrperformance liefern.

Zuerst passieren sie eine weitere Einheit. Die x86 Architektur hat in der neuesten Version 16 Register, für 32 Bit Code sind es sogar nur acht. Intern hat der Prozessor erheblich mehr Register, wie viele weiß man nicht, doch schon vor Jahren war von 128 Stück die Rede. Damit mehrere Instruktionen parallel verarbeitet werden, obwohl sie eventuell auf dasselbe Register zugreifen benötigt man überzählige Register. Diese Unit mappt ein Register im Code auf ein freies internes Register, benennt es dann intern um und kann bei reinen Register-Registeroperationen diese auch schon abschließen. Sie ermöglicht das erwähnte Out-of Order Scheduling und hat dazu einen 512 Einheiten langen Zwischenspeicher, in der die Mikroops so angeordnet werden dass sie voneinander unabhängig ausgeführt werden können.

Danach kommen die µOps zum Scheduler. Wie der Name schon sagt verteilt dieser die µOps an die Ausführungseinheiten. Alle Befehle lassen sich in eine von vier Gruppen einteilen:

Da die Sprünge praktisch alles bisher erfolgte zunichtemachen, werden sie schon im Frontend von der BPU teilweise vorabverarbeitet. Die anderen Befehle werden an insgesamt 12 Ports vergeben, an denen teilweise mehrere Funktionseinheiten hängen. Die eine Hälfte der Ports kümmert sich um die häufigen Speicheroperationen, die andere Hälfte um die Ganzzahl- und Fließkommaoperationen.

Die Adresss-Generation-Unit AGU generiert Adressen. Da der Prozessor es beherrscht für jeden Thread einen eigenen logischen Adressbereich (virtueller Speicher) innerhalb des physikalischen Adressbereiches bereitzustellen kann man eine Adresse nicht einfach so übernehmen. Sie muss in eine physikalische Adresse übersetzt werden. Die Arbeit findet in den TLB (Translation Lookaside Buffer) statt, von denen es je einen für das Laden und Speichern gibt. Im Prozessor speichert er 256 Adressen von 4 KB großen Seiten und 32 von 2 bzw. 4 MB großen Seiten. Weitere Buffer kann der Prozessor im RAM anlegen.

Ist das nicht nötig, kann die Verarbeitung auch über die STD Einheiten (Store Direct) erfolgen. Alle Daten landen aber immer zuerst im internen Level 1 Cache für Daten (DCU: Data Cache Unit) der 48 KByte groß ist. Er hängt dann noch am größeren Levvel 2-Cache der 1,25 MB bei Desktop bzw. bis zu 4 MB bei Servern groß ist (Midlevel cache MLC).

Die linke Seite unterhalb des Schedulers führt erheblich mehr Einheiten auf. An den fünf Ports hängen fünf Integer und drei Fließkommaeinheiten, die sich noch in Untereinheiten aufteilen je nach Operation. Pro Port kann aber nur eine Untereinheit pro Takt eine Instruktion bekommen. Allerdings benötigen viele mathematische Anweisungen auch deutlich länger als einen Takt. So ist eine Untereinheit für mehrere Takte belegt. Eine ALU (Arithmetisch Logische Unit) führt Berechnungen und Vergleiche aus. Fünf Einheiten führen Adressberechnungen für die LEA Anweisungen aus. Andere verarbeiten Schiebeanweisungen (Shift) oder berechnen Sprungadressen (JMP). Die Fließkommaeinheiten beherrschen auch Vektoroperationen, dazu nutzen sie bis zu 512 Bit Breite Register (normale Operationen haben maximal 80 Bit breite Operanden) um mehrere Zahlen simultan zu verarbeiten.

Zuletzt gibt es noch den Block mit SOC: Das ist der gemeinsame Teil aller Kerne, sowie die Features, die nicht zu den Kernen gehören wie GPU (UHD 770 Grafik), Chipsatz, vor allem aber der Level 3 Cache.

Gracemont KernDieser komplexe Aufbau resultiert schlussendlich daraus, dass es immer schwieriger wird noch mehr Befehle parallel auszuführen. Die meisten der Funktionseinheiten sind spezialisiert. Die LEA Einheiten verarbeiten z. B. nur diesen einen Befehl. Kommt er im Code nicht vor, so liegen sie brach. Ein Vergleich liefert auch der Gracemont-Kern, der hier abgebildet ist. Wie man auf dem Chip-Die sieht, belegen die vier Gracemont (E-) Kerne nicht viel mehr Platz als ein Alder Lake (P-Kern). Genauer gesagt, ein P-Kern belegt die 3,3-fache Fläche und erbringt die 2-fache Leistung (allerdings auch bei einem Maximaltakt von 5,2 GHz, bei den E-Kernen sind es nur 3,9 GHz). Pro Fläche ist der E-Kern also um den Faktor 1,6 effizienter. Die Gracemont-Kerne sind primär auf eine hohe Verarbeitungsrate mehrerer Threads optimiet, haben daher auch mehr Ports und Funktionseinheiten, die Golden Cove Kerne dagegen einen Befehl möglichst schnell auszuführen, was eine hohe Single-Thread Leistung ermöglicht. Diese ist auch Jahre, nachdem man keinen Prozessor mehr mit nur einem Kern kaufen kann nötig, weil bestimmte Aufgaben einfach kaum parallelisierbar sind. Dazu gehören leider auch etliche typische Büroarbeiten, wie Textverarbeitung.

Aus dem Blickwinkel der Flächenbelegung wäre es für die Gesamtperformance es also besser, viel mehr einfachere Kerne einzusetzen als wenige komplexe, dafür schnellere. Das Problem ist erneut die Speicheranbindung. Der Gracemont-Kern holt pro Takt über den Fetch 32 Bytes vom Speicher. Bei 3,9 GHz sind dies 124,8 Gbyte/s. Das schnellste DDR5-RAM schafft aber maximal 5,2 Milliarden Transfers mit je 8 Byte, also 41,6 Gbyte/s. Man bräuchte drei DIMM Module pro Kern, bei nur acht Kernen also schon 24. Durch das Cache-System wird dies gemildert, doch bei dem Verarbeiten großer Datenmengen ist noch immer das RAM der Flaschenhals. Lediglich Server, die dann auch mehr Kerne haben, unterstützen sehr viele DIMM-Slots. Die kombinierte Datenrate aller Kerne soll beim Alder Lake Prozessor 1.000 GB/s überschreiten.

Es gibt durchaus eine Lösung mit vielen Kernen. Grafikkarten bestehen aus vielen kleinen Recheneinheiten, jede weitaus weniger komplex als ein Kern einer CPU. Um sie mit genügend Daten zu versorgen, setzten Grafikkarten daher nicht nur besonders schnelles (und teures) RAM ein, sondern verbreitern vor allem den Bus. Der ist bei der IA64 Architektur 64 Bit breit, bei Grafikkarten dagegen zwischen 256 und 1.024 Bits, damit können sie die vier bis 16-fache Datenmenge übertragen.


P-Kern

E-Kern

L1 Instructions Cache

32 KB

64 KB

BTB Buffer

12.000 Einträge

5.000 Einträge

Micro-Op Cache

Ja

Nein

Μops pro Takt

6

5

Recorder Buffer

512

256

Ports

12

17

Funktionseinheiten

36

37

L1 Datencache

32 KB

48 kb

L2 Cache

1,25 - 2 MB

4 MB

L3 Cache (gemeinsam)

30 MB

Hinweis:

Ich habe die Abbildungen aus den unten stehenden Intel Manualen übernommen, schaut man im Web nach, so gibt es noch zahlreiche andere Diagramme die zum Teil feiner auflösen, zum Teil aber auch Units noch in weitere Funktionsblöcke unterteilen.

Links:

https://4donline.ihs.com/images/VipMasterIC/IC/MICT/MICT-S-A0009093473/MICT-S-A0009093473-1.pdf?hkey=52A5661711E402568146F3353EA87419

https://www.intel.com/content/dam/support/us/en/documents/processors/pentium4/sb/25366521.pdf

ct’ 25/2021 S. 84 – 89.

Artikel verfasst am 18.3.2022

Zum Thema Computer ist auch von mir ein Buch erschienen. "Computergeschichte(n)" beinhaltet, das was der Titel aussagt: einzelne Episoden aus der Frühzeit des PC. Es sind Episoden aus den Lebensläufen von Ed Roberts, Bill Gates, Steve Jobs, Stephen Wozniak, Gary Kildall, Adam Osborne, Jack Tramiel und Chuck Peddle und wie sie den PC schufen.

Das Buch wird abgerundet durch eine kurze Erklärung der Computertechnik vor dem PC, sowie einer Zusammenfassung was danach geschah, als die Claims abgesteckt waren. Ich habe versucht ein Buch zu schreiben, dass sie dahingehend von anderen Büchern abhebt, dass es nicht nur Geschichte erzählt sondern auch erklärt warum bestimmte Produkte erfolgreich waren, also auf die Technik eingeht.

Die 2014 erschienene zweite Auflage wurde aktualisiert und leicht erweitert. Die umfangreichste Änderung ist ein 60 Seiten starkes Kapitel über Seymour Cray und die von ihm entworfenen Supercomputer. Bedingt durch Preissenkungen bei Neuauflagen ist es mit 19,90 Euro trotz gestiegenem Umfang um 5 Euro billiger als die erste Auflage. Es ist auch als e-Book für 10,99 Euro erschienen.

Mehr über das Buch auf dieser eigenen Seite.

Hier geht's zur Gesamtübersicht meiner Bücher mit direkten Links zum BOD-Buchshop. Die Bücher sind aber auch direkt im Buchhandel bestellbar (da ich über sehr spezielle Themen schreibe, wird man sie wohl kaum in der Auslage finden) und sie sind natürlich in den gängigen Online-Plattformen wie Amazon, Libri, Buecher.de erhältlich.


© des Textes: Bernd Leitenberger. Jede Veröffentlichung dieses Textes im Ganzen oder in Auszügen darf nur mit Zustimmung des Urhebers erfolgen.
Sitemap Kontakt Impressum / Datenschutz Neues Hier werben / advertisment here Buchshop Bücher vom Autor Top 99