pub trait CPU {
// Required methods
fn architektur(&self) -> Architektur;
fn kerne(&self) -> u8;
fn basis_takt(&self) -> u64;
fn features(&self) -> Vec<Features>;
fn eins_ausführen(&mut self) -> Result<u64, ()>;
// Provided methods
fn turbo_takt(&self) -> Option<u64> { ... }
fn alles_ausführen(&mut self) -> Result<Vec<u64>, ()> { ... }
}Expand description
Eine CPU ist das Herzstück eines Computers. Sie führt letztendlich die Befehle aus und ist dazu da, die Hardware zentral zu verwalten, daher auch der Name: “Central Processing Unit”, zu Deutsch “Zentrale Verarbeitungseinheit”.
§Was gibt es und wo findet man sie?
Mittlerweile finden sich Prozessoren an allen möglichen Stellen und in einigen Formen, vom Kleinstprozessor für Smarthome zu Handy- und Tabletprozessoren bis hin zum Desktop- und Serverprozessor.
§Wie funktioniert ein Prozessor?
§Befehlszyklus
Der Befehlszyklus besagt, dass ein Prozessor jede Instruction in vier Schritten ausführt:
- Fetch: Einholen einer neuen Instruction (von der Stelle, die der Instruction Pointer vorgibt).
- Decode: Entschlüsseln der Instruction auf die spezifische Plattform.
- Execute: Ausführen der gegebenen Instruction
- Save: Das Ergebnis abspeichern.
Für ein Beispiel eines solchen Zyklus, siehe beispiele::BeispielCPU.
§Prozessorarchitekturen
Siehe Architekturen
§Takt
Der Prozessortakt sagt aus, wie häufig ein Prozessor einen Zyklus durchführt. Ein hoher Takt bedeutet bei zwei Prozessoren mit der gleichen Mikroprozessorarchitektur bessere Performance, aber auch höheren Stromverbrauch und höhere Abwärme.
§Aber welcher Prozessor ist der richtige?
Das hängt von einer Reihe von Faktoren ab. Das wichtigste ist dabei zum einen die Arbeit, die dieser verrichten soll, aber auch vom zur Verfügung stehenden Budget. Als Privatkunde ist es am einfachsten, Benchmarks zu Verfolgen und dann abzuwägen, was am sinnvollsten ist. Obacht: Sollte der Fokus auf grafisch etwas anspruchsvolleren Spielen liegen, ist die CPU deutlich weniger für die Leistung relevant als die Grafikkarte. Im Unternehmenskontext gerade bei recht ähnlichen Workloads kann es sogar Sinn ergeben, mehrere Alternativen testweise parallel zu betreiben und dabei die Performance zu beobachten.
Der Markt entwickelt sich stetig, weswegen eine Aussage zu der Qualität einer bestimmten Marke schon sehr bald nicht mehr aktuell sein kann. Informiert euch also um die aktuelle Situation.
Required Methods§
Sourcefn architektur(&self) -> Architektur
fn architektur(&self) -> Architektur
Die Architektur, zu der dieser Prozessor gehört.
Sourcefn basis_takt(&self) -> u64
fn basis_takt(&self) -> u64
Der Standard-Takt der CPU
Sourcefn eins_ausführen(&mut self) -> Result<u64, ()>
fn eins_ausführen(&mut self) -> Result<u64, ()>
Diese Funktion ruft eine Iteration des Befehlszyklus auf und bewegt somit den Instruction-Pointer um eine Stelle weiter.
Provided Methods§
Sourcefn turbo_takt(&self) -> Option<u64>
fn turbo_takt(&self) -> Option<u64>
Der Turbo-Takt ist der Takt, mit dem die CPU arbeitet, wenn diese erhöhte Last sowie eine ausreichend niedrige Temperatur besitzt.