CPUs


© November 2023, letzte Änderung am 17.11.25

Übersicht

Architekturen und Begriffe

Eine CPU - Central Prozessing Unit ist der Rechenkern - Core vieler Geräte.
Üblicherweise sind es heutzutage mehrere CPU's z.B. 4 stk.
Je mehr Kerne zur Verfügung stehen, desto wichtiger wird es,
das die Software / das Betriebssystem die Arbeit auch verteilen kann.
Da diese Rechenkerne im Vergleich zu ihrer Peripherie
um Größenordnungen schneller sind, wird es immer wichtiger genügend
Zwischenspeicher - Cache zu haben damit kein Kern warten muß.
Um die Wartezeit zu reduzieren, wird optimalerweise im Cache
schon die nächste Aufgabe - Thread platziert,
wo die CPU dann weiter machen kann.
Generell kann man sagen, dass schnellere CPUs auch mehr
von einem großen Cache (Zwischenspeicher) profitieren,
da alleine schon die Leiterbahnlänge auf der Platine zum RAM, etc.
eine Verzögerung oder Flaschenhals darstellt.
Z.B. 1 GHz → 300 mm / 1 ns in Luft; bei FR4 ≈ 135 mm / ns

Habe ich maximale Leistungsanforderungen konzentriere ich mich nur
auf das eigentliche Rechenwerk. Sind die Anforderungen an die CPU nicht so hoch,
kann ich bei gleicher Chip-Fläche, weitere Funktionen implementieren.

So gibt es CPU's mittlerer Leistung, welche noch eine
GPU - graphic prozessing unit mit integriert haben.
Eine GPU ist ein spezialisierter Prozessor,
welcher besonders viele Recheneinheiten besitzt
aber mit geringer Genauigkeit.
Selbst bei full HD 1920 x 1080 → 6 MByte reichen z.B. nur 24 Bit Zahlen.

Habe ich eher die Anforderung möglichst viel der Peripherie unter zu bringen,
spreche ich vom SoC - System on Chip oder auch MCU - Micro controller Unit.
Je nach Anforderungen wird ein solcher Chip unterschiedliche Interfaces
oder Schnittstellen haben. Bei einer MCU habe ich zum Beispiel meist
keine Adress- und Datenbusse mehr herausgeführt. Stattdessen ist
RAM, ROM und div. weitere Peripherie direkt auf dem Chip integriert.
(I2C, SPI, PWM, CAN, etc.)  
Ein Beispiel wäre das Innenleben eines USB-Speichermediums.
Hier befindet sich ein Storage-Media-Controller, welcher auf der einen Seite eine USB-Schnittstelle bedient und auf der anderen Seite Flash-Speicher verwaltet.

Zum Anfang

CPU-Leistung

Um ein Gefühl entwickeln zu können, was man denn so wirklich benötigt,
habe ich mal eine Tabelle der von mir verwendeten Hardware erstellt.
Um besser zu sehen wo ich mich orientiere,
habe ich die Rechenleistung und den Verbrauch mit dargestellt.

Nicht unerwähnt sein sollte, dass ich mich privat eher im low-power Bereich
bewege. Dabei setzte ich bevorzugt (siehe wikipedia.org )
mini ITX  (170 x 170 x 40..80 mm Höhe) ein,
was nicht unbedingt repräsentativ ist.

CPU Mark (oder früher Passmark cpubenchmark.net ) ist eine Schätz-Zahl
um verschiedene Systeme miteinander zu vergleichen.
Leider habe ich darin bisher keine ARM-Prozessoren
(z.B. BCM2711; Raspberry 4) gefunden.

Nicht unerwähnt sollte es sein, daß man genau genommen zwischen
Single-Thread und Multi-Thread unterscheiden muß.
Denn nicht jede Software verteilt seine Aufgaben, im optimalen Fall gleichmäßig,
auf alle zur Verfügung stehenden Kerne.
Das heißt, unter Umständen verhält sich ein 2 Kerner mit
jeweils leistungsfähigeren Kernen besser
als ein 4-Kerner mit insgesamt etwas mehr Rechenleistung.

Da CPU Mark nicht Android-Prozessoren mit Intel-/AMD-Prozessoren vergleicht,
kam mir eine Nachricht sehr recht. Sehr wahrscheinlich kann man auf vielen Platftormen
folgenden Befehl als Benchmark aufrufen.

openssl speed -elapsed -evp aes-128-cbc
You have chosen to measure elapsed time instead of user CPU time.
…
The 'numbers' are in 1000s of bytes per second processed.
type         16 bytes    64 bytes    256 bytes  1024 bytes  8192 bytes 16384 bytes
aes-128-cbc 675064.32k 1349303.04k 1421738.84k 1440545.79k 1446046.38k 1446445.06k

Etwas ungerecht, kann es dennoch werden, da Intel und AMD, speziell für den AES - Advanced Encryption Standard,
ab 2008 spezielle Befehle implementiert haben.
Und interessant ist, daß die Option  -evp cipher   etwa den Faktor 5,6 ausmacht.
Gerechter wird es also erst bei De-aktivierung der Hardware-Beschleunigung.

openssl speed aes-128-cbc              oder
OPENSSL_ia32cap=”~0x200000200000000″ openssl speed -elapsed -evp aes-128-cbc
…
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
aes-128 cbc     244152.39k   255344.96k   256584.28k   257944.23k   258615.98k   258637.82k

Wobei mit OPENSSL_ia32cap=… eine Umgebungsvariable gesetzt wird,
welche die Intel SHA-Erweiterung (Hardware-Beschleunigung) abschaltet.

Da die md5 Chiffre oder cipher weniger die Hardware-Unterstützung nutzen kann ,
habe ich sie mit der 16k Blockgröße in folgender Tabelle verwendet.

openssl speed -elapsed -evp md5
You have chosen to measure elapsed time instead of user CPU time.
Doing md5 ops for 3s on 16 size blocks: 19213972 md5 ops in 3.00s
Doing md5 ops for 3s on 64 size blocks: 13736352 md5 ops in 3.00s
Doing md5 ops for 3s on 256 size blocks: 7334131 md5 ops in 3.00s
Doing md5 ops for 3s on 1024 size blocks: 2569321 md5 ops in 3.00s
Doing md5 ops for 3s on 8192 size blocks: 363508 md5 ops in 3.00s
Doing md5 ops for 3s on 16384 size blocks: 183464 md5 ops in 3.00s
version: 3.5.1
built on: Fri Sep 26 19:18:35 2025 UTC
options: bn(64,64)
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -fzero-call-used-regs=used-gpr 
-Wa,--noexecstack -g -O2 -Werror=implicit-function-declaration 
-ffile-prefix-map=/build/reproducible-path/openssl-3.5.1=. -fstack-protector-strong 
-fstack-clash-protection -Wformat -Werror=format-security -fcf-protection 
-DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DZLIB -DZSTD 
-DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2
CPUINFO: OPENSSL_ia32cap=0x7ef8320b078bffff:0x0040069c219c97a9:0x0000000000000010:0x0000000000000000:0x0000000000000000
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
md5             102474.52k   293042.18k   625845.85k   876994.90k   992619.18k  1001958.06k

Also 16384 x 183464 / 3 [Bytes/seconds] = 1.001.958 Bytes/ms
Beziehungsweise 1001958.06k Bytes/ms = 1.001.958 Bytes/ms

Laptop CPUs

Da eine Laptop-CPU anderen Anforderungen genügen muß, primär geringer Leistungsverbrauch,
als eine Desktop- oder gar Server-CPU, habe ich das Thema aufgesplittet.
Die CPU Mark Zahl (Multithread / Single Thread)schwankt über die Jahre
und ist daher nur ein grober Anhaltspunkt.

Jahr CPU
Mark
md5
[Bytes/ms]
Laptop / Board CPU
Frequenz Cache
TDP
down typ. up
2006 362
527
Lenovo Thinkpad
T60
Intel Genuine T2400
2x 1,8 GHz   2x 32K 1x 2M
31 W
2008 1279 AOpen mini ITX
i965GMt-LA
Intel Celeron 965GM
1x 800 MHz
2011 833
898
Asus Laptop
X5D1D
Intel Pentium T4500
2x 2,3 GHz   2x 32k 1x 1M
35 W
2013 2845
1725
Lenovo ThinkPad
Laptop T430s
Intel i7-3520M
2x 2,9 GHz   2x 256k 1x 4M
35 W
2014 1013
922
355 K Biostar mini ITX
NM70I-1037U
Intel Celeron 1037U
2x 1,8 GHz   2x 256k 1x 2M
17 W
2017 893
472
Medion Laptop
E2228T
Intel Atom x5-Z8350
4x 1,9 GHz   4x 24k 2x 1M
2 W 4 W -
2017 2248
813
448 K AsRock mini ITX
J3455B
Intel Celeron J3455
4x 1,5 GHz   4x 24k 2x 1M
10 W
2017 6244
2001
HP EliteBook 840 G5
 
Intel i5-8350U
4x 1,7 GHz   4x 256k 1x 6M
10W 15 W 25W
2017 96 K Raspberry 65 x 30
Zero W
ARMv6 (32 Bit)   BCM2835
1x 1,0 GHz
2 W
2021 Raspberry 65 x 30
Zero 2W
ARMv8 (64 Bit)   BCM2710A1 basiert auf BCM2837
2x 1,0 GHz
2 W

linuxfocus.org   thinkpad t60, ubuntu 18.04 LTS (xubuntu)

Bei CPU Mark correspondiert die erste Zahl mit der Gesamtleistung (Multithreading) und
die zweite Zahl mit einen Thread, was dann in etwa proportional zu md5 ist.

Ich hoffe man kann gut sehen, was vor ca. 13 Jahren 80 W benötigte (Phenom li X2-550),
hat 7 Jahre später einen Verbrauch von 17 W (Celeron 1037U)
und ist vor 3 Jahren mit doppelter Rechenleistung mit 10 W ausgekommen (Celeron J3455).

Gut 1000 CPU Mark reichen locker für übliche Schreibtisch-Tätigkeiten.

Diverse kleinere 3D-Zeichnungen und Elektro-CAD Layouts habe ich mit einen typischen Desktop-System
mit ca. 3000 CPU Mark System (mit 2 Bildschirmen 1920x1200) erstellt, ohne dass ich warten musste.
Mehr CPU-Rechenleistung ist eigentlich nur bei 3D-Echtzeit-Berechnungen
(typischerweise bei Spielen) nötig (oder wenn man den Komfort erhöhen möchte ;-)

Fazit: Auf einer 10 W Hardware, kann nicht nur der Web-Server, die Firewall,
das Backup-System, die Mailbox, der Druckerserver, etc.
gleichzeitig, ohne nennenswerte Einbußen, betrieben werden.
In der 60 W Kategorie hat man schon einen sehr performanten Desktop-Rechner und
ab ca. 200 W darf man, meiner Meinung nach, schon von einen Gaming-PC reden ;-)

Wenn man diesen Trend so weiter führt, ist es verständlich das bald die Rechenleistung
des Mobil-Telefons ausreicht um gewöhnliche Schreibtisch-Tätigkeiten auszuführen.
Vielleicht etwas früh hat es bereits 2013 Ubuntu versucht, siehe ein Artikel von golem.de.

Zum Anfang

Desktop CPUs

Jahr CPU
Mark
md5
[Bytes/ms]
Laptop / Board CPU
Frequenz Cache
TDP
down typ. up
2004 351
353
Asus ATX
A7N8X-E Delux
Athlon XP 2500+
1x 1,9 GHz   2x 64K 1x 512k
2007 1140
1205
Gigabyte ATX
GA-MA790XT-UD4P
AMD Phenom II X2 550
2x 3,1 GHz   2x 512k 1x 6M
80 W
2013 2955
1492
Gigabyte mini ITX
GA-F2A85XN-wifi
AMD A10-5800K
4x 3,8 GHz   4x 64k 4x 2M
100 W
2014 2713
1348
AsRock ATX
980DE3/U353
AMD FX-4130
4x 3,8 GHz   2x 2M 1x 4M
125 W
2018 3471
1617
ASRock mini ITX
AB350
AMD A12-9800E
4x 3,1 GHz   4x 96k 4x 1M
Radeon R7 8x
35 W
2018 13167
2240
773 K ASRock mini ITX
B450
AMD Ryzen 5 2600
6x 3,4 GHz   6x 512k 16M
65 W
2021 24441
3283
1001 k ASRock mini ITX
B450
AMD Ryzen 7 5700G
8x 3,8 GHz   8x 512k 1x 16M
Radeon RX Vega 8
65 W
2024 19678
3126
944 K ASRock mini ITX
B450
AMD Ryzen 5 5500GT
6x 3,6 GHz   6x 512k 1x 16M
Radeon RX Vega 7
24x PCIe 3.0
45 W 65 W -

Zum Anfang

Quellen

wikipedia.org   Intel SHA extensions
 

Zum Anfang