© November 2023, letzte Änderung am 17.11.25
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
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
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
| 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
wikipedia.org
Intel SHA extensions
Zum Anfang