TLS-Performance auf der Infineon XMC7200 CRYPTO-Einheit

Der XMC7200 hat zwei Arm Cortex-M7-Kerne für die Hauptverarbeitung und einen Cortex-M0+-Kern für Peripherie- und Sicherheitsverarbeitung, mit einer CRYPTO-Einheit für Hardware-Beschleunigung. Dass die Einheit auf dem Die liegt, heißt nicht, dass TLS schneller ist. Die Bibliothek muss sie tatsächlich nutzen — und die Standardkonfiguration tut das in der Regel nicht.

Das dokumentierte Ergebnis

Die TLS-Datenstrom-Performance auf der XMC7200-CRYPTO-Einheit wurde gegenüber der Herstellerbibliothek um +33 % gesteigert, bei voller Kompatibilität. Messung und Diskussion sind im Originalbeitrag in der Infineon Developer Community dokumentiert:

https://community.infineon.com/t5/XMC/XMC7000-CRYPTO-unit-performance/td-p/1024565

Wo die Performance tatsächlich verloren geht

Hardware-Beschleunigung ist kein Schalter, den man einschaltet. Die messbaren Verluste kommen aus diesen Stellen:

  • Die Bibliothek erreicht die Einheit nicht. mbedTLS ist standardmäßig eine Software-Implementierung. Ohne explizite Beschleunigungsschicht liegt die CRYPTO-Einheit brach, während die CPU die Arbeit macht.
  • Record-Größe. Kleine TLS-Records vervielfältigen den Overhead pro Record. Durchsatz ist genauso eine Funktion der Record-Größe wie der Crypto-Geschwindigkeit.
  • Handshake-Crypto vs. Daten-Crypto. Der Handshake wird von asymmetrischen Operationen dominiert, der Datenstrom von symmetrischen. Wer die falsche beschleunigt, ändert messbar nichts.
  • Cipher-Wahl. ECC gegenüber RSA ändert die Handshake-Kosten um eine Größenordnung. Das ist eine Designentscheidung, kein Runtime-Parameter.
  • Session Resumption. Wiederholte Verbindungen ohne Resumption zahlen jeden Handshake vollständig — auf einer eingebetteten Verbindung oft der dominante Kostenfaktor.
  • Puffer- und Ausrichtungsverhalten. DMA und Puffer-Ausrichtung auf dem Peripheriepfad sind die Stelle, an der eine Hardware-Einheit stillschweigend nicht mehr genutzt wird.

Was das für eine Architekturentscheidung bedeutet

Auf einem eingeschränkten Gerät ist TLS-Performance eine Architektureigenschaft, keine Bibliothekseinstellung. Record-Größe, Cipher-Wahl, Resumption-Strategie und Crypto-Pfad werden zur Designzeit entschieden. Wer sie nachträglich ändert, wenn die Verbindung schon in Produktion ist, macht aus einer Performance-Frage ein Feldproblem.

FAQ

Ist die CRYPTO-Einheit für jede Operation schneller als die CPU?

Nein. Der Gewinn hängt von Operation und Blockgröße ab. Für manche Operationen ist der Software-Pfad konkurrenzfähig, und der Aufruf-Overhead der Einheit kann den Nutzen übersteigen.

Warum zeigt die Herstellerbibliothek einen niedrigeren Wert, als die Hardware kann?

Weil der Standardpfad der Bibliothek der Software-Pfad ist. Die Beschleunigungsschicht muss explizit integriert werden, und die Integration muss zur Puffer- und Record-Struktur passen, die die Anwendung tatsächlich nutzt.

Gilt das außerhalb des XMC7200?

Die Argumentation gilt für jeden MCU mit Crypto-Einheit. Die konkreten Zahlen übertragen sich nicht.

Verwandt