Die Herzmuskeln eines Computers

Was ist ein Rechenkern (Core)?

| Autor / Redakteur: Otto Geißler / Ulrike Ostler

Bei einem Rechenkern handelt es sich um eine real vorhandene Prozessor-Architektur. Alle Architekturen verfügen über einen eigenen Befehlssatz, der einen passenden Compiler zur Programmerstellung erfordert.
Bei einem Rechenkern handelt es sich um eine real vorhandene Prozessor-Architektur. Alle Architekturen verfügen über einen eigenen Befehlssatz, der einen passenden Compiler zur Programmerstellung erfordert. (Bild: gemeinfrei / CC0)

Ein Rechenkern beziehungsweise Prozessorkern (Core) ist der zentrale Teil eines Rechenwerks (Central Processing Unit - CPU). In der Regel besteht heute eine CPU aus mehreren Rechenkernen in Form von Mehrkern-Prozessoren in einem einzigen Chip.

Der Rechenkern umfasst im Prinzip eine arithmetisch-logische Einheit (arithmetic logic unit - ALU), Rechenregister und den wesentlichen Teilen eines Steuerwerks. Unter einem Mehrkern-Prozessor (Multikern-Prozessor beziehungsweise Multicore-Prozessor) versteht man in der IT einen Mikro-Prozessor mit mehr als einem vollständigen Haupt-Prozessorkern innerhalb eines Chips. Zu den optionalen Komponenten eines Rechenkerns gehören ein Interrupt-Dekoder, ein Cache, eine Gleitkomma-Einheit sowie eine Memory Management Unit (MMU) als auch weitere Bauteile, die mit der inneren Architektur eines Prozessors in Verbindung stehen.

Davon sind der Festwertspeicher (ROM), der Arbeitsspeicher (RAM) und die Peripheriegruppen ausgenommen, auch wenn sie auf dem gleichen Chip integriert sind. Für die Herstellung von Chips werden Prozessorkerne als Modul verwendet, um sie mit anderen Modulen zu einem kompletten Prozessor zu kombinieren. Auf Grund der Aufteilung in Prozessorkerne, Speicher/Cache und Peripherie sind die Hersteller in der Lage, Produktvarianten zu entwickeln, die mit einem identischen Kern verschiedene Peripherien aufweisen oder mit RAM/ROM-Speichern (On Chip) ausgestattet sind.

Als Peripherie kommen zum Beispiel On-Chip-Timer, serielle Schnittstellen, I²C-Bus, CAN-Bus oder A/D-Wandler zum Einsatz, welche zusammen eine Prozessorfamilie formieren. Wird ein Prozessordesign signifikant modifiziert beziehungsweise weiterentwickelt, handelt es sich um eine neue Prozessorfamilie, die in der Regel nach unten kompatibel ist. Sollte diese Abwärtskompatibilität nicht mehr gegeben sein, so entsteht eine neue Prozessor-Architektur.

Prozessoren mit mehreren Kernen

Bei einem Mehrkern-Prozessor sind alle Ressourcen - Bus und Cache ausgenommen - mehrfach existent. Die einzelnen CPU-Kerne mit ihren eigenen Registersätzen sowie die arithmetisch-logischen Einheiten (ALU) arbeiten weitgehend voneinander unabhängig. Ein Doppelkern-Prozessor (Dual-Core-Prozessor) sind Mehrkern-Prozessoren mit zwei Haupt-Prozessoren. Mikro-Prozessoren mit drei Haupt-Prozessoren werden dann Dreikern-Prozessoren (Triple-Core-Prozessoren) genannt. Diese Logik lässt sich dann beliebig fortsetzen.

Dabei können Vierkern-Prozessoren (Quad-Core-Prozessoren) entweder aus zwei Doppelkern-Prozessoren oder vier eigenständigen Kernen bestehen. Mikro-Prozessoren mit nur einem Haupt-Prozessor (Single-Core-Prozessor) werden Einzelkern-Prozessor bezeichnet.

Prozessoren mit mehreren Cores wurden zum Zweck der Erhöhung der Rechenleistung entwickelt, da höhere Taktfrequenzen zu großen technischen Problemen führten. Zudem ist es preiswerter, mehrere Kerne in einer CPU zu integrieren als eine Reihe von Sockeln für verschiedene Prozessoren auf dem Motherboard zu platzieren.

Mehr Kerne, mehr Leistung?

Somit kann im Prinzip mit einer beliebigen Anzahl an Kernen eine x-fache Rechenleistung erzielt werden. In der Praxis sind diesen Leistungssteigerungen jedoch Grenzen gesetzt: Eine Erhöhung der Performance hängt vor allem davon ab, wie es gelingt, die Software zu parallelisieren. Engpässe, die durch Zugriffe mehrerer aktiver Kerne auf den gemeinsamen Arbeitsspeicher unweigerlich entstehen können, müssten dann durch entsprechende Cache-Strategien abgefangen werden.

Laufen also mehrere Prozesse und Anwendungen gleichzeitig, so verteilt das Betriebssystem die einzelnen Aufgaben auf verschiedene Rechenkerne, die diese dann unabhängig und simultan voneinander ausführen. Steht nur eine Anwendung zur Ausführung bereit, muss die Aufgabe von der Software für mehrere Prozessoren wiederum parallelisiert werden. Das heißt: Die Anwendung wird so aufbereitet, dass sie vollständig oder zum Teil zur gleichen Zeit auf mehreren Rechenkernen als so genannte Threads laufen kann.

Im Vergleich dazu sind Multi-Threaded-CPUs auf mehrfädigen Prozessorkernen (multithreading) mit mehreren Programmzählern und Registersätzen aufgebaut, die sich dem System als mehrere Rechenkerne präsentieren. Dieses Prinzip wird im Prozessordesign auf verschiedene Weise effizient realisiert.

Der Hersteller Intel nennt es in einigen Produkten Hyper-Threading beziehungsweise IBM SMT (symmetrisches Multi-Threading). Bei IBM besteht der etwa „Power 5"-Prozessor aus einem Doppelkern-Prozessor mit zwei Threads pro Kern und bei Sun verfügt der „UltraSPARC-T1“-Prozessor über einen Achtkern-Prozessor mit vier Threads pro Kern.

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Kontaktieren Sie uns über: support.vogel.de/ (ID: 45866677 / Definitionen)