Das übersiehst du aber einen entscheidenden Fakt.
Ein Controller übernimmt erstmal nur die Verwaltung. Für sämtliche Arbeiten die neben der Verwaltung anstehen nimmt er sich eine Recheneinheit zur Hilfe.
Das ist bei der einfachen NIC genauso wie beim einfachen RAID-Controller (ohne XOR)
Das heißt, sobald du also Netzwerken(oder RAIDen) willst, belastest du die CPU.
Daher belastet der Controller erstmal die CPU und entlastet sie nicht.
Beim Netzwerk ist es das TCP-Load, bei iSCSI das iSCSI-Load und beim RAID5 eben die Paritätsberechnung.
Das heißt also, sobald du einen Controller für eine dieser Funktionen einbaust (ohne gäbe es die Funktion ja nicht) belastest du die CPU.
Wenn man jetzt aber durch die oben genannten Funktionen die CPU entlasten möchte, muß man einen Controller einbauen, der neben der eigentlichen Controlleraufgabe zusätzlich (durch eine Recheneinheit) noch die Rechenarbeit übernehmen kann, die eigentlich die CPU erledigen müßte.
Also TCP-Offload-Engine oder XOR-Engine.
Du machst es dir in der hinsicht etwas einfach.
EVA-Prinzip sollte dir ja bekannt sein.
1.Eingabe
2.Verarbeitung
3.Ausgabe
Ein Controller übernimmt eigentlich nur die Punkte 1 und 3, ein ganz kleiner Teil von Punkt 2 wird durch ihn erledigt. Die eigentliche Verarbeitung der Daten übernimmt die Recheneinheit, bei einfachen Geschichten die CPU.
Wenn also, bei einer einfachen NIC ein Datenpaket reinkommt. Wird das zunächst mal analysiert. Bei der Analyse muß über die Checksumme bestimmt werden, ob denn das Paket OK ist oder nicht. Diese Überprüfung nimmt aber die CPU und nicht die NIC.
Das heißt, der Controller belastet die CPU mit einer Aufgabe, die eigentlich in seinen Aufgabenbereich fällt. Ergo entlastet der Controller die CPU net sondern belastet sie.
RAID-Controller (ohne XOR)
Windows möchte eine Datei auf das Array schreiben. Controller nimmt die Daten an und sagt im gleichen Zuge, die CPU möchte doch bitte die XOR für die Datein berechnen, damit diese in die jeweiligen Paritybereiche eingetragen werden können.
Auch hier belastet der Controller die CPU mit einer Aufgabe die eigentlich in seinen Bereich fällt.
Also kann an dem Satz:
"Gibt es einen Controller, der nicht die CPU entlastet? "
nicht viel dran sein. Ich kann dir aus dem Stehgreif 3 Controller nennen wo das nicht der Fall ist.